From 8f6ac52db0a9656c8ec2d47ba5a62aed16a27353 Mon Sep 17 00:00:00 2001 From: cvs2git Date: Thu, 24 Jan 2013 14:32:19 +0000 Subject: [PATCH] This commit was manufactured by cvs2git to create tag 'V7_main_apres_merge_V6_6_p1_et_menage'. Sprout from V7_main 2013-01-24 14:32:18 UTC Pascale Noyret '*** empty log message ***' Delete: Aster/Cata/cataSTA5/__init__.py Aster/Cata/cataSTA5/cata.py Aster/Cata/cataSTA5/ops.py Aster/Cata/cataSTA6/Macro/__init__.py Aster/Cata/cataSTA6/Macro/ajout_quad_gmsh.py Aster/Cata/cataSTA6/Macro/macr_lign_coupe_ops.py Aster/Cata/cataSTA6/Macro/macr_recal_ops.py Aster/Cata/cataSTA6/Macro/macro_cara_poutre_ops.py Aster/Cata/cataSTA6/Macro/macro_elas_mult_ops.py Aster/Cata/cataSTA6/Macro/macro_matr_asse_ops.py Aster/Cata/cataSTA6/Macro/macro_miss_3d_ops.py Aster/Cata/cataSTA6/Macro/macro_mode_meca_ops.py Aster/Cata/cataSTA6/Macro/macro_proj_base_ops.py Aster/Cata/cataSTA6/Macro/pre_gmsh_ops.py Aster/Cata/cataSTA6/Macro/reca_algo.py Aster/Cata/cataSTA6/Macro/reca_interp.py Aster/Cata/cataSTA6/Macro/reca_message.py Aster/Cata/cataSTA6/Macro/recal.py Aster/Cata/cataSTA6/__init__.py Aster/Cata/cataSTA6/cata.py Aster/Cata/cataSTA6/macro_cara_poutre_ops.py Aster/Cata/cataSTA6/ops.py Aster/Cata/cataSTA6/pre_gmsh_ops.py Aster/Cata/cataSTA7/Macro/__init__.py Aster/Cata/cataSTA7/Macro/ajout_quad_gmsh.py Aster/Cata/cataSTA7/Macro/calc_precont_ops.py Aster/Cata/cataSTA7/Macro/defi_cable_bp_ops.py Aster/Cata/cataSTA7/Macro/defi_part_feti_ops.py Aster/Cata/cataSTA7/Macro/fiabilite_fichier.py Aster/Cata/cataSTA7/Macro/fiabilite_mefisto.py Aster/Cata/cataSTA7/Macro/impr_fonction_ops.py Aster/Cata/cataSTA7/Macro/impr_table_ops.py Aster/Cata/cataSTA7/Macro/lire_fonction_ops.py Aster/Cata/cataSTA7/Macro/lire_inte_spec_ops.py Aster/Cata/cataSTA7/Macro/lire_table_ops.py Aster/Cata/cataSTA7/Macro/macr_adap_mail_ops.py Aster/Cata/cataSTA7/Macro/macr_ascouf_calc_ops.py Aster/Cata/cataSTA7/Macro/macr_ascouf_mail_ops.py Aster/Cata/cataSTA7/Macro/macr_aspic_calc_ops.py Aster/Cata/cataSTA7/Macro/macr_aspic_mail_ops.py Aster/Cata/cataSTA7/Macro/macr_cabri_calc_ops.py Aster/Cata/cataSTA7/Macro/macr_cabri_mail_dat.py Aster/Cata/cataSTA7/Macro/macr_cabri_mail_ops.py Aster/Cata/cataSTA7/Macro/macr_cara_poutre_ops.py Aster/Cata/cataSTA7/Macro/macr_ecla_pg_ops.py Aster/Cata/cataSTA7/Macro/macr_fiab_impr_ops.py Aster/Cata/cataSTA7/Macro/macr_fiabilite_ops.py Aster/Cata/cataSTA7/Macro/macr_lign_coupe_ops.py Aster/Cata/cataSTA7/Macro/macr_recal_ops.py Aster/Cata/cataSTA7/Macro/macro_elas_mult_ops.py Aster/Cata/cataSTA7/Macro/macro_matr_ajou_ops.py Aster/Cata/cataSTA7/Macro/macro_matr_asse_ops.py Aster/Cata/cataSTA7/Macro/macro_miss_3d_ops.py Aster/Cata/cataSTA7/Macro/macro_mode_meca_ops.py Aster/Cata/cataSTA7/Macro/macro_proj_base_ops.py Aster/Cata/cataSTA7/Macro/reca_algo.py Aster/Cata/cataSTA7/Macro/reca_interp.py Aster/Cata/cataSTA7/Macro/reca_message.py Aster/Cata/cataSTA7/Macro/recal.py Aster/Cata/cataSTA7/Macro/stanley_ops.py Aster/Cata/cataSTA7/Macro/test_fichier_ops.py Aster/Cata/cataSTA7/__init__.py Aster/Cata/cataSTA7/cata.py Aster/Cata/cataSTA7/materiau/18MND5_REF_A.NOMI Aster/Cata/cataSTA7/materiau/README.PY Aster/Cata/cataSTA7/materiau/Z12CN13_REF_A.NOMI Aster/Cata/cataSTA7/materiau/Z2CN1810_REF_A.NOMI Aster/Cata/cataSTA7/materiau/Z2CND1712_REF_A.NOMI Aster/Cata/cataSTA7/materiau/Z6CND1712_REF_A.NOMI Aster/Cata/cataSTA7/ops.py Aster/Cata/cataSTA73/Macro/__init__.py Aster/Cata/cataSTA73/Macro/ajout_quad_gmsh.py Aster/Cata/cataSTA73/Macro/calc_precont_ops.py Aster/Cata/cataSTA73/Macro/defi_cable_bp_ops.py Aster/Cata/cataSTA73/Macro/defi_part_feti_ops.py Aster/Cata/cataSTA73/Macro/fiabilite_fichier.py Aster/Cata/cataSTA73/Macro/fiabilite_mefisto.py Aster/Cata/cataSTA73/Macro/impr_fonction_ops.py Aster/Cata/cataSTA73/Macro/impr_table_ops.py Aster/Cata/cataSTA73/Macro/lire_fonction_ops.py Aster/Cata/cataSTA73/Macro/lire_inte_spec_ops.py Aster/Cata/cataSTA73/Macro/lire_table_ops.py Aster/Cata/cataSTA73/Macro/macr_adap_mail_ops.py Aster/Cata/cataSTA73/Macro/macr_ascouf_calc_ops.py Aster/Cata/cataSTA73/Macro/macr_ascouf_mail_ops.py Aster/Cata/cataSTA73/Macro/macr_aspic_calc_ops.py Aster/Cata/cataSTA73/Macro/macr_aspic_mail_ops.py Aster/Cata/cataSTA73/Macro/macr_cabri_calc_ops.py Aster/Cata/cataSTA73/Macro/macr_cabri_mail_dat.py Aster/Cata/cataSTA73/Macro/macr_cabri_mail_ops.py Aster/Cata/cataSTA73/Macro/macr_cara_poutre_ops.py Aster/Cata/cataSTA73/Macro/macr_ecla_pg_ops.py Aster/Cata/cataSTA73/Macro/macr_fiab_impr_ops.py Aster/Cata/cataSTA73/Macro/macr_fiabilite_ops.py Aster/Cata/cataSTA73/Macro/macr_lign_coupe_ops.py Aster/Cata/cataSTA73/Macro/macr_recal_ops.py Aster/Cata/cataSTA73/Macro/macro_cara_poutre_ops.py Aster/Cata/cataSTA73/Macro/macro_elas_mult_ops.py Aster/Cata/cataSTA73/Macro/macro_matr_ajou_ops.py Aster/Cata/cataSTA73/Macro/macro_matr_asse_ops.py Aster/Cata/cataSTA73/Macro/macro_miss_3d_ops.py Aster/Cata/cataSTA73/Macro/macro_mode_meca_ops.py Aster/Cata/cataSTA73/Macro/macro_proj_base_ops.py Aster/Cata/cataSTA73/Macro/pre_gmsh_ops.py Aster/Cata/cataSTA73/Macro/reca_algo.py Aster/Cata/cataSTA73/Macro/reca_interp.py Aster/Cata/cataSTA73/Macro/reca_message.py Aster/Cata/cataSTA73/Macro/recal.py Aster/Cata/cataSTA73/Macro/stanley_ops.py Aster/Cata/cataSTA73/Macro/test_fichier_ops.py Aster/Cata/cataSTA73/__init__.py Aster/Cata/cataSTA73/cata.py Aster/Cata/cataSTA74/Macro/__init__.py Aster/Cata/cataSTA74/Macro/ajout_quad_gmsh.py Aster/Cata/cataSTA74/Macro/calc_precont_ops.py Aster/Cata/cataSTA74/Macro/defi_cable_bp_ops.py Aster/Cata/cataSTA74/Macro/defi_part_feti_ops.py Aster/Cata/cataSTA74/Macro/fiabilite_fichier.py Aster/Cata/cataSTA74/Macro/fiabilite_mefisto.py Aster/Cata/cataSTA74/Macro/impr_fonction_ops.py Aster/Cata/cataSTA74/Macro/impr_table_ops.py Aster/Cata/cataSTA74/Macro/lire_fonction_ops.py Aster/Cata/cataSTA74/Macro/lire_inte_spec_ops.py Aster/Cata/cataSTA74/Macro/lire_table_ops.py Aster/Cata/cataSTA74/Macro/macr_adap_mail_ops.py Aster/Cata/cataSTA74/Macro/macr_ascouf_calc_ops.py Aster/Cata/cataSTA74/Macro/macr_ascouf_mail_ops.py Aster/Cata/cataSTA74/Macro/macr_aspic_calc_ops.py Aster/Cata/cataSTA74/Macro/macr_aspic_mail_ops.py Aster/Cata/cataSTA74/Macro/macr_cabri_calc_ops.py Aster/Cata/cataSTA74/Macro/macr_cabri_mail_dat.py Aster/Cata/cataSTA74/Macro/macr_cabri_mail_ops.py Aster/Cata/cataSTA74/Macro/macr_cara_poutre_ops.py Aster/Cata/cataSTA74/Macro/macr_ecla_pg_ops.py Aster/Cata/cataSTA74/Macro/macr_fiab_impr_ops.py Aster/Cata/cataSTA74/Macro/macr_fiabilite_ops.py Aster/Cata/cataSTA74/Macro/macr_lign_coupe_ops.py Aster/Cata/cataSTA74/Macro/macr_recal_ops.py Aster/Cata/cataSTA74/Macro/macro_cara_poutre_ops.py Aster/Cata/cataSTA74/Macro/macro_elas_mult_ops.py Aster/Cata/cataSTA74/Macro/macro_matr_ajou_ops.py Aster/Cata/cataSTA74/Macro/macro_matr_asse_ops.py Aster/Cata/cataSTA74/Macro/macro_miss_3d_ops.py Aster/Cata/cataSTA74/Macro/macro_mode_meca_ops.py Aster/Cata/cataSTA74/Macro/macro_proj_base_ops.py Aster/Cata/cataSTA74/Macro/pre_gmsh_ops.py Aster/Cata/cataSTA74/Macro/reca_algo.py Aster/Cata/cataSTA74/Macro/reca_interp.py Aster/Cata/cataSTA74/Macro/reca_message.py Aster/Cata/cataSTA74/Macro/recal.py Aster/Cata/cataSTA74/Macro/stanley_ops.py Aster/Cata/cataSTA74/Macro/test_fichier_ops.py Aster/Cata/cataSTA74/__init__.py Aster/Cata/cataSTA74/cata.py Aster/Cata/cataSTA74/ops.py Aster/Cata/cataSTA76/Macro/__init__.py Aster/Cata/cataSTA76/Macro/ajout_quad_gmsh.py Aster/Cata/cataSTA76/Macro/calc_precont_ops.py Aster/Cata/cataSTA76/Macro/defi_cable_bp_ops.py Aster/Cata/cataSTA76/Macro/defi_part_feti_ops.py Aster/Cata/cataSTA76/Macro/fiabilite_fichier.py Aster/Cata/cataSTA76/Macro/fiabilite_mefisto.py Aster/Cata/cataSTA76/Macro/impr_fonction_ops.py Aster/Cata/cataSTA76/Macro/impr_table_ops.py Aster/Cata/cataSTA76/Macro/lire_fonction_ops.py Aster/Cata/cataSTA76/Macro/lire_inte_spec_ops.py Aster/Cata/cataSTA76/Macro/lire_table_ops.py Aster/Cata/cataSTA76/Macro/macr_adap_mail_ops.py Aster/Cata/cataSTA76/Macro/macr_ascouf_calc_ops.py Aster/Cata/cataSTA76/Macro/macr_ascouf_mail_ops.py Aster/Cata/cataSTA76/Macro/macr_aspic_calc_ops.py Aster/Cata/cataSTA76/Macro/macr_aspic_mail_ops.py Aster/Cata/cataSTA76/Macro/macr_cabri_calc_ops.py Aster/Cata/cataSTA76/Macro/macr_cabri_mail_dat.py Aster/Cata/cataSTA76/Macro/macr_cabri_mail_ops.py Aster/Cata/cataSTA76/Macro/macr_cara_poutre_ops.py Aster/Cata/cataSTA76/Macro/macr_ecla_pg_ops.py Aster/Cata/cataSTA76/Macro/macr_fiab_impr_ops.py Aster/Cata/cataSTA76/Macro/macr_fiabilite_ops.py Aster/Cata/cataSTA76/Macro/macr_lign_coupe_ops.py Aster/Cata/cataSTA76/Macro/macr_recal_ops.py Aster/Cata/cataSTA76/Macro/macro_elas_mult_ops.py Aster/Cata/cataSTA76/Macro/macro_matr_ajou_ops.py Aster/Cata/cataSTA76/Macro/macro_matr_asse_ops.py Aster/Cata/cataSTA76/Macro/macro_miss_3d_ops.py Aster/Cata/cataSTA76/Macro/macro_mode_meca_ops.py Aster/Cata/cataSTA76/Macro/macro_proj_base_ops.py Aster/Cata/cataSTA76/Macro/reca_algo.py Aster/Cata/cataSTA76/Macro/reca_interp.py Aster/Cata/cataSTA76/Macro/reca_message.py Aster/Cata/cataSTA76/Macro/recal.py Aster/Cata/cataSTA76/Macro/stanley_ops.py Aster/Cata/cataSTA76/Macro/test_fichier_ops.py Aster/Cata/cataSTA76/__init__.py Aster/Cata/cataSTA76/cata.py Aster/Cata/cataSTA76/ops.py Aster/Cata/cataSTA8/Macro/__init__.py Aster/Cata/cataSTA8/Macro/ajout_quad_gmsh.py Aster/Cata/cataSTA8/Macro/calc_fonction_ops.py Aster/Cata/cataSTA8/Macro/calc_precont_ops.py Aster/Cata/cataSTA8/Macro/calc_table_ops.py Aster/Cata/cataSTA8/Macro/creation_donnees_homard.py Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py Aster/Cata/cataSTA8/Macro/defi_inte_spec_ops.py Aster/Cata/cataSTA8/Macro/defi_part_feti_ops.py Aster/Cata/cataSTA8/Macro/exec_logiciel_ops.py Aster/Cata/cataSTA8/Macro/fiabilite_fichier.py Aster/Cata/cataSTA8/Macro/fiabilite_mefisto.py Aster/Cata/cataSTA8/Macro/gene_vari_alea_ops.py Aster/Cata/cataSTA8/Macro/impr_fonction_ops.py Aster/Cata/cataSTA8/Macro/impr_oar_ops.py Aster/Cata/cataSTA8/Macro/impr_table_ops.py Aster/Cata/cataSTA8/Macro/info_fonction_ops.py Aster/Cata/cataSTA8/Macro/lire_fonction_ops.py Aster/Cata/cataSTA8/Macro/lire_inte_spec_ops.py Aster/Cata/cataSTA8/Macro/lire_table_ops.py Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py Aster/Cata/cataSTA8/Macro/macr_ascouf_calc_ops.py Aster/Cata/cataSTA8/Macro/macr_ascouf_mail_ops.py Aster/Cata/cataSTA8/Macro/macr_aspic_calc_ops.py Aster/Cata/cataSTA8/Macro/macr_aspic_mail_ops.py Aster/Cata/cataSTA8/Macro/macr_cabri_calc_ops.py Aster/Cata/cataSTA8/Macro/macr_cabri_mail_dat.py Aster/Cata/cataSTA8/Macro/macr_cabri_mail_ops.py Aster/Cata/cataSTA8/Macro/macr_cara_poutre_ops.py Aster/Cata/cataSTA8/Macro/macr_ecla_pg_ops.py Aster/Cata/cataSTA8/Macro/macr_fiab_impr_ops.py Aster/Cata/cataSTA8/Macro/macr_fiabilite_ops.py Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py Aster/Cata/cataSTA8/Macro/macr_recal_ops.py Aster/Cata/cataSTA8/Macro/macr_spectre_ops.py Aster/Cata/cataSTA8/Macro/macro_elas_mult_ops.py Aster/Cata/cataSTA8/Macro/macro_matr_ajou_ops.py Aster/Cata/cataSTA8/Macro/macro_matr_asse_ops.py Aster/Cata/cataSTA8/Macro/macro_miss_3d_ops.py Aster/Cata/cataSTA8/Macro/macro_mode_meca_ops.py Aster/Cata/cataSTA8/Macro/macro_proj_base_ops.py Aster/Cata/cataSTA8/Macro/post_dyna_alea_ops.py Aster/Cata/cataSTA8/Macro/post_gp_ops.py Aster/Cata/cataSTA8/Macro/post_k1_k2_k3_ops.py Aster/Cata/cataSTA8/Macro/post_k_trans_ops.py Aster/Cata/cataSTA8/Macro/reca_algo.py Aster/Cata/cataSTA8/Macro/reca_calcul_aster.py Aster/Cata/cataSTA8/Macro/reca_controles.py Aster/Cata/cataSTA8/Macro/reca_graphique.py Aster/Cata/cataSTA8/Macro/reca_interp.py Aster/Cata/cataSTA8/Macro/reca_message.py Aster/Cata/cataSTA8/Macro/reca_utilitaires.py Aster/Cata/cataSTA8/Macro/recal.py Aster/Cata/cataSTA8/Macro/simu_point_mat_ops.py Aster/Cata/cataSTA8/Macro/stanley_ops.py Aster/Cata/cataSTA8/Macro/test_fichier_ops.py Aster/Cata/cataSTA8/__init__.py Aster/Cata/cataSTA8/cata.py Aster/Cata/cataSTA8/materiau/18MND5_REF_A.NOMI Aster/Cata/cataSTA8/materiau/README.PY Aster/Cata/cataSTA8/materiau/Z12CN13_REF_A.NOMI Aster/Cata/cataSTA8/materiau/Z2CN1810_REF_A.NOMI Aster/Cata/cataSTA8/materiau/Z2CND1712_REF_A.NOMI Aster/Cata/cataSTA8/materiau/Z6CND1712_REF_A.NOMI Aster/Cata/cataSTA8/ops.py Aster/Cata/pre74/FORM.py Aster/Cata/pre74/__init__.py Aster/Cata/pre74/compocomm.py Aster/Cata/pre74/compoformule.py Aster/Cata/pre74/compomacro.py Aster/Cata/pre74/compooper.py Aster/Cata/pre74/compoparam.py Aster/Cata/pre74/compoproc.py Aster/Cata/pre74/ongletpanel.py Installation/Doc_technique_install.doc Installation/README Installation/README_install Installation/install.py InterfaceQT/__init__.py InterfaceQT/browser.py InterfaceQT/compobase.py InterfaceQT/compobloc.py InterfaceQT/compocomm.py InterfaceQT/compocommandecomm.py InterfaceQT/compoerror.py InterfaceQT/compofact.py InterfaceQT/compoformule.py InterfaceQT/compojdc.py InterfaceQT/compomacro.py InterfaceQT/compomclist.py InterfaceQT/componiveau.py InterfaceQT/componuplet.py InterfaceQT/compooper.py InterfaceQT/compoparam.py InterfaceQT/compoparameval.py InterfaceQT/compoproc.py InterfaceQT/composimp.py InterfaceQT/editor.py InterfaceQT/eficas_go.py InterfaceQT/gereTraduction.py InterfaceQT/monChoixCata.py InterfaceQT/monCommandePanel.py InterfaceQT/monCommentairePanel.py InterfaceQT/monFonctionPanel.py InterfaceQT/monFormulePanel.py InterfaceQT/monIncludePanel.py InterfaceQT/monListeParamPanel.py InterfaceQT/monMCFactPanel.py InterfaceQT/monMCListAjoutPanel.py InterfaceQT/monMacroPanel.py InterfaceQT/monOptionsEditeur.py InterfaceQT/monOptionsPdf.py InterfaceQT/monParamPanel.py InterfaceQT/monPlusieursASSDPanel.py InterfaceQT/monPlusieursBasePanel.py InterfaceQT/monPlusieursIntoPanel.py InterfaceQT/monPoursuitePanel.py InterfaceQT/monRacinePanel.py InterfaceQT/monSelectVal.py InterfaceQT/monUniqueASSDPanel.py InterfaceQT/monUniqueBasePanel.py InterfaceQT/monUniqueCompPanel.py InterfaceQT/monUniqueIntoPanel.py InterfaceQT/monUniqueSDCOIntoPanel.py InterfaceQT/monUniqueSDCOPanel.py InterfaceQT/panelsQT.py InterfaceQT/politiquesValidation.py InterfaceQT/prefsQT.py InterfaceQT/qtCommun.py InterfaceQT/qtEficas.py InterfaceQT/qtSaisie.py InterfaceQT/readercata.py InterfaceQT/typeNode.py InterfaceQT/utilIcons.py InterfaceQT/viewManager.py InterfaceTK/CMakeLists.txt InterfaceTK/Interp.py InterfaceTK/TroisDPal.py InterfaceTK/__init__.py InterfaceTK/appli.py InterfaceTK/basestyle.py InterfaceTK/browser.py InterfaceTK/bureau.py InterfaceTK/catabrowser.py InterfaceTK/cataediteur.py InterfaceTK/centerwindow.py InterfaceTK/change_comm.py InterfaceTK/compobase.py InterfaceTK/compobloc.py InterfaceTK/compocomm.py InterfaceTK/compocommandecomm.py InterfaceTK/compoerror.py InterfaceTK/compofact.py InterfaceTK/compoformule.py InterfaceTK/compojdc.py InterfaceTK/compomacro.py InterfaceTK/compomclist.py InterfaceTK/componiveau.py InterfaceTK/componuplet.py InterfaceTK/compooper.py InterfaceTK/compoparam.py InterfaceTK/compoparameval.py InterfaceTK/compoproc.py InterfaceTK/composimp.py InterfaceTK/definition_cata.py InterfaceTK/eficas.py InterfaceTK/eficas_go.py InterfaceTK/eficas_test.py InterfaceTK/faq.py InterfaceTK/fenetre_mc_inconnus.py InterfaceTK/fonctionpanel.py InterfaceTK/fontes.py InterfaceTK/images.py InterfaceTK/jdcdisplay.py InterfaceTK/listeFichiers.py InterfaceTK/listePatronsTK.py InterfaceTK/macrodisplay.py InterfaceTK/menubar.py InterfaceTK/newsimppanel.py InterfaceTK/options.py InterfaceTK/panels.py InterfaceTK/panelsSalome.py InterfaceTK/patches.py InterfaceTK/plusieursassdpanel.py InterfaceTK/plusieursbasepanel.py InterfaceTK/plusieursintopanel.py InterfaceTK/plusieurspanel.py InterfaceTK/readercata.py InterfaceTK/shellpanel.py InterfaceTK/splash.py InterfaceTK/statusbar.py InterfaceTK/styles.py InterfaceTK/toolbar.py InterfaceTK/tooltip.py InterfaceTK/treeitemincanvas.py InterfaceTK/treewidget.py InterfaceTK/uniqueassdpanel.py InterfaceTK/uniquebasepanel.py InterfaceTK/uniquecomppanel.py InterfaceTK/uniqueintopanel.py InterfaceTK/uniquepanel.py InterfaceTK/uniquesdcopanel.py InterfaceTK/widgets.py Pmw/Alpha_99_9_example/__init__.py Pmw/Alpha_99_9_example/lib/Pmw.def Pmw/Alpha_99_9_example/lib/PmwAlphaExample.py Pmw/Alpha_99_9_example/lib/__init__.py Pmw/CMakeLists.txt Pmw/Pmw_1_2/CMakeLists.txt Pmw/Pmw_1_2/__init__.py Pmw/Pmw_1_2/bin/bundlepmw.py Pmw/Pmw_1_2/contrib/DirBrowser.py Pmw/Pmw_1_2/contrib/MCListbox.py Pmw/Pmw_1_2/contrib/PmwFileDialog.py Pmw/Pmw_1_2/contrib/PmwFullTimeCounter.py Pmw/Pmw_1_2/contrib/PmwVerticalGauge.py Pmw/Pmw_1_2/contrib/README Pmw/Pmw_1_2/contrib/TreeBrowser.py Pmw/Pmw_1_2/demos/AboutDialog.py Pmw/Pmw_1_2/demos/All.py Pmw/Pmw_1_2/demos/Args.py Pmw/Pmw_1_2/demos/Balloon.py Pmw/Pmw_1_2/demos/BltGraph.py Pmw/Pmw_1_2/demos/BltTabset.py Pmw/Pmw_1_2/demos/ButtonBox.py Pmw/Pmw_1_2/demos/Colors.py Pmw/Pmw_1_2/demos/ComboBox.py Pmw/Pmw_1_2/demos/ComboBoxDialog.py Pmw/Pmw_1_2/demos/ConfigClass.py Pmw/Pmw_1_2/demos/Counter.py Pmw/Pmw_1_2/demos/CounterDialog.py Pmw/Pmw_1_2/demos/DemoVersion.py Pmw/Pmw_1_2/demos/Dialog.py Pmw/Pmw_1_2/demos/EntryField.py Pmw/Pmw_1_2/demos/ErrorHandling.py Pmw/Pmw_1_2/demos/ExampleDemo.py Pmw/Pmw_1_2/demos/Grid.py Pmw/Pmw_1_2/demos/Group.py Pmw/Pmw_1_2/demos/HistoryText.py Pmw/Pmw_1_2/demos/LabeledWidget.py Pmw/Pmw_1_2/demos/LogicalFont.py Pmw/Pmw_1_2/demos/MainMenuBar.py Pmw/Pmw_1_2/demos/MenuBar.py Pmw/Pmw_1_2/demos/MessageBar.py Pmw/Pmw_1_2/demos/MessageDialog.py Pmw/Pmw_1_2/demos/MessageInfo.py Pmw/Pmw_1_2/demos/MultiLineLabel.py Pmw/Pmw_1_2/demos/NestedDialogs.py Pmw/Pmw_1_2/demos/NoteBook.py Pmw/Pmw_1_2/demos/NoteBook_2.py Pmw/Pmw_1_2/demos/NoteBook_3.py Pmw/Pmw_1_2/demos/OptionMenu.py Pmw/Pmw_1_2/demos/PanedWidget.py Pmw/Pmw_1_2/demos/PanedWidget_2.py Pmw/Pmw_1_2/demos/PromptDialog.py Pmw/Pmw_1_2/demos/RadioSelect.py Pmw/Pmw_1_2/demos/Resources.py Pmw/Pmw_1_2/demos/Resources_Pmw.py Pmw/Pmw_1_2/demos/ScrolledCanvas.py Pmw/Pmw_1_2/demos/ScrolledField.py Pmw/Pmw_1_2/demos/ScrolledFrame.py Pmw/Pmw_1_2/demos/ScrolledListBox.py Pmw/Pmw_1_2/demos/ScrolledText.py Pmw/Pmw_1_2/demos/ScrolledText_2.py Pmw/Pmw_1_2/demos/SelectionDialog.py Pmw/Pmw_1_2/demos/ShowBusy.py Pmw/Pmw_1_2/demos/SpecialCounter.py Pmw/Pmw_1_2/demos/SpecialEntry.py Pmw/Pmw_1_2/demos/Spectrum.py Pmw/Pmw_1_2/demos/SpeedTest.py Pmw/Pmw_1_2/demos/SubClassing.py Pmw/Pmw_1_2/demos/TextDialog.py Pmw/Pmw_1_2/demos/TextDisplay.py Pmw/Pmw_1_2/demos/TimeCounter.py Pmw/Pmw_1_2/demos/WidgetDestroy.py Pmw/Pmw_1_2/doc/AboutDialog.gif Pmw/Pmw_1_2/doc/AboutDialog.html Pmw/Pmw_1_2/doc/Balloon.gif Pmw/Pmw_1_2/doc/Balloon.html Pmw/Pmw_1_2/doc/Blt.html Pmw/Pmw_1_2/doc/ButtonBox.gif Pmw/Pmw_1_2/doc/ButtonBox.html Pmw/Pmw_1_2/doc/Color.html Pmw/Pmw_1_2/doc/ComboBox.gif Pmw/Pmw_1_2/doc/ComboBox.html Pmw/Pmw_1_2/doc/ComboBoxDialog.gif Pmw/Pmw_1_2/doc/ComboBoxDialog.html Pmw/Pmw_1_2/doc/Counter.gif Pmw/Pmw_1_2/doc/Counter.html Pmw/Pmw_1_2/doc/CounterDialog.gif Pmw/Pmw_1_2/doc/CounterDialog.html Pmw/Pmw_1_2/doc/Dialog.gif Pmw/Pmw_1_2/doc/Dialog.html Pmw/Pmw_1_2/doc/EntryField.gif Pmw/Pmw_1_2/doc/EntryField.html Pmw/Pmw_1_2/doc/ExampleDemo.py Pmw/Pmw_1_2/doc/Group.gif Pmw/Pmw_1_2/doc/Group.html Pmw/Pmw_1_2/doc/HistoryText.gif Pmw/Pmw_1_2/doc/HistoryText.html Pmw/Pmw_1_2/doc/LabeledWidget.gif Pmw/Pmw_1_2/doc/LabeledWidget.html Pmw/Pmw_1_2/doc/MainMenuBar.gif Pmw/Pmw_1_2/doc/MainMenuBar.html Pmw/Pmw_1_2/doc/MegaArchetype.html Pmw/Pmw_1_2/doc/MegaToplevel.html Pmw/Pmw_1_2/doc/MegaWidget.html Pmw/Pmw_1_2/doc/MenuBar.gif Pmw/Pmw_1_2/doc/MenuBar.html Pmw/Pmw_1_2/doc/MessageBar.gif Pmw/Pmw_1_2/doc/MessageBar.html Pmw/Pmw_1_2/doc/MessageDialog.gif Pmw/Pmw_1_2/doc/MessageDialog.html Pmw/Pmw_1_2/doc/NoteBook.gif Pmw/Pmw_1_2/doc/NoteBook.html Pmw/Pmw_1_2/doc/OptionMenu.gif Pmw/Pmw_1_2/doc/OptionMenu.html Pmw/Pmw_1_2/doc/PanedWidget.gif Pmw/Pmw_1_2/doc/PanedWidget.html Pmw/Pmw_1_2/doc/PmwFunctions.html Pmw/Pmw_1_2/doc/PromptDialog.gif Pmw/Pmw_1_2/doc/PromptDialog.html Pmw/Pmw_1_2/doc/RadioSelect.gif Pmw/Pmw_1_2/doc/RadioSelect.html Pmw/Pmw_1_2/doc/ScrolledCanvas.gif Pmw/Pmw_1_2/doc/ScrolledCanvas.html Pmw/Pmw_1_2/doc/ScrolledField.gif Pmw/Pmw_1_2/doc/ScrolledField.html Pmw/Pmw_1_2/doc/ScrolledFrame.gif Pmw/Pmw_1_2/doc/ScrolledFrame.html Pmw/Pmw_1_2/doc/ScrolledListBox.gif Pmw/Pmw_1_2/doc/ScrolledListBox.html Pmw/Pmw_1_2/doc/ScrolledText.gif Pmw/Pmw_1_2/doc/ScrolledText.html Pmw/Pmw_1_2/doc/ScrolledText_test.py Pmw/Pmw_1_2/doc/SelectionDialog.gif Pmw/Pmw_1_2/doc/SelectionDialog.html Pmw/Pmw_1_2/doc/TextDialog.gif Pmw/Pmw_1_2/doc/TextDialog.html Pmw/Pmw_1_2/doc/TimeCounter.gif Pmw/Pmw_1_2/doc/TimeCounter.html Pmw/Pmw_1_2/doc/blue_line.gif Pmw/Pmw_1_2/doc/blueball.gif Pmw/Pmw_1_2/doc/bugs.html Pmw/Pmw_1_2/doc/changes.html Pmw/Pmw_1_2/doc/copyright.html Pmw/Pmw_1_2/doc/counter1.gif Pmw/Pmw_1_2/doc/counter2.gif Pmw/Pmw_1_2/doc/demosandtests.html Pmw/Pmw_1_2/doc/dynamicloader.html Pmw/Pmw_1_2/doc/example.py Pmw/Pmw_1_2/doc/example1.gif Pmw/Pmw_1_2/doc/example2.gif Pmw/Pmw_1_2/doc/exercises.py Pmw/Pmw_1_2/doc/features.html Pmw/Pmw_1_2/doc/halfblueball.gif Pmw/Pmw_1_2/doc/howtobuild.html Pmw/Pmw_1_2/doc/howtouse.html Pmw/Pmw_1_2/doc/index.html Pmw/Pmw_1_2/doc/porting.html Pmw/Pmw_1_2/doc/refindex.html Pmw/Pmw_1_2/doc/scale1.gif Pmw/Pmw_1_2/doc/scale2.gif Pmw/Pmw_1_2/doc/starting.html Pmw/Pmw_1_2/doc/todo.html Pmw/Pmw_1_2/doc/transdove.gif Pmw/Pmw_1_2/lib/Pmw.def Pmw/Pmw_1_2/lib/PmwAboutDialog.py Pmw/Pmw_1_2/lib/PmwBalloon.py Pmw/Pmw_1_2/lib/PmwBase.py Pmw/Pmw_1_2/lib/PmwBlt.py Pmw/Pmw_1_2/lib/PmwButtonBox.py Pmw/Pmw_1_2/lib/PmwColor.py Pmw/Pmw_1_2/lib/PmwComboBox.py Pmw/Pmw_1_2/lib/PmwComboBoxDialog.py Pmw/Pmw_1_2/lib/PmwCounter.py Pmw/Pmw_1_2/lib/PmwCounterDialog.py Pmw/Pmw_1_2/lib/PmwDialog.py Pmw/Pmw_1_2/lib/PmwEntryField.py Pmw/Pmw_1_2/lib/PmwGroup.py Pmw/Pmw_1_2/lib/PmwHistoryText.py Pmw/Pmw_1_2/lib/PmwLabeledWidget.py Pmw/Pmw_1_2/lib/PmwLoader.py Pmw/Pmw_1_2/lib/PmwLogicalFont.py Pmw/Pmw_1_2/lib/PmwMainMenuBar.py Pmw/Pmw_1_2/lib/PmwMenuBar.py Pmw/Pmw_1_2/lib/PmwMessageBar.py Pmw/Pmw_1_2/lib/PmwMessageDialog.py Pmw/Pmw_1_2/lib/PmwNoteBook.py Pmw/Pmw_1_2/lib/PmwOptionMenu.py Pmw/Pmw_1_2/lib/PmwPanedWidget.py Pmw/Pmw_1_2/lib/PmwPromptDialog.py Pmw/Pmw_1_2/lib/PmwRadioSelect.py Pmw/Pmw_1_2/lib/PmwScrolledCanvas.py Pmw/Pmw_1_2/lib/PmwScrolledField.py Pmw/Pmw_1_2/lib/PmwScrolledFrame.py Pmw/Pmw_1_2/lib/PmwScrolledListBox.py Pmw/Pmw_1_2/lib/PmwScrolledText.py Pmw/Pmw_1_2/lib/PmwSelectionDialog.py Pmw/Pmw_1_2/lib/PmwTextDialog.py Pmw/Pmw_1_2/lib/PmwTimeCounter.py Pmw/Pmw_1_2/lib/PmwTimeFuncs.py Pmw/Pmw_1_2/lib/__init__.py Pmw/Pmw_1_2/tests/AboutDialog_test.py Pmw/Pmw_1_2/tests/All.py Pmw/Pmw_1_2/tests/Blt_test.py Pmw/Pmw_1_2/tests/ButtonBox_test.py Pmw/Pmw_1_2/tests/Colors_test.py Pmw/Pmw_1_2/tests/ComboBox_test.py Pmw/Pmw_1_2/tests/CounterDialog_test.py Pmw/Pmw_1_2/tests/Counter_test.py Pmw/Pmw_1_2/tests/Dialog_test.py Pmw/Pmw_1_2/tests/EntryField_test.py Pmw/Pmw_1_2/tests/LabeledWidget_test.py Pmw/Pmw_1_2/tests/ManualTests.py Pmw/Pmw_1_2/tests/MegaWidget_test.py Pmw/Pmw_1_2/tests/MessageDialog_test.py Pmw/Pmw_1_2/tests/NoteBook_test.py Pmw/Pmw_1_2/tests/OptionMenu_test.py Pmw/Pmw_1_2/tests/Options_test.py Pmw/Pmw_1_2/tests/PanedWidget_test.py Pmw/Pmw_1_2/tests/PmwBase_test.py Pmw/Pmw_1_2/tests/PromptDialog_test.py Pmw/Pmw_1_2/tests/RadioSelect_test.py Pmw/Pmw_1_2/tests/ScrolledCanvas_test.py Pmw/Pmw_1_2/tests/ScrolledField_test.py Pmw/Pmw_1_2/tests/ScrolledFrame_test.py Pmw/Pmw_1_2/tests/ScrolledListBox_test.py Pmw/Pmw_1_2/tests/ScrolledText_test.py Pmw/Pmw_1_2/tests/SelectionDialog_test.py Pmw/Pmw_1_2/tests/Test.py Pmw/Pmw_1_2/tests/TestVersion.py Pmw/Pmw_1_2/tests/TextDialog_test.py Pmw/Pmw_1_2/tests/Tkinter_test.py Pmw/Pmw_1_2/tests/earthris.gif Pmw/Pmw_1_2/tests/flagup.bmp Pmw/README Pmw/__init__.py Ui/OptionsEditeur.ui Ui/OptionsPdf.ui Ui/aideQT.ui Ui/desChoixCata.ui Ui/desCommande.ui Ui/desCommentaire.ui Ui/desError.ui Ui/desFormule.ui Ui/desInactif.ui Ui/desInclude.ui Ui/desListeParam.ui Ui/desMCFact.ui Ui/desMCListAjout.ui Ui/desMacro.ui Ui/desParam.ui Ui/desPlusieursBase.ui Ui/desPlusieursInto.ui Ui/desPoursuite.ui Ui/desRacine.ui Ui/desSelectVal.ui Ui/desUniqueASSD.ui Ui/desUniqueBase.ui Ui/desUniqueComp.ui Ui/desUniqueInto.ui Ui/desUniqueSDCO.ui Ui/desUniqueSDCOInto.ui Ui/desVisu.ui Ui/image120.gif Ui/image120.png Ui/image240.gif Ui/makefile Ui/myMain.ui --- Aster/Cata/cataSTA5/__init__.py | 7 - Aster/Cata/cataSTA5/cata.py | 11451 -------- Aster/Cata/cataSTA5/ops.py | 246 - Aster/Cata/cataSTA6/Macro/__init__.py | 21 - Aster/Cata/cataSTA6/Macro/ajout_quad_gmsh.py | 250 - .../cataSTA6/Macro/macr_lign_coupe_ops.py | 170 - Aster/Cata/cataSTA6/Macro/macr_recal_ops.py | 138 - .../cataSTA6/Macro/macro_cara_poutre_ops.py | 684 - .../cataSTA6/Macro/macro_elas_mult_ops.py | 246 - .../cataSTA6/Macro/macro_matr_asse_ops.py | 181 - .../Cata/cataSTA6/Macro/macro_miss_3d_ops.py | 71 - .../cataSTA6/Macro/macro_mode_meca_ops.py | 133 - .../cataSTA6/Macro/macro_proj_base_ops.py | 68 - Aster/Cata/cataSTA6/Macro/pre_gmsh_ops.py | 61 - Aster/Cata/cataSTA6/Macro/reca_algo.py | 226 - Aster/Cata/cataSTA6/Macro/reca_interp.py | 177 - Aster/Cata/cataSTA6/Macro/reca_message.py | 113 - Aster/Cata/cataSTA6/Macro/recal.py | 403 - Aster/Cata/cataSTA6/__init__.py | 14 - Aster/Cata/cataSTA6/cata.py | 17411 ----------- Aster/Cata/cataSTA6/macro_cara_poutre_ops.py | 684 - Aster/Cata/cataSTA6/ops.py | 246 - Aster/Cata/cataSTA6/pre_gmsh_ops.py | 61 - Aster/Cata/cataSTA7/Macro/__init__.py | 21 - Aster/Cata/cataSTA7/Macro/ajout_quad_gmsh.py | 252 - Aster/Cata/cataSTA7/Macro/calc_precont_ops.py | 468 - .../Cata/cataSTA7/Macro/defi_cable_bp_ops.py | 324 - .../Cata/cataSTA7/Macro/defi_part_feti_ops.py | 182 - .../Cata/cataSTA7/Macro/fiabilite_fichier.py | 335 - .../Cata/cataSTA7/Macro/fiabilite_mefisto.py | 448 - .../Cata/cataSTA7/Macro/impr_fonction_ops.py | 400 - Aster/Cata/cataSTA7/Macro/impr_table_ops.py | 247 - .../Cata/cataSTA7/Macro/lire_fonction_ops.py | 268 - .../Cata/cataSTA7/Macro/lire_inte_spec_ops.py | 125 - Aster/Cata/cataSTA7/Macro/lire_table_ops.py | 177 - .../Cata/cataSTA7/Macro/macr_adap_mail_ops.py | 727 - .../cataSTA7/Macro/macr_ascouf_calc_ops.py | 677 - .../cataSTA7/Macro/macr_ascouf_mail_ops.py | 2849 -- .../cataSTA7/Macro/macr_aspic_calc_ops.py | 822 - .../cataSTA7/Macro/macr_aspic_mail_ops.py | 941 - .../cataSTA7/Macro/macr_cabri_calc_ops.py | 542 - .../cataSTA7/Macro/macr_cabri_mail_dat.py | 630 - .../cataSTA7/Macro/macr_cabri_mail_ops.py | 461 - .../cataSTA7/Macro/macr_cara_poutre_ops.py | 815 - Aster/Cata/cataSTA7/Macro/macr_ecla_pg_ops.py | 71 - .../Cata/cataSTA7/Macro/macr_fiab_impr_ops.py | 110 - .../Cata/cataSTA7/Macro/macr_fiabilite_ops.py | 324 - .../cataSTA7/Macro/macr_lign_coupe_ops.py | 174 - Aster/Cata/cataSTA7/Macro/macr_recal_ops.py | 161 - .../cataSTA7/Macro/macro_elas_mult_ops.py | 274 - .../cataSTA7/Macro/macro_matr_ajou_ops.py | 260 - .../cataSTA7/Macro/macro_matr_asse_ops.py | 155 - .../Cata/cataSTA7/Macro/macro_miss_3d_ops.py | 75 - .../cataSTA7/Macro/macro_mode_meca_ops.py | 138 - .../cataSTA7/Macro/macro_proj_base_ops.py | 62 - Aster/Cata/cataSTA7/Macro/reca_algo.py | 271 - Aster/Cata/cataSTA7/Macro/reca_interp.py | 180 - Aster/Cata/cataSTA7/Macro/reca_message.py | 115 - Aster/Cata/cataSTA7/Macro/recal.py | 396 - Aster/Cata/cataSTA7/Macro/stanley_ops.py | 75 - Aster/Cata/cataSTA7/Macro/test_fichier_ops.py | 279 - Aster/Cata/cataSTA7/__init__.py | 25 - Aster/Cata/cataSTA7/cata.py | 21842 -------------- .../Cata/cataSTA7/materiau/18MND5_REF_A.NOMI | 135 - Aster/Cata/cataSTA7/materiau/README.PY | 1 - .../Cata/cataSTA7/materiau/Z12CN13_REF_A.NOMI | 134 - .../cataSTA7/materiau/Z2CN1810_REF_A.NOMI | 354 - .../cataSTA7/materiau/Z2CND1712_REF_A.NOMI | 337 - .../cataSTA7/materiau/Z6CND1712_REF_A.NOMI | 178 - Aster/Cata/cataSTA7/ops.py | 442 - Aster/Cata/cataSTA73/Macro/__init__.py | 21 - Aster/Cata/cataSTA73/Macro/ajout_quad_gmsh.py | 252 - .../Cata/cataSTA73/Macro/calc_precont_ops.py | 468 - .../Cata/cataSTA73/Macro/defi_cable_bp_ops.py | 313 - .../cataSTA73/Macro/defi_part_feti_ops.py | 182 - .../Cata/cataSTA73/Macro/fiabilite_fichier.py | 335 - .../Cata/cataSTA73/Macro/fiabilite_mefisto.py | 448 - .../Cata/cataSTA73/Macro/impr_fonction_ops.py | 420 - Aster/Cata/cataSTA73/Macro/impr_table_ops.py | 232 - .../Cata/cataSTA73/Macro/lire_fonction_ops.py | 258 - .../cataSTA73/Macro/lire_inte_spec_ops.py | 122 - Aster/Cata/cataSTA73/Macro/lire_table_ops.py | 177 - .../cataSTA73/Macro/macr_adap_mail_ops.py | 727 - .../cataSTA73/Macro/macr_ascouf_calc_ops.py | 677 - .../cataSTA73/Macro/macr_ascouf_mail_ops.py | 2836 -- .../cataSTA73/Macro/macr_aspic_calc_ops.py | 821 - .../cataSTA73/Macro/macr_aspic_mail_ops.py | 845 - .../cataSTA73/Macro/macr_cabri_calc_ops.py | 542 - .../cataSTA73/Macro/macr_cabri_mail_dat.py | 630 - .../cataSTA73/Macro/macr_cabri_mail_ops.py | 461 - .../cataSTA73/Macro/macr_cara_poutre_ops.py | 816 - .../Cata/cataSTA73/Macro/macr_ecla_pg_ops.py | 71 - .../cataSTA73/Macro/macr_fiab_impr_ops.py | 110 - .../cataSTA73/Macro/macr_fiabilite_ops.py | 324 - .../cataSTA73/Macro/macr_lign_coupe_ops.py | 173 - Aster/Cata/cataSTA73/Macro/macr_recal_ops.py | 162 - .../cataSTA73/Macro/macro_cara_poutre_ops.py | 684 - .../cataSTA73/Macro/macro_elas_mult_ops.py | 275 - .../cataSTA73/Macro/macro_matr_ajou_ops.py | 260 - .../cataSTA73/Macro/macro_matr_asse_ops.py | 160 - .../Cata/cataSTA73/Macro/macro_miss_3d_ops.py | 76 - .../cataSTA73/Macro/macro_mode_meca_ops.py | 136 - .../cataSTA73/Macro/macro_proj_base_ops.py | 63 - Aster/Cata/cataSTA73/Macro/pre_gmsh_ops.py | 61 - Aster/Cata/cataSTA73/Macro/reca_algo.py | 260 - Aster/Cata/cataSTA73/Macro/reca_interp.py | 180 - Aster/Cata/cataSTA73/Macro/reca_message.py | 115 - Aster/Cata/cataSTA73/Macro/recal.py | 379 - Aster/Cata/cataSTA73/Macro/stanley_ops.py | 61 - .../Cata/cataSTA73/Macro/test_fichier_ops.py | 195 - Aster/Cata/cataSTA73/__init__.py | 6 - Aster/Cata/cataSTA73/cata.py | 21652 -------------- Aster/Cata/cataSTA74/Macro/__init__.py | 21 - Aster/Cata/cataSTA74/Macro/ajout_quad_gmsh.py | 252 - .../Cata/cataSTA74/Macro/calc_precont_ops.py | 468 - .../Cata/cataSTA74/Macro/defi_cable_bp_ops.py | 313 - .../cataSTA74/Macro/defi_part_feti_ops.py | 182 - .../Cata/cataSTA74/Macro/fiabilite_fichier.py | 335 - .../Cata/cataSTA74/Macro/fiabilite_mefisto.py | 448 - .../Cata/cataSTA74/Macro/impr_fonction_ops.py | 393 - Aster/Cata/cataSTA74/Macro/impr_table_ops.py | 232 - .../Cata/cataSTA74/Macro/lire_fonction_ops.py | 254 - .../cataSTA74/Macro/lire_inte_spec_ops.py | 122 - Aster/Cata/cataSTA74/Macro/lire_table_ops.py | 173 - .../cataSTA74/Macro/macr_adap_mail_ops.py | 727 - .../cataSTA74/Macro/macr_ascouf_calc_ops.py | 677 - .../cataSTA74/Macro/macr_ascouf_mail_ops.py | 2849 -- .../cataSTA74/Macro/macr_aspic_calc_ops.py | 821 - .../cataSTA74/Macro/macr_aspic_mail_ops.py | 845 - .../cataSTA74/Macro/macr_cabri_calc_ops.py | 542 - .../cataSTA74/Macro/macr_cabri_mail_dat.py | 630 - .../cataSTA74/Macro/macr_cabri_mail_ops.py | 461 - .../cataSTA74/Macro/macr_cara_poutre_ops.py | 816 - .../Cata/cataSTA74/Macro/macr_ecla_pg_ops.py | 71 - .../cataSTA74/Macro/macr_fiab_impr_ops.py | 110 - .../cataSTA74/Macro/macr_fiabilite_ops.py | 324 - .../cataSTA74/Macro/macr_lign_coupe_ops.py | 173 - Aster/Cata/cataSTA74/Macro/macr_recal_ops.py | 162 - .../cataSTA74/Macro/macro_cara_poutre_ops.py | 684 - .../cataSTA74/Macro/macro_elas_mult_ops.py | 275 - .../cataSTA74/Macro/macro_matr_ajou_ops.py | 260 - .../cataSTA74/Macro/macro_matr_asse_ops.py | 160 - .../Cata/cataSTA74/Macro/macro_miss_3d_ops.py | 76 - .../cataSTA74/Macro/macro_mode_meca_ops.py | 139 - .../cataSTA74/Macro/macro_proj_base_ops.py | 63 - Aster/Cata/cataSTA74/Macro/pre_gmsh_ops.py | 61 - Aster/Cata/cataSTA74/Macro/reca_algo.py | 260 - Aster/Cata/cataSTA74/Macro/reca_interp.py | 180 - Aster/Cata/cataSTA74/Macro/reca_message.py | 115 - Aster/Cata/cataSTA74/Macro/recal.py | 379 - Aster/Cata/cataSTA74/Macro/stanley_ops.py | 66 - .../Cata/cataSTA74/Macro/test_fichier_ops.py | 195 - Aster/Cata/cataSTA74/__init__.py | 6 - Aster/Cata/cataSTA74/cata.py | 21679 -------------- Aster/Cata/cataSTA74/ops.py | 432 - Aster/Cata/cataSTA76/Macro/__init__.py | 21 - Aster/Cata/cataSTA76/Macro/ajout_quad_gmsh.py | 252 - .../Cata/cataSTA76/Macro/calc_precont_ops.py | 468 - .../Cata/cataSTA76/Macro/defi_cable_bp_ops.py | 313 - .../cataSTA76/Macro/defi_part_feti_ops.py | 182 - .../Cata/cataSTA76/Macro/fiabilite_fichier.py | 335 - .../Cata/cataSTA76/Macro/fiabilite_mefisto.py | 448 - .../Cata/cataSTA76/Macro/impr_fonction_ops.py | 400 - Aster/Cata/cataSTA76/Macro/impr_table_ops.py | 247 - .../Cata/cataSTA76/Macro/lire_fonction_ops.py | 268 - .../cataSTA76/Macro/lire_inte_spec_ops.py | 125 - Aster/Cata/cataSTA76/Macro/lire_table_ops.py | 177 - .../cataSTA76/Macro/macr_adap_mail_ops.py | 727 - .../cataSTA76/Macro/macr_ascouf_calc_ops.py | 677 - .../cataSTA76/Macro/macr_ascouf_mail_ops.py | 2853 -- .../cataSTA76/Macro/macr_aspic_calc_ops.py | 822 - .../cataSTA76/Macro/macr_aspic_mail_ops.py | 927 - .../cataSTA76/Macro/macr_cabri_calc_ops.py | 542 - .../cataSTA76/Macro/macr_cabri_mail_dat.py | 630 - .../cataSTA76/Macro/macr_cabri_mail_ops.py | 461 - .../cataSTA76/Macro/macr_cara_poutre_ops.py | 815 - .../Cata/cataSTA76/Macro/macr_ecla_pg_ops.py | 71 - .../cataSTA76/Macro/macr_fiab_impr_ops.py | 110 - .../cataSTA76/Macro/macr_fiabilite_ops.py | 324 - .../cataSTA76/Macro/macr_lign_coupe_ops.py | 174 - Aster/Cata/cataSTA76/Macro/macr_recal_ops.py | 161 - .../cataSTA76/Macro/macro_elas_mult_ops.py | 274 - .../cataSTA76/Macro/macro_matr_ajou_ops.py | 260 - .../cataSTA76/Macro/macro_matr_asse_ops.py | 153 - .../Cata/cataSTA76/Macro/macro_miss_3d_ops.py | 75 - .../cataSTA76/Macro/macro_mode_meca_ops.py | 138 - .../cataSTA76/Macro/macro_proj_base_ops.py | 62 - Aster/Cata/cataSTA76/Macro/reca_algo.py | 267 - Aster/Cata/cataSTA76/Macro/reca_interp.py | 180 - Aster/Cata/cataSTA76/Macro/reca_message.py | 115 - Aster/Cata/cataSTA76/Macro/recal.py | 379 - Aster/Cata/cataSTA76/Macro/stanley_ops.py | 75 - .../Cata/cataSTA76/Macro/test_fichier_ops.py | 279 - Aster/Cata/cataSTA76/__init__.py | 6 - Aster/Cata/cataSTA76/cata.py | 21831 -------------- Aster/Cata/cataSTA76/ops.py | 438 - Aster/Cata/cataSTA8/Macro/__init__.py | 21 - Aster/Cata/cataSTA8/Macro/ajout_quad_gmsh.py | 252 - .../Cata/cataSTA8/Macro/calc_fonction_ops.py | 410 - Aster/Cata/cataSTA8/Macro/calc_precont_ops.py | 473 - Aster/Cata/cataSTA8/Macro/calc_table_ops.py | 167 - .../cataSTA8/Macro/creation_donnees_homard.py | 541 - .../Cata/cataSTA8/Macro/defi_cable_bp_ops.py | 306 - .../Cata/cataSTA8/Macro/defi_inte_spec_ops.py | 153 - .../Cata/cataSTA8/Macro/defi_part_feti_ops.py | 194 - .../Cata/cataSTA8/Macro/exec_logiciel_ops.py | 184 - .../Cata/cataSTA8/Macro/fiabilite_fichier.py | 335 - .../Cata/cataSTA8/Macro/fiabilite_mefisto.py | 461 - .../Cata/cataSTA8/Macro/gene_vari_alea_ops.py | 109 - .../Cata/cataSTA8/Macro/impr_fonction_ops.py | 402 - Aster/Cata/cataSTA8/Macro/impr_oar_ops.py | 773 - Aster/Cata/cataSTA8/Macro/impr_table_ops.py | 236 - .../Cata/cataSTA8/Macro/info_fonction_ops.py | 307 - .../Cata/cataSTA8/Macro/lire_fonction_ops.py | 268 - .../Cata/cataSTA8/Macro/lire_inte_spec_ops.py | 117 - Aster/Cata/cataSTA8/Macro/lire_table_ops.py | 152 - .../Cata/cataSTA8/Macro/macr_adap_mail_ops.py | 848 - .../cataSTA8/Macro/macr_ascouf_calc_ops.py | 681 - .../cataSTA8/Macro/macr_ascouf_mail_ops.py | 2795 -- .../cataSTA8/Macro/macr_aspic_calc_ops.py | 797 - .../cataSTA8/Macro/macr_aspic_mail_ops.py | 917 - .../cataSTA8/Macro/macr_cabri_calc_ops.py | 542 - .../cataSTA8/Macro/macr_cabri_mail_dat.py | 630 - .../cataSTA8/Macro/macr_cabri_mail_ops.py | 459 - .../cataSTA8/Macro/macr_cara_poutre_ops.py | 817 - Aster/Cata/cataSTA8/Macro/macr_ecla_pg_ops.py | 71 - .../Cata/cataSTA8/Macro/macr_fiab_impr_ops.py | 110 - .../Cata/cataSTA8/Macro/macr_fiabilite_ops.py | 359 - .../cataSTA8/Macro/macr_lign_coupe_ops.py | 415 - Aster/Cata/cataSTA8/Macro/macr_recal_ops.py | 1025 - Aster/Cata/cataSTA8/Macro/macr_spectre_ops.py | 363 - .../cataSTA8/Macro/macro_elas_mult_ops.py | 277 - .../cataSTA8/Macro/macro_matr_ajou_ops.py | 256 - .../cataSTA8/Macro/macro_matr_asse_ops.py | 129 - .../Cata/cataSTA8/Macro/macro_miss_3d_ops.py | 141 - .../cataSTA8/Macro/macro_mode_meca_ops.py | 138 - .../cataSTA8/Macro/macro_proj_base_ops.py | 59 - .../Cata/cataSTA8/Macro/post_dyna_alea_ops.py | 254 - Aster/Cata/cataSTA8/Macro/post_gp_ops.py | 371 - .../Cata/cataSTA8/Macro/post_k1_k2_k3_ops.py | 952 - Aster/Cata/cataSTA8/Macro/post_k_trans_ops.py | 245 - Aster/Cata/cataSTA8/Macro/reca_algo.py | 305 - .../Cata/cataSTA8/Macro/reca_calcul_aster.py | 909 - Aster/Cata/cataSTA8/Macro/reca_controles.py | 228 - Aster/Cata/cataSTA8/Macro/reca_graphique.py | 92 - Aster/Cata/cataSTA8/Macro/reca_interp.py | 325 - Aster/Cata/cataSTA8/Macro/reca_message.py | 173 - Aster/Cata/cataSTA8/Macro/reca_utilitaires.py | 225 - Aster/Cata/cataSTA8/Macro/recal.py | 358 - .../Cata/cataSTA8/Macro/simu_point_mat_ops.py | 327 - Aster/Cata/cataSTA8/Macro/stanley_ops.py | 89 - Aster/Cata/cataSTA8/Macro/test_fichier_ops.py | 277 - Aster/Cata/cataSTA8/__init__.py | 23 - Aster/Cata/cataSTA8/cata.py | 24244 ---------------- .../Cata/cataSTA8/materiau/18MND5_REF_A.NOMI | 135 - Aster/Cata/cataSTA8/materiau/README.PY | 1 - .../Cata/cataSTA8/materiau/Z12CN13_REF_A.NOMI | 134 - .../cataSTA8/materiau/Z2CN1810_REF_A.NOMI | 354 - .../cataSTA8/materiau/Z2CND1712_REF_A.NOMI | 337 - .../cataSTA8/materiau/Z6CND1712_REF_A.NOMI | 178 - Aster/Cata/cataSTA8/ops.py | 459 - Aster/Cata/pre74/FORM.py | 283 - Aster/Cata/pre74/__init__.py | 8 - Aster/Cata/pre74/compocomm.py | 33 - Aster/Cata/pre74/compoformule.py | 226 - Aster/Cata/pre74/compomacro.py | 61 - Aster/Cata/pre74/compooper.py | 33 - Aster/Cata/pre74/compoparam.py | 33 - Aster/Cata/pre74/compoproc.py | 34 - Aster/Cata/pre74/ongletpanel.py | 89 - Installation/Doc_technique_install.doc | Bin 49152 -> 0 bytes Installation/README | 30 - Installation/README_install | 40 - Installation/install.py | 950 - InterfaceQT/__init__.py | 24 - InterfaceQT/browser.py | 510 - InterfaceQT/compobase.py | 3 - InterfaceQT/compobloc.py | 32 - InterfaceQT/compocomm.py | 108 - InterfaceQT/compocommandecomm.py | 94 - InterfaceQT/compoerror.py | 38 - InterfaceQT/compofact.py | 136 - InterfaceQT/compoformule.py | 180 - InterfaceQT/compojdc.py | 116 - InterfaceQT/compomacro.py | 154 - InterfaceQT/compomclist.py | 205 - InterfaceQT/componiveau.py | 94 - InterfaceQT/componuplet.py | 85 - InterfaceQT/compooper.py | 260 - InterfaceQT/compoparam.py | 123 - InterfaceQT/compoparameval.py | 153 - InterfaceQT/compoproc.py | 24 - InterfaceQT/composimp.py | 605 - InterfaceQT/editor.py | 742 - InterfaceQT/eficas_go.py | 61 - InterfaceQT/gereTraduction.py | 51 - InterfaceQT/monChoixCata.py | 57 - InterfaceQT/monCommandePanel.py | 72 - InterfaceQT/monCommentairePanel.py | 78 - InterfaceQT/monFonctionPanel.py | 157 - InterfaceQT/monFormulePanel.py | 147 - InterfaceQT/monIncludePanel.py | 154 - InterfaceQT/monListeParamPanel.py | 48 - InterfaceQT/monMCFactPanel.py | 51 - InterfaceQT/monMCListAjoutPanel.py | 52 - InterfaceQT/monMacroPanel.py | 76 - InterfaceQT/monOptionsEditeur.py | 145 - InterfaceQT/monOptionsPdf.py | 22 - InterfaceQT/monParamPanel.py | 138 - InterfaceQT/monPlusieursASSDPanel.py | 118 - InterfaceQT/monPlusieursBasePanel.py | 179 - InterfaceQT/monPlusieursIntoPanel.py | 120 - InterfaceQT/monPoursuitePanel.py | 115 - InterfaceQT/monRacinePanel.py | 81 - InterfaceQT/monSelectVal.py | 87 - InterfaceQT/monUniqueASSDPanel.py | 75 - InterfaceQT/monUniqueBasePanel.py | 125 - InterfaceQT/monUniqueCompPanel.py | 163 - InterfaceQT/monUniqueIntoPanel.py | 60 - InterfaceQT/monUniqueSDCOIntoPanel.py | 97 - InterfaceQT/monUniqueSDCOPanel.py | 67 - InterfaceQT/panelsQT.py | 28 - InterfaceQT/politiquesValidation.py | 180 - InterfaceQT/prefsQT.py | 25 - InterfaceQT/qtCommun.py | 367 - InterfaceQT/qtEficas.py | 293 - InterfaceQT/qtSaisie.py | 188 - InterfaceQT/readercata.py | 417 - InterfaceQT/typeNode.py | 53 - InterfaceQT/utilIcons.py | 52 - InterfaceQT/viewManager.py | 2553 -- InterfaceTK/CMakeLists.txt | 48 - InterfaceTK/Interp.py | 153 - InterfaceTK/TroisDPal.py | 48 - InterfaceTK/__init__.py | 20 - InterfaceTK/appli.py | 461 - InterfaceTK/basestyle.py | 27 - InterfaceTK/browser.py | 65 - InterfaceTK/bureau.py | 830 - InterfaceTK/catabrowser.py | 398 - InterfaceTK/cataediteur.py | 975 - InterfaceTK/centerwindow.py | 53 - InterfaceTK/change_comm.py | 169 - InterfaceTK/compobase.py | 3 - InterfaceTK/compobloc.py | 42 - InterfaceTK/compocomm.py | 170 - InterfaceTK/compocommandecomm.py | 182 - InterfaceTK/compoerror.py | 45 - InterfaceTK/compofact.py | 150 - InterfaceTK/compoformule.py | 410 - InterfaceTK/compojdc.py | 168 - InterfaceTK/compomacro.py | 311 - InterfaceTK/compomclist.py | 225 - InterfaceTK/componiveau.py | 133 - InterfaceTK/componuplet.py | 175 - InterfaceTK/compooper.py | 332 - InterfaceTK/compoparam.py | 239 - InterfaceTK/compoparameval.py | 311 - InterfaceTK/compoproc.py | 57 - InterfaceTK/composimp.py | 651 - InterfaceTK/definition_cata.py | 462 - InterfaceTK/eficas.py | 146 - InterfaceTK/eficas_go.py | 65 - InterfaceTK/eficas_test.py | 105 - InterfaceTK/faq.py | 54 - InterfaceTK/fenetre_mc_inconnus.py | 223 - InterfaceTK/fonctionpanel.py | 292 - InterfaceTK/fontes.py | 36 - InterfaceTK/images.py | 69 - InterfaceTK/jdcdisplay.py | 285 - InterfaceTK/listeFichiers.py | 81 - InterfaceTK/listePatronsTK.py | 27 - InterfaceTK/macrodisplay.py | 165 - InterfaceTK/menubar.py | 48 - InterfaceTK/newsimppanel.py | 196 - InterfaceTK/options.py | 132 - InterfaceTK/panels.py | 593 - InterfaceTK/panelsSalome.py | 286 - InterfaceTK/patches.py | 39 - InterfaceTK/plusieursassdpanel.py | 182 - InterfaceTK/plusieursbasepanel.py | 541 - InterfaceTK/plusieursintopanel.py | 162 - InterfaceTK/plusieurspanel.py | 176 - InterfaceTK/readercata.py | 444 - InterfaceTK/shellpanel.py | 95 - InterfaceTK/splash.py | 150 - InterfaceTK/statusbar.py | 52 - InterfaceTK/styles.py | 23 - InterfaceTK/toolbar.py | 145 - InterfaceTK/tooltip.py | 127 - InterfaceTK/treeitemincanvas.py | 73 - InterfaceTK/treewidget.py | 948 - InterfaceTK/uniqueassdpanel.py | 218 - InterfaceTK/uniquebasepanel.py | 147 - InterfaceTK/uniquecomppanel.py | 170 - InterfaceTK/uniqueintopanel.py | 95 - InterfaceTK/uniquepanel.py | 92 - InterfaceTK/uniquesdcopanel.py | 245 - InterfaceTK/widgets.py | 1392 - Pmw/Alpha_99_9_example/__init__.py | 1 - Pmw/Alpha_99_9_example/lib/Pmw.def | 9 - Pmw/Alpha_99_9_example/lib/PmwAlphaExample.py | 24 - Pmw/Alpha_99_9_example/lib/__init__.py | 1 - Pmw/CMakeLists.txt | 32 - Pmw/Pmw_1_2/CMakeLists.txt | 41 - Pmw/Pmw_1_2/__init__.py | 1 - Pmw/Pmw_1_2/bin/bundlepmw.py | 169 - Pmw/Pmw_1_2/contrib/DirBrowser.py | 306 - Pmw/Pmw_1_2/contrib/MCListbox.py | 706 - Pmw/Pmw_1_2/contrib/PmwFileDialog.py | 498 - Pmw/Pmw_1_2/contrib/PmwFullTimeCounter.py | 492 - Pmw/Pmw_1_2/contrib/PmwVerticalGauge.py | 253 - Pmw/Pmw_1_2/contrib/README | 10 - Pmw/Pmw_1_2/contrib/TreeBrowser.py | 732 - Pmw/Pmw_1_2/demos/AboutDialog.py | 43 - Pmw/Pmw_1_2/demos/All.py | 310 - Pmw/Pmw_1_2/demos/Args.py | 191 - Pmw/Pmw_1_2/demos/Balloon.py | 185 - Pmw/Pmw_1_2/demos/BltGraph.py | 241 - Pmw/Pmw_1_2/demos/BltTabset.py | 101 - Pmw/Pmw_1_2/demos/ButtonBox.py | 56 - Pmw/Pmw_1_2/demos/Colors.py | 50 - Pmw/Pmw_1_2/demos/ComboBox.py | 76 - Pmw/Pmw_1_2/demos/ComboBoxDialog.py | 44 - Pmw/Pmw_1_2/demos/ConfigClass.py | 76 - Pmw/Pmw_1_2/demos/Counter.py | 121 - Pmw/Pmw_1_2/demos/CounterDialog.py | 60 - Pmw/Pmw_1_2/demos/DemoVersion.py | 36 - Pmw/Pmw_1_2/demos/Dialog.py | 89 - Pmw/Pmw_1_2/demos/EntryField.py | 98 - Pmw/Pmw_1_2/demos/ErrorHandling.py | 42 - Pmw/Pmw_1_2/demos/ExampleDemo.py | 33 - Pmw/Pmw_1_2/demos/Grid.py | 44 - Pmw/Pmw_1_2/demos/Group.py | 93 - Pmw/Pmw_1_2/demos/HistoryText.py | 102 - Pmw/Pmw_1_2/demos/LabeledWidget.py | 46 - Pmw/Pmw_1_2/demos/LogicalFont.py | 84 - Pmw/Pmw_1_2/demos/MainMenuBar.py | 176 - Pmw/Pmw_1_2/demos/MenuBar.py | 166 - Pmw/Pmw_1_2/demos/MessageBar.py | 85 - Pmw/Pmw_1_2/demos/MessageDialog.py | 102 - Pmw/Pmw_1_2/demos/MessageInfo.py | 108 - Pmw/Pmw_1_2/demos/MultiLineLabel.py | 73 - Pmw/Pmw_1_2/demos/NestedDialogs.py | 71 - Pmw/Pmw_1_2/demos/NoteBook.py | 52 - Pmw/Pmw_1_2/demos/NoteBook_2.py | 224 - Pmw/Pmw_1_2/demos/NoteBook_3.py | 26 - Pmw/Pmw_1_2/demos/OptionMenu.py | 66 - Pmw/Pmw_1_2/demos/PanedWidget.py | 103 - Pmw/Pmw_1_2/demos/PanedWidget_2.py | 65 - Pmw/Pmw_1_2/demos/PromptDialog.py | 62 - Pmw/Pmw_1_2/demos/RadioSelect.py | 116 - Pmw/Pmw_1_2/demos/Resources.py | 74 - Pmw/Pmw_1_2/demos/Resources_Pmw.py | 110 - Pmw/Pmw_1_2/demos/ScrolledCanvas.py | 124 - Pmw/Pmw_1_2/demos/ScrolledField.py | 51 - Pmw/Pmw_1_2/demos/ScrolledFrame.py | 157 - Pmw/Pmw_1_2/demos/ScrolledListBox.py | 118 - Pmw/Pmw_1_2/demos/ScrolledText.py | 99 - Pmw/Pmw_1_2/demos/ScrolledText_2.py | 99 - Pmw/Pmw_1_2/demos/SelectionDialog.py | 47 - Pmw/Pmw_1_2/demos/ShowBusy.py | 48 - Pmw/Pmw_1_2/demos/SpecialCounter.py | 68 - Pmw/Pmw_1_2/demos/SpecialEntry.py | 170 - Pmw/Pmw_1_2/demos/Spectrum.py | 166 - Pmw/Pmw_1_2/demos/SpeedTest.py | 60 - Pmw/Pmw_1_2/demos/SubClassing.py | 128 - Pmw/Pmw_1_2/demos/TextDialog.py | 75 - Pmw/Pmw_1_2/demos/TextDisplay.py | 78 - Pmw/Pmw_1_2/demos/TimeCounter.py | 40 - Pmw/Pmw_1_2/demos/WidgetDestroy.py | 36 - Pmw/Pmw_1_2/doc/AboutDialog.gif | Bin 4081 -> 0 bytes Pmw/Pmw_1_2/doc/AboutDialog.html | 286 - Pmw/Pmw_1_2/doc/Balloon.gif | Bin 4660 -> 0 bytes Pmw/Pmw_1_2/doc/Balloon.html | 429 - Pmw/Pmw_1_2/doc/Blt.html | 135 - Pmw/Pmw_1_2/doc/ButtonBox.gif | Bin 964 -> 0 bytes Pmw/Pmw_1_2/doc/ButtonBox.html | 306 - Pmw/Pmw_1_2/doc/Color.html | 326 - Pmw/Pmw_1_2/doc/ComboBox.gif | Bin 4556 -> 0 bytes Pmw/Pmw_1_2/doc/ComboBox.html | 363 - Pmw/Pmw_1_2/doc/ComboBoxDialog.gif | Bin 3484 -> 0 bytes Pmw/Pmw_1_2/doc/ComboBoxDialog.html | 286 - Pmw/Pmw_1_2/doc/Counter.gif | Bin 2212 -> 0 bytes Pmw/Pmw_1_2/doc/Counter.html | 455 - Pmw/Pmw_1_2/doc/CounterDialog.gif | Bin 2769 -> 0 bytes Pmw/Pmw_1_2/doc/CounterDialog.html | 299 - Pmw/Pmw_1_2/doc/Dialog.gif | Bin 2855 -> 0 bytes Pmw/Pmw_1_2/doc/Dialog.html | 286 - Pmw/Pmw_1_2/doc/EntryField.gif | Bin 2228 -> 0 bytes Pmw/Pmw_1_2/doc/EntryField.html | 545 - Pmw/Pmw_1_2/doc/ExampleDemo.py | 33 - Pmw/Pmw_1_2/doc/Group.gif | Bin 2155 -> 0 bytes Pmw/Pmw_1_2/doc/Group.html | 226 - Pmw/Pmw_1_2/doc/HistoryText.gif | Bin 2298 -> 0 bytes Pmw/Pmw_1_2/doc/HistoryText.html | 427 - Pmw/Pmw_1_2/doc/LabeledWidget.gif | Bin 887 -> 0 bytes Pmw/Pmw_1_2/doc/LabeledWidget.html | 170 - Pmw/Pmw_1_2/doc/MainMenuBar.gif | Bin 518 -> 0 bytes Pmw/Pmw_1_2/doc/MainMenuBar.html | 421 - Pmw/Pmw_1_2/doc/MegaArchetype.html | 459 - Pmw/Pmw_1_2/doc/MegaToplevel.html | 267 - Pmw/Pmw_1_2/doc/MegaWidget.html | 83 - Pmw/Pmw_1_2/doc/MenuBar.gif | Bin 518 -> 0 bytes Pmw/Pmw_1_2/doc/MenuBar.html | 399 - Pmw/Pmw_1_2/doc/MessageBar.gif | Bin 435 -> 0 bytes Pmw/Pmw_1_2/doc/MessageBar.html | 302 - Pmw/Pmw_1_2/doc/MessageDialog.gif | Bin 3374 -> 0 bytes Pmw/Pmw_1_2/doc/MessageDialog.html | 326 - Pmw/Pmw_1_2/doc/NoteBook.gif | Bin 2585 -> 0 bytes Pmw/Pmw_1_2/doc/NoteBook.html | 344 - Pmw/Pmw_1_2/doc/OptionMenu.gif | Bin 2354 -> 0 bytes Pmw/Pmw_1_2/doc/OptionMenu.html | 289 - Pmw/Pmw_1_2/doc/PanedWidget.gif | Bin 1917 -> 0 bytes Pmw/Pmw_1_2/doc/PanedWidget.html | 345 - Pmw/Pmw_1_2/doc/PmwFunctions.html | 766 - Pmw/Pmw_1_2/doc/PromptDialog.gif | Bin 1959 -> 0 bytes Pmw/Pmw_1_2/doc/PromptDialog.html | 293 - Pmw/Pmw_1_2/doc/RadioSelect.gif | Bin 4476 -> 0 bytes Pmw/Pmw_1_2/doc/RadioSelect.html | 405 - Pmw/Pmw_1_2/doc/ScrolledCanvas.gif | Bin 2931 -> 0 bytes Pmw/Pmw_1_2/doc/ScrolledCanvas.html | 352 - Pmw/Pmw_1_2/doc/ScrolledField.gif | Bin 615 -> 0 bytes Pmw/Pmw_1_2/doc/ScrolledField.html | 187 - Pmw/Pmw_1_2/doc/ScrolledFrame.gif | Bin 3926 -> 0 bytes Pmw/Pmw_1_2/doc/ScrolledFrame.html | 479 - Pmw/Pmw_1_2/doc/ScrolledListBox.gif | Bin 1855 -> 0 bytes Pmw/Pmw_1_2/doc/ScrolledListBox.html | 379 - Pmw/Pmw_1_2/doc/ScrolledText.gif | Bin 12007 -> 0 bytes Pmw/Pmw_1_2/doc/ScrolledText.html | 409 - Pmw/Pmw_1_2/doc/ScrolledText_test.py | 116 - Pmw/Pmw_1_2/doc/SelectionDialog.gif | Bin 3204 -> 0 bytes Pmw/Pmw_1_2/doc/SelectionDialog.html | 281 - Pmw/Pmw_1_2/doc/TextDialog.gif | Bin 4953 -> 0 bytes Pmw/Pmw_1_2/doc/TextDialog.html | 301 - Pmw/Pmw_1_2/doc/TimeCounter.gif | Bin 1077 -> 0 bytes Pmw/Pmw_1_2/doc/TimeCounter.html | 363 - Pmw/Pmw_1_2/doc/blue_line.gif | Bin 981 -> 0 bytes Pmw/Pmw_1_2/doc/blueball.gif | Bin 318 -> 0 bytes Pmw/Pmw_1_2/doc/bugs.html | 378 - Pmw/Pmw_1_2/doc/changes.html | 1741 -- Pmw/Pmw_1_2/doc/copyright.html | 57 - Pmw/Pmw_1_2/doc/counter1.gif | Bin 541 -> 0 bytes Pmw/Pmw_1_2/doc/counter2.gif | Bin 1333 -> 0 bytes Pmw/Pmw_1_2/doc/demosandtests.html | 364 - Pmw/Pmw_1_2/doc/dynamicloader.html | 147 - Pmw/Pmw_1_2/doc/example.py | 79 - Pmw/Pmw_1_2/doc/example1.gif | Bin 1546 -> 0 bytes Pmw/Pmw_1_2/doc/example2.gif | Bin 1556 -> 0 bytes Pmw/Pmw_1_2/doc/exercises.py | 123 - Pmw/Pmw_1_2/doc/features.html | 87 - Pmw/Pmw_1_2/doc/halfblueball.gif | Bin 299 -> 0 bytes Pmw/Pmw_1_2/doc/howtobuild.html | 465 - Pmw/Pmw_1_2/doc/howtouse.html | 719 - Pmw/Pmw_1_2/doc/index.html | 131 - Pmw/Pmw_1_2/doc/porting.html | 325 - Pmw/Pmw_1_2/doc/refindex.html | 79 - Pmw/Pmw_1_2/doc/scale1.gif | Bin 1016 -> 0 bytes Pmw/Pmw_1_2/doc/scale2.gif | Bin 1943 -> 0 bytes Pmw/Pmw_1_2/doc/starting.html | 382 - Pmw/Pmw_1_2/doc/todo.html | 1111 - Pmw/Pmw_1_2/doc/transdove.gif | Bin 438 -> 0 bytes Pmw/Pmw_1_2/lib/Pmw.def | 58 - Pmw/Pmw_1_2/lib/PmwAboutDialog.py | 52 - Pmw/Pmw_1_2/lib/PmwBalloon.py | 365 - Pmw/Pmw_1_2/lib/PmwBase.py | 1933 -- Pmw/Pmw_1_2/lib/PmwBlt.py | 643 - Pmw/Pmw_1_2/lib/PmwButtonBox.py | 224 - Pmw/Pmw_1_2/lib/PmwColor.py | 361 - Pmw/Pmw_1_2/lib/PmwComboBox.py | 382 - Pmw/Pmw_1_2/lib/PmwComboBoxDialog.py | 60 - Pmw/Pmw_1_2/lib/PmwCounter.py | 373 - Pmw/Pmw_1_2/lib/PmwCounterDialog.py | 54 - Pmw/Pmw_1_2/lib/PmwDialog.py | 184 - Pmw/Pmw_1_2/lib/PmwEntryField.py | 458 - Pmw/Pmw_1_2/lib/PmwGroup.py | 113 - Pmw/Pmw_1_2/lib/PmwHistoryText.py | 145 - Pmw/Pmw_1_2/lib/PmwLabeledWidget.py | 34 - Pmw/Pmw_1_2/lib/PmwLoader.py | 174 - Pmw/Pmw_1_2/lib/PmwLogicalFont.py | 191 - Pmw/Pmw_1_2/lib/PmwMainMenuBar.py | 225 - Pmw/Pmw_1_2/lib/PmwMenuBar.py | 243 - Pmw/Pmw_1_2/lib/PmwMessageBar.py | 143 - Pmw/Pmw_1_2/lib/PmwMessageDialog.py | 73 - Pmw/Pmw_1_2/lib/PmwNoteBook.py | 617 - Pmw/Pmw_1_2/lib/PmwOptionMenu.py | 146 - Pmw/Pmw_1_2/lib/PmwPanedWidget.py | 627 - Pmw/Pmw_1_2/lib/PmwPromptDialog.py | 51 - Pmw/Pmw_1_2/lib/PmwRadioSelect.py | 234 - Pmw/Pmw_1_2/lib/PmwScrolledCanvas.py | 289 - Pmw/Pmw_1_2/lib/PmwScrolledField.py | 53 - Pmw/Pmw_1_2/lib/PmwScrolledFrame.py | 395 - Pmw/Pmw_1_2/lib/PmwScrolledListBox.py | 376 - Pmw/Pmw_1_2/lib/PmwScrolledText.py | 443 - Pmw/Pmw_1_2/lib/PmwSelectionDialog.py | 55 - Pmw/Pmw_1_2/lib/PmwTextDialog.py | 38 - Pmw/Pmw_1_2/lib/PmwTimeCounter.py | 381 - Pmw/Pmw_1_2/lib/PmwTimeFuncs.py | 146 - Pmw/Pmw_1_2/lib/__init__.py | 1 - Pmw/Pmw_1_2/tests/AboutDialog_test.py | 59 - Pmw/Pmw_1_2/tests/All.py | 35 - Pmw/Pmw_1_2/tests/Blt_test.py | 356 - Pmw/Pmw_1_2/tests/ButtonBox_test.py | 71 - Pmw/Pmw_1_2/tests/Colors_test.py | 46 - Pmw/Pmw_1_2/tests/ComboBox_test.py | 184 - Pmw/Pmw_1_2/tests/CounterDialog_test.py | 98 - Pmw/Pmw_1_2/tests/Counter_test.py | 188 - Pmw/Pmw_1_2/tests/Dialog_test.py | 122 - Pmw/Pmw_1_2/tests/EntryField_test.py | 109 - Pmw/Pmw_1_2/tests/LabeledWidget_test.py | 49 - Pmw/Pmw_1_2/tests/ManualTests.py | 488 - Pmw/Pmw_1_2/tests/MegaWidget_test.py | 129 - Pmw/Pmw_1_2/tests/MessageDialog_test.py | 58 - Pmw/Pmw_1_2/tests/NoteBook_test.py | 173 - Pmw/Pmw_1_2/tests/OptionMenu_test.py | 53 - Pmw/Pmw_1_2/tests/Options_test.py | 304 - Pmw/Pmw_1_2/tests/PanedWidget_test.py | 39 - Pmw/Pmw_1_2/tests/PmwBase_test.py | 181 - Pmw/Pmw_1_2/tests/PromptDialog_test.py | 81 - Pmw/Pmw_1_2/tests/RadioSelect_test.py | 112 - Pmw/Pmw_1_2/tests/ScrolledCanvas_test.py | 105 - Pmw/Pmw_1_2/tests/ScrolledField_test.py | 32 - Pmw/Pmw_1_2/tests/ScrolledFrame_test.py | 98 - Pmw/Pmw_1_2/tests/ScrolledListBox_test.py | 151 - Pmw/Pmw_1_2/tests/ScrolledText_test.py | 116 - Pmw/Pmw_1_2/tests/SelectionDialog_test.py | 69 - Pmw/Pmw_1_2/tests/Test.py | 521 - Pmw/Pmw_1_2/tests/TestVersion.py | 19 - Pmw/Pmw_1_2/tests/TextDialog_test.py | 53 - Pmw/Pmw_1_2/tests/Tkinter_test.py | 393 - Pmw/Pmw_1_2/tests/earthris.gif | Bin 6343 -> 0 bytes Pmw/Pmw_1_2/tests/flagup.bmp | 27 - Pmw/README | 10 - Pmw/__init__.py | 40 - Ui/OptionsEditeur.ui | 369 - Ui/OptionsPdf.ui | 116 - Ui/aideQT.ui | 131 - Ui/desChoixCata.ui | 163 - Ui/desCommande.ui | 572 - Ui/desCommentaire.ui | 453 - Ui/desError.ui | 121 - Ui/desFormule.ui | 657 - Ui/desInactif.ui | 143 - Ui/desInclude.ui | 637 - Ui/desListeParam.ui | 44 - Ui/desMCFact.ui | 261 - Ui/desMCListAjout.ui | 305 - Ui/desMacro.ui | 483 - Ui/desParam.ui | 516 - Ui/desPlusieursBase.ui | 556 - Ui/desPlusieursInto.ui | 407 - Ui/desPoursuite.ui | 504 - Ui/desRacine.ui | 260 - Ui/desSelectVal.ui | 144 - Ui/desUniqueASSD.ui | 190 - Ui/desUniqueBase.ui | 336 - Ui/desUniqueComp.ui | 303 - Ui/desUniqueInto.ui | 183 - Ui/desUniqueSDCO.ui | 203 - Ui/desUniqueSDCOInto.ui | 269 - Ui/desVisu.ui | 30 - Ui/image120.gif | Bin 201 -> 0 bytes Ui/image120.png | Bin 260 -> 0 bytes Ui/image240.gif | Bin 286 -> 0 bytes Ui/makefile | 15 - Ui/myMain.ui | 710 - 666 files changed, 310450 deletions(-) delete mode 100644 Aster/Cata/cataSTA5/__init__.py delete mode 100644 Aster/Cata/cataSTA5/cata.py delete mode 100644 Aster/Cata/cataSTA5/ops.py delete mode 100644 Aster/Cata/cataSTA6/Macro/__init__.py delete mode 100644 Aster/Cata/cataSTA6/Macro/ajout_quad_gmsh.py delete mode 100644 Aster/Cata/cataSTA6/Macro/macr_lign_coupe_ops.py delete mode 100644 Aster/Cata/cataSTA6/Macro/macr_recal_ops.py delete mode 100644 Aster/Cata/cataSTA6/Macro/macro_cara_poutre_ops.py delete mode 100644 Aster/Cata/cataSTA6/Macro/macro_elas_mult_ops.py delete mode 100644 Aster/Cata/cataSTA6/Macro/macro_matr_asse_ops.py delete mode 100644 Aster/Cata/cataSTA6/Macro/macro_miss_3d_ops.py delete mode 100644 Aster/Cata/cataSTA6/Macro/macro_mode_meca_ops.py delete mode 100644 Aster/Cata/cataSTA6/Macro/macro_proj_base_ops.py delete mode 100644 Aster/Cata/cataSTA6/Macro/pre_gmsh_ops.py delete mode 100644 Aster/Cata/cataSTA6/Macro/reca_algo.py delete mode 100644 Aster/Cata/cataSTA6/Macro/reca_interp.py delete mode 100644 Aster/Cata/cataSTA6/Macro/reca_message.py delete mode 100644 Aster/Cata/cataSTA6/Macro/recal.py delete mode 100644 Aster/Cata/cataSTA6/__init__.py delete mode 100755 Aster/Cata/cataSTA6/cata.py delete mode 100644 Aster/Cata/cataSTA6/macro_cara_poutre_ops.py delete mode 100644 Aster/Cata/cataSTA6/ops.py delete mode 100644 Aster/Cata/cataSTA6/pre_gmsh_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/__init__.py delete mode 100644 Aster/Cata/cataSTA7/Macro/ajout_quad_gmsh.py delete mode 100644 Aster/Cata/cataSTA7/Macro/calc_precont_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/defi_cable_bp_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/defi_part_feti_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/fiabilite_fichier.py delete mode 100644 Aster/Cata/cataSTA7/Macro/fiabilite_mefisto.py delete mode 100644 Aster/Cata/cataSTA7/Macro/impr_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/impr_table_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/lire_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/lire_inte_spec_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/lire_table_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_adap_mail_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_ascouf_calc_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_ascouf_mail_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_aspic_calc_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_aspic_mail_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_cabri_calc_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_cabri_mail_dat.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_cabri_mail_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_cara_poutre_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_ecla_pg_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_fiab_impr_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_fiabilite_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_lign_coupe_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macr_recal_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macro_elas_mult_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macro_matr_ajou_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macro_matr_asse_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macro_miss_3d_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macro_mode_meca_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/macro_proj_base_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/reca_algo.py delete mode 100644 Aster/Cata/cataSTA7/Macro/reca_interp.py delete mode 100644 Aster/Cata/cataSTA7/Macro/reca_message.py delete mode 100644 Aster/Cata/cataSTA7/Macro/recal.py delete mode 100644 Aster/Cata/cataSTA7/Macro/stanley_ops.py delete mode 100644 Aster/Cata/cataSTA7/Macro/test_fichier_ops.py delete mode 100644 Aster/Cata/cataSTA7/__init__.py delete mode 100644 Aster/Cata/cataSTA7/cata.py delete mode 100755 Aster/Cata/cataSTA7/materiau/18MND5_REF_A.NOMI delete mode 100644 Aster/Cata/cataSTA7/materiau/README.PY delete mode 100755 Aster/Cata/cataSTA7/materiau/Z12CN13_REF_A.NOMI delete mode 100755 Aster/Cata/cataSTA7/materiau/Z2CN1810_REF_A.NOMI delete mode 100755 Aster/Cata/cataSTA7/materiau/Z2CND1712_REF_A.NOMI delete mode 100755 Aster/Cata/cataSTA7/materiau/Z6CND1712_REF_A.NOMI delete mode 100644 Aster/Cata/cataSTA7/ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/__init__.py delete mode 100644 Aster/Cata/cataSTA73/Macro/ajout_quad_gmsh.py delete mode 100644 Aster/Cata/cataSTA73/Macro/calc_precont_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/defi_cable_bp_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/defi_part_feti_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/fiabilite_fichier.py delete mode 100644 Aster/Cata/cataSTA73/Macro/fiabilite_mefisto.py delete mode 100644 Aster/Cata/cataSTA73/Macro/impr_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/impr_table_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/lire_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/lire_inte_spec_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/lire_table_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_adap_mail_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_ascouf_calc_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_ascouf_mail_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_aspic_calc_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_aspic_mail_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_cabri_calc_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_cabri_mail_dat.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_cabri_mail_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_cara_poutre_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_ecla_pg_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_fiab_impr_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_fiabilite_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_lign_coupe_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macr_recal_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macro_cara_poutre_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macro_elas_mult_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macro_matr_ajou_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macro_matr_asse_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macro_miss_3d_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macro_mode_meca_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/macro_proj_base_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/pre_gmsh_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/reca_algo.py delete mode 100644 Aster/Cata/cataSTA73/Macro/reca_interp.py delete mode 100644 Aster/Cata/cataSTA73/Macro/reca_message.py delete mode 100644 Aster/Cata/cataSTA73/Macro/recal.py delete mode 100644 Aster/Cata/cataSTA73/Macro/stanley_ops.py delete mode 100644 Aster/Cata/cataSTA73/Macro/test_fichier_ops.py delete mode 100644 Aster/Cata/cataSTA73/__init__.py delete mode 100644 Aster/Cata/cataSTA73/cata.py delete mode 100644 Aster/Cata/cataSTA74/Macro/__init__.py delete mode 100644 Aster/Cata/cataSTA74/Macro/ajout_quad_gmsh.py delete mode 100644 Aster/Cata/cataSTA74/Macro/calc_precont_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/defi_cable_bp_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/defi_part_feti_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/fiabilite_fichier.py delete mode 100644 Aster/Cata/cataSTA74/Macro/fiabilite_mefisto.py delete mode 100644 Aster/Cata/cataSTA74/Macro/impr_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/impr_table_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/lire_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/lire_inte_spec_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/lire_table_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_adap_mail_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_ascouf_calc_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_ascouf_mail_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_aspic_calc_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_aspic_mail_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_cabri_calc_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_cabri_mail_dat.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_cabri_mail_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_cara_poutre_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_ecla_pg_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_fiab_impr_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_fiabilite_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_lign_coupe_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macr_recal_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macro_cara_poutre_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macro_elas_mult_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macro_matr_ajou_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macro_matr_asse_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macro_miss_3d_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macro_mode_meca_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/macro_proj_base_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/pre_gmsh_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/reca_algo.py delete mode 100644 Aster/Cata/cataSTA74/Macro/reca_interp.py delete mode 100644 Aster/Cata/cataSTA74/Macro/reca_message.py delete mode 100644 Aster/Cata/cataSTA74/Macro/recal.py delete mode 100644 Aster/Cata/cataSTA74/Macro/stanley_ops.py delete mode 100644 Aster/Cata/cataSTA74/Macro/test_fichier_ops.py delete mode 100644 Aster/Cata/cataSTA74/__init__.py delete mode 100755 Aster/Cata/cataSTA74/cata.py delete mode 100644 Aster/Cata/cataSTA74/ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/__init__.py delete mode 100644 Aster/Cata/cataSTA76/Macro/ajout_quad_gmsh.py delete mode 100644 Aster/Cata/cataSTA76/Macro/calc_precont_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/defi_cable_bp_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/defi_part_feti_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/fiabilite_fichier.py delete mode 100644 Aster/Cata/cataSTA76/Macro/fiabilite_mefisto.py delete mode 100644 Aster/Cata/cataSTA76/Macro/impr_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/impr_table_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/lire_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/lire_inte_spec_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/lire_table_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_adap_mail_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_ascouf_calc_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_ascouf_mail_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_aspic_calc_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_aspic_mail_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_cabri_calc_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_cabri_mail_dat.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_cabri_mail_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_cara_poutre_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_ecla_pg_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_fiab_impr_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_fiabilite_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_lign_coupe_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macr_recal_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macro_elas_mult_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macro_matr_ajou_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macro_matr_asse_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macro_miss_3d_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macro_mode_meca_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/macro_proj_base_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/reca_algo.py delete mode 100644 Aster/Cata/cataSTA76/Macro/reca_interp.py delete mode 100644 Aster/Cata/cataSTA76/Macro/reca_message.py delete mode 100644 Aster/Cata/cataSTA76/Macro/recal.py delete mode 100644 Aster/Cata/cataSTA76/Macro/stanley_ops.py delete mode 100644 Aster/Cata/cataSTA76/Macro/test_fichier_ops.py delete mode 100644 Aster/Cata/cataSTA76/__init__.py delete mode 100644 Aster/Cata/cataSTA76/cata.py delete mode 100644 Aster/Cata/cataSTA76/ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/__init__.py delete mode 100644 Aster/Cata/cataSTA8/Macro/ajout_quad_gmsh.py delete mode 100644 Aster/Cata/cataSTA8/Macro/calc_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/calc_precont_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/calc_table_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/creation_donnees_homard.py delete mode 100644 Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/defi_inte_spec_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/defi_part_feti_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/exec_logiciel_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/fiabilite_fichier.py delete mode 100644 Aster/Cata/cataSTA8/Macro/fiabilite_mefisto.py delete mode 100644 Aster/Cata/cataSTA8/Macro/gene_vari_alea_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/impr_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/impr_oar_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/impr_table_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/info_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/lire_fonction_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/lire_inte_spec_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/lire_table_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_ascouf_calc_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_ascouf_mail_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_aspic_calc_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_aspic_mail_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_cabri_calc_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_cabri_mail_dat.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_cabri_mail_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_cara_poutre_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_ecla_pg_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_fiab_impr_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_fiabilite_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_recal_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macr_spectre_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macro_elas_mult_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macro_matr_ajou_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macro_matr_asse_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macro_miss_3d_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macro_mode_meca_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/macro_proj_base_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/post_dyna_alea_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/post_gp_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/post_k1_k2_k3_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/post_k_trans_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/reca_algo.py delete mode 100644 Aster/Cata/cataSTA8/Macro/reca_calcul_aster.py delete mode 100644 Aster/Cata/cataSTA8/Macro/reca_controles.py delete mode 100644 Aster/Cata/cataSTA8/Macro/reca_graphique.py delete mode 100644 Aster/Cata/cataSTA8/Macro/reca_interp.py delete mode 100644 Aster/Cata/cataSTA8/Macro/reca_message.py delete mode 100644 Aster/Cata/cataSTA8/Macro/reca_utilitaires.py delete mode 100644 Aster/Cata/cataSTA8/Macro/recal.py delete mode 100644 Aster/Cata/cataSTA8/Macro/simu_point_mat_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/stanley_ops.py delete mode 100644 Aster/Cata/cataSTA8/Macro/test_fichier_ops.py delete mode 100644 Aster/Cata/cataSTA8/__init__.py delete mode 100755 Aster/Cata/cataSTA8/cata.py delete mode 100755 Aster/Cata/cataSTA8/materiau/18MND5_REF_A.NOMI delete mode 100644 Aster/Cata/cataSTA8/materiau/README.PY delete mode 100755 Aster/Cata/cataSTA8/materiau/Z12CN13_REF_A.NOMI delete mode 100755 Aster/Cata/cataSTA8/materiau/Z2CN1810_REF_A.NOMI delete mode 100755 Aster/Cata/cataSTA8/materiau/Z2CND1712_REF_A.NOMI delete mode 100755 Aster/Cata/cataSTA8/materiau/Z6CND1712_REF_A.NOMI delete mode 100644 Aster/Cata/cataSTA8/ops.py delete mode 100644 Aster/Cata/pre74/FORM.py delete mode 100644 Aster/Cata/pre74/__init__.py delete mode 100644 Aster/Cata/pre74/compocomm.py delete mode 100644 Aster/Cata/pre74/compoformule.py delete mode 100644 Aster/Cata/pre74/compomacro.py delete mode 100644 Aster/Cata/pre74/compooper.py delete mode 100644 Aster/Cata/pre74/compoparam.py delete mode 100644 Aster/Cata/pre74/compoproc.py delete mode 100644 Aster/Cata/pre74/ongletpanel.py delete mode 100755 Installation/Doc_technique_install.doc delete mode 100755 Installation/README delete mode 100755 Installation/README_install delete mode 100755 Installation/install.py delete mode 100644 InterfaceQT/__init__.py delete mode 100644 InterfaceQT/browser.py delete mode 100644 InterfaceQT/compobase.py delete mode 100644 InterfaceQT/compobloc.py delete mode 100644 InterfaceQT/compocomm.py delete mode 100644 InterfaceQT/compocommandecomm.py delete mode 100644 InterfaceQT/compoerror.py delete mode 100644 InterfaceQT/compofact.py delete mode 100644 InterfaceQT/compoformule.py delete mode 100644 InterfaceQT/compojdc.py delete mode 100644 InterfaceQT/compomacro.py delete mode 100644 InterfaceQT/compomclist.py delete mode 100644 InterfaceQT/componiveau.py delete mode 100644 InterfaceQT/componuplet.py delete mode 100644 InterfaceQT/compooper.py delete mode 100644 InterfaceQT/compoparam.py delete mode 100644 InterfaceQT/compoparameval.py delete mode 100644 InterfaceQT/compoproc.py delete mode 100644 InterfaceQT/composimp.py delete mode 100644 InterfaceQT/editor.py delete mode 100644 InterfaceQT/eficas_go.py delete mode 100644 InterfaceQT/gereTraduction.py delete mode 100644 InterfaceQT/monChoixCata.py delete mode 100644 InterfaceQT/monCommandePanel.py delete mode 100644 InterfaceQT/monCommentairePanel.py delete mode 100644 InterfaceQT/monFonctionPanel.py delete mode 100644 InterfaceQT/monFormulePanel.py delete mode 100644 InterfaceQT/monIncludePanel.py delete mode 100644 InterfaceQT/monListeParamPanel.py delete mode 100644 InterfaceQT/monMCFactPanel.py delete mode 100644 InterfaceQT/monMCListAjoutPanel.py delete mode 100644 InterfaceQT/monMacroPanel.py delete mode 100644 InterfaceQT/monOptionsEditeur.py delete mode 100644 InterfaceQT/monOptionsPdf.py delete mode 100644 InterfaceQT/monParamPanel.py delete mode 100644 InterfaceQT/monPlusieursASSDPanel.py delete mode 100644 InterfaceQT/monPlusieursBasePanel.py delete mode 100644 InterfaceQT/monPlusieursIntoPanel.py delete mode 100644 InterfaceQT/monPoursuitePanel.py delete mode 100644 InterfaceQT/monRacinePanel.py delete mode 100644 InterfaceQT/monSelectVal.py delete mode 100644 InterfaceQT/monUniqueASSDPanel.py delete mode 100644 InterfaceQT/monUniqueBasePanel.py delete mode 100644 InterfaceQT/monUniqueCompPanel.py delete mode 100644 InterfaceQT/monUniqueIntoPanel.py delete mode 100644 InterfaceQT/monUniqueSDCOIntoPanel.py delete mode 100644 InterfaceQT/monUniqueSDCOPanel.py delete mode 100644 InterfaceQT/panelsQT.py delete mode 100644 InterfaceQT/politiquesValidation.py delete mode 100644 InterfaceQT/prefsQT.py delete mode 100644 InterfaceQT/qtCommun.py delete mode 100644 InterfaceQT/qtEficas.py delete mode 100644 InterfaceQT/qtSaisie.py delete mode 100644 InterfaceQT/readercata.py delete mode 100644 InterfaceQT/typeNode.py delete mode 100644 InterfaceQT/utilIcons.py delete mode 100644 InterfaceQT/viewManager.py delete mode 100644 InterfaceTK/CMakeLists.txt delete mode 100644 InterfaceTK/Interp.py delete mode 100644 InterfaceTK/TroisDPal.py delete mode 100644 InterfaceTK/__init__.py delete mode 100644 InterfaceTK/appli.py delete mode 100644 InterfaceTK/basestyle.py delete mode 100644 InterfaceTK/browser.py delete mode 100644 InterfaceTK/bureau.py delete mode 100644 InterfaceTK/catabrowser.py delete mode 100644 InterfaceTK/cataediteur.py delete mode 100644 InterfaceTK/centerwindow.py delete mode 100755 InterfaceTK/change_comm.py delete mode 100644 InterfaceTK/compobase.py delete mode 100644 InterfaceTK/compobloc.py delete mode 100644 InterfaceTK/compocomm.py delete mode 100644 InterfaceTK/compocommandecomm.py delete mode 100644 InterfaceTK/compoerror.py delete mode 100644 InterfaceTK/compofact.py delete mode 100644 InterfaceTK/compoformule.py delete mode 100644 InterfaceTK/compojdc.py delete mode 100644 InterfaceTK/compomacro.py delete mode 100644 InterfaceTK/compomclist.py delete mode 100644 InterfaceTK/componiveau.py delete mode 100644 InterfaceTK/componuplet.py delete mode 100644 InterfaceTK/compooper.py delete mode 100644 InterfaceTK/compoparam.py delete mode 100644 InterfaceTK/compoparameval.py delete mode 100644 InterfaceTK/compoproc.py delete mode 100644 InterfaceTK/composimp.py delete mode 100644 InterfaceTK/definition_cata.py delete mode 100644 InterfaceTK/eficas.py delete mode 100644 InterfaceTK/eficas_go.py delete mode 100644 InterfaceTK/eficas_test.py delete mode 100644 InterfaceTK/faq.py delete mode 100644 InterfaceTK/fenetre_mc_inconnus.py delete mode 100644 InterfaceTK/fonctionpanel.py delete mode 100644 InterfaceTK/fontes.py delete mode 100644 InterfaceTK/images.py delete mode 100644 InterfaceTK/jdcdisplay.py delete mode 100644 InterfaceTK/listeFichiers.py delete mode 100644 InterfaceTK/listePatronsTK.py delete mode 100644 InterfaceTK/macrodisplay.py delete mode 100644 InterfaceTK/menubar.py delete mode 100644 InterfaceTK/newsimppanel.py delete mode 100644 InterfaceTK/options.py delete mode 100644 InterfaceTK/panels.py delete mode 100644 InterfaceTK/panelsSalome.py delete mode 100644 InterfaceTK/patches.py delete mode 100644 InterfaceTK/plusieursassdpanel.py delete mode 100644 InterfaceTK/plusieursbasepanel.py delete mode 100644 InterfaceTK/plusieursintopanel.py delete mode 100644 InterfaceTK/plusieurspanel.py delete mode 100644 InterfaceTK/readercata.py delete mode 100644 InterfaceTK/shellpanel.py delete mode 100644 InterfaceTK/splash.py delete mode 100644 InterfaceTK/statusbar.py delete mode 100644 InterfaceTK/styles.py delete mode 100644 InterfaceTK/toolbar.py delete mode 100644 InterfaceTK/tooltip.py delete mode 100644 InterfaceTK/treeitemincanvas.py delete mode 100644 InterfaceTK/treewidget.py delete mode 100644 InterfaceTK/uniqueassdpanel.py delete mode 100644 InterfaceTK/uniquebasepanel.py delete mode 100644 InterfaceTK/uniquecomppanel.py delete mode 100644 InterfaceTK/uniqueintopanel.py delete mode 100644 InterfaceTK/uniquepanel.py delete mode 100644 InterfaceTK/uniquesdcopanel.py delete mode 100644 InterfaceTK/widgets.py delete mode 100644 Pmw/Alpha_99_9_example/__init__.py delete mode 100644 Pmw/Alpha_99_9_example/lib/Pmw.def delete mode 100644 Pmw/Alpha_99_9_example/lib/PmwAlphaExample.py delete mode 100644 Pmw/Alpha_99_9_example/lib/__init__.py delete mode 100644 Pmw/CMakeLists.txt delete mode 100644 Pmw/Pmw_1_2/CMakeLists.txt delete mode 100644 Pmw/Pmw_1_2/__init__.py delete mode 100755 Pmw/Pmw_1_2/bin/bundlepmw.py delete mode 100644 Pmw/Pmw_1_2/contrib/DirBrowser.py delete mode 100644 Pmw/Pmw_1_2/contrib/MCListbox.py delete mode 100644 Pmw/Pmw_1_2/contrib/PmwFileDialog.py delete mode 100644 Pmw/Pmw_1_2/contrib/PmwFullTimeCounter.py delete mode 100644 Pmw/Pmw_1_2/contrib/PmwVerticalGauge.py delete mode 100644 Pmw/Pmw_1_2/contrib/README delete mode 100644 Pmw/Pmw_1_2/contrib/TreeBrowser.py delete mode 100644 Pmw/Pmw_1_2/demos/AboutDialog.py delete mode 100755 Pmw/Pmw_1_2/demos/All.py delete mode 100644 Pmw/Pmw_1_2/demos/Args.py delete mode 100644 Pmw/Pmw_1_2/demos/Balloon.py delete mode 100644 Pmw/Pmw_1_2/demos/BltGraph.py delete mode 100644 Pmw/Pmw_1_2/demos/BltTabset.py delete mode 100644 Pmw/Pmw_1_2/demos/ButtonBox.py delete mode 100644 Pmw/Pmw_1_2/demos/Colors.py delete mode 100644 Pmw/Pmw_1_2/demos/ComboBox.py delete mode 100644 Pmw/Pmw_1_2/demos/ComboBoxDialog.py delete mode 100644 Pmw/Pmw_1_2/demos/ConfigClass.py delete mode 100644 Pmw/Pmw_1_2/demos/Counter.py delete mode 100644 Pmw/Pmw_1_2/demos/CounterDialog.py delete mode 100644 Pmw/Pmw_1_2/demos/DemoVersion.py delete mode 100644 Pmw/Pmw_1_2/demos/Dialog.py delete mode 100644 Pmw/Pmw_1_2/demos/EntryField.py delete mode 100644 Pmw/Pmw_1_2/demos/ErrorHandling.py delete mode 100644 Pmw/Pmw_1_2/demos/ExampleDemo.py delete mode 100644 Pmw/Pmw_1_2/demos/Grid.py delete mode 100644 Pmw/Pmw_1_2/demos/Group.py delete mode 100644 Pmw/Pmw_1_2/demos/HistoryText.py delete mode 100644 Pmw/Pmw_1_2/demos/LabeledWidget.py delete mode 100644 Pmw/Pmw_1_2/demos/LogicalFont.py delete mode 100644 Pmw/Pmw_1_2/demos/MainMenuBar.py delete mode 100644 Pmw/Pmw_1_2/demos/MenuBar.py delete mode 100644 Pmw/Pmw_1_2/demos/MessageBar.py delete mode 100644 Pmw/Pmw_1_2/demos/MessageDialog.py delete mode 100644 Pmw/Pmw_1_2/demos/MessageInfo.py delete mode 100644 Pmw/Pmw_1_2/demos/MultiLineLabel.py delete mode 100644 Pmw/Pmw_1_2/demos/NestedDialogs.py delete mode 100644 Pmw/Pmw_1_2/demos/NoteBook.py delete mode 100644 Pmw/Pmw_1_2/demos/NoteBook_2.py delete mode 100644 Pmw/Pmw_1_2/demos/NoteBook_3.py delete mode 100644 Pmw/Pmw_1_2/demos/OptionMenu.py delete mode 100644 Pmw/Pmw_1_2/demos/PanedWidget.py delete mode 100644 Pmw/Pmw_1_2/demos/PanedWidget_2.py delete mode 100644 Pmw/Pmw_1_2/demos/PromptDialog.py delete mode 100644 Pmw/Pmw_1_2/demos/RadioSelect.py delete mode 100644 Pmw/Pmw_1_2/demos/Resources.py delete mode 100644 Pmw/Pmw_1_2/demos/Resources_Pmw.py delete mode 100644 Pmw/Pmw_1_2/demos/ScrolledCanvas.py delete mode 100644 Pmw/Pmw_1_2/demos/ScrolledField.py delete mode 100644 Pmw/Pmw_1_2/demos/ScrolledFrame.py delete mode 100644 Pmw/Pmw_1_2/demos/ScrolledListBox.py delete mode 100644 Pmw/Pmw_1_2/demos/ScrolledText.py delete mode 100644 Pmw/Pmw_1_2/demos/ScrolledText_2.py delete mode 100644 Pmw/Pmw_1_2/demos/SelectionDialog.py delete mode 100644 Pmw/Pmw_1_2/demos/ShowBusy.py delete mode 100644 Pmw/Pmw_1_2/demos/SpecialCounter.py delete mode 100644 Pmw/Pmw_1_2/demos/SpecialEntry.py delete mode 100644 Pmw/Pmw_1_2/demos/Spectrum.py delete mode 100644 Pmw/Pmw_1_2/demos/SpeedTest.py delete mode 100644 Pmw/Pmw_1_2/demos/SubClassing.py delete mode 100644 Pmw/Pmw_1_2/demos/TextDialog.py delete mode 100644 Pmw/Pmw_1_2/demos/TextDisplay.py delete mode 100644 Pmw/Pmw_1_2/demos/TimeCounter.py delete mode 100644 Pmw/Pmw_1_2/demos/WidgetDestroy.py delete mode 100644 Pmw/Pmw_1_2/doc/AboutDialog.gif delete mode 100644 Pmw/Pmw_1_2/doc/AboutDialog.html delete mode 100644 Pmw/Pmw_1_2/doc/Balloon.gif delete mode 100644 Pmw/Pmw_1_2/doc/Balloon.html delete mode 100644 Pmw/Pmw_1_2/doc/Blt.html delete mode 100644 Pmw/Pmw_1_2/doc/ButtonBox.gif delete mode 100644 Pmw/Pmw_1_2/doc/ButtonBox.html delete mode 100644 Pmw/Pmw_1_2/doc/Color.html delete mode 100644 Pmw/Pmw_1_2/doc/ComboBox.gif delete mode 100644 Pmw/Pmw_1_2/doc/ComboBox.html delete mode 100644 Pmw/Pmw_1_2/doc/ComboBoxDialog.gif delete mode 100644 Pmw/Pmw_1_2/doc/ComboBoxDialog.html delete mode 100644 Pmw/Pmw_1_2/doc/Counter.gif delete mode 100644 Pmw/Pmw_1_2/doc/Counter.html delete mode 100644 Pmw/Pmw_1_2/doc/CounterDialog.gif delete mode 100644 Pmw/Pmw_1_2/doc/CounterDialog.html delete mode 100644 Pmw/Pmw_1_2/doc/Dialog.gif delete mode 100644 Pmw/Pmw_1_2/doc/Dialog.html delete mode 100644 Pmw/Pmw_1_2/doc/EntryField.gif delete mode 100644 Pmw/Pmw_1_2/doc/EntryField.html delete mode 100644 Pmw/Pmw_1_2/doc/ExampleDemo.py delete mode 100644 Pmw/Pmw_1_2/doc/Group.gif delete mode 100644 Pmw/Pmw_1_2/doc/Group.html delete mode 100644 Pmw/Pmw_1_2/doc/HistoryText.gif delete mode 100644 Pmw/Pmw_1_2/doc/HistoryText.html delete mode 100644 Pmw/Pmw_1_2/doc/LabeledWidget.gif delete mode 100644 Pmw/Pmw_1_2/doc/LabeledWidget.html delete mode 100644 Pmw/Pmw_1_2/doc/MainMenuBar.gif delete mode 100644 Pmw/Pmw_1_2/doc/MainMenuBar.html delete mode 100644 Pmw/Pmw_1_2/doc/MegaArchetype.html delete mode 100644 Pmw/Pmw_1_2/doc/MegaToplevel.html delete mode 100644 Pmw/Pmw_1_2/doc/MegaWidget.html delete mode 100644 Pmw/Pmw_1_2/doc/MenuBar.gif delete mode 100644 Pmw/Pmw_1_2/doc/MenuBar.html delete mode 100644 Pmw/Pmw_1_2/doc/MessageBar.gif delete mode 100644 Pmw/Pmw_1_2/doc/MessageBar.html delete mode 100644 Pmw/Pmw_1_2/doc/MessageDialog.gif delete mode 100644 Pmw/Pmw_1_2/doc/MessageDialog.html delete mode 100644 Pmw/Pmw_1_2/doc/NoteBook.gif delete mode 100644 Pmw/Pmw_1_2/doc/NoteBook.html delete mode 100644 Pmw/Pmw_1_2/doc/OptionMenu.gif delete mode 100644 Pmw/Pmw_1_2/doc/OptionMenu.html delete mode 100644 Pmw/Pmw_1_2/doc/PanedWidget.gif delete mode 100644 Pmw/Pmw_1_2/doc/PanedWidget.html delete mode 100644 Pmw/Pmw_1_2/doc/PmwFunctions.html delete mode 100644 Pmw/Pmw_1_2/doc/PromptDialog.gif delete mode 100644 Pmw/Pmw_1_2/doc/PromptDialog.html delete mode 100644 Pmw/Pmw_1_2/doc/RadioSelect.gif delete mode 100644 Pmw/Pmw_1_2/doc/RadioSelect.html delete mode 100644 Pmw/Pmw_1_2/doc/ScrolledCanvas.gif delete mode 100644 Pmw/Pmw_1_2/doc/ScrolledCanvas.html delete mode 100644 Pmw/Pmw_1_2/doc/ScrolledField.gif delete mode 100644 Pmw/Pmw_1_2/doc/ScrolledField.html delete mode 100644 Pmw/Pmw_1_2/doc/ScrolledFrame.gif delete mode 100644 Pmw/Pmw_1_2/doc/ScrolledFrame.html delete mode 100644 Pmw/Pmw_1_2/doc/ScrolledListBox.gif delete mode 100644 Pmw/Pmw_1_2/doc/ScrolledListBox.html delete mode 100644 Pmw/Pmw_1_2/doc/ScrolledText.gif delete mode 100644 Pmw/Pmw_1_2/doc/ScrolledText.html delete mode 100644 Pmw/Pmw_1_2/doc/ScrolledText_test.py delete mode 100644 Pmw/Pmw_1_2/doc/SelectionDialog.gif delete mode 100644 Pmw/Pmw_1_2/doc/SelectionDialog.html delete mode 100644 Pmw/Pmw_1_2/doc/TextDialog.gif delete mode 100644 Pmw/Pmw_1_2/doc/TextDialog.html delete mode 100644 Pmw/Pmw_1_2/doc/TimeCounter.gif delete mode 100644 Pmw/Pmw_1_2/doc/TimeCounter.html delete mode 100644 Pmw/Pmw_1_2/doc/blue_line.gif delete mode 100644 Pmw/Pmw_1_2/doc/blueball.gif delete mode 100644 Pmw/Pmw_1_2/doc/bugs.html delete mode 100644 Pmw/Pmw_1_2/doc/changes.html delete mode 100644 Pmw/Pmw_1_2/doc/copyright.html delete mode 100644 Pmw/Pmw_1_2/doc/counter1.gif delete mode 100644 Pmw/Pmw_1_2/doc/counter2.gif delete mode 100644 Pmw/Pmw_1_2/doc/demosandtests.html delete mode 100644 Pmw/Pmw_1_2/doc/dynamicloader.html delete mode 100644 Pmw/Pmw_1_2/doc/example.py delete mode 100644 Pmw/Pmw_1_2/doc/example1.gif delete mode 100644 Pmw/Pmw_1_2/doc/example2.gif delete mode 100644 Pmw/Pmw_1_2/doc/exercises.py delete mode 100644 Pmw/Pmw_1_2/doc/features.html delete mode 100644 Pmw/Pmw_1_2/doc/halfblueball.gif delete mode 100644 Pmw/Pmw_1_2/doc/howtobuild.html delete mode 100644 Pmw/Pmw_1_2/doc/howtouse.html delete mode 100644 Pmw/Pmw_1_2/doc/index.html delete mode 100644 Pmw/Pmw_1_2/doc/porting.html delete mode 100644 Pmw/Pmw_1_2/doc/refindex.html delete mode 100644 Pmw/Pmw_1_2/doc/scale1.gif delete mode 100644 Pmw/Pmw_1_2/doc/scale2.gif delete mode 100644 Pmw/Pmw_1_2/doc/starting.html delete mode 100644 Pmw/Pmw_1_2/doc/todo.html delete mode 100644 Pmw/Pmw_1_2/doc/transdove.gif delete mode 100644 Pmw/Pmw_1_2/lib/Pmw.def delete mode 100644 Pmw/Pmw_1_2/lib/PmwAboutDialog.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwBalloon.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwBase.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwBlt.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwButtonBox.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwColor.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwComboBox.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwComboBoxDialog.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwCounter.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwCounterDialog.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwDialog.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwEntryField.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwGroup.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwHistoryText.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwLabeledWidget.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwLoader.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwLogicalFont.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwMainMenuBar.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwMenuBar.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwMessageBar.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwMessageDialog.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwNoteBook.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwOptionMenu.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwPanedWidget.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwPromptDialog.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwRadioSelect.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwScrolledCanvas.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwScrolledField.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwScrolledFrame.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwScrolledListBox.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwScrolledText.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwSelectionDialog.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwTextDialog.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwTimeCounter.py delete mode 100644 Pmw/Pmw_1_2/lib/PmwTimeFuncs.py delete mode 100644 Pmw/Pmw_1_2/lib/__init__.py delete mode 100644 Pmw/Pmw_1_2/tests/AboutDialog_test.py delete mode 100755 Pmw/Pmw_1_2/tests/All.py delete mode 100644 Pmw/Pmw_1_2/tests/Blt_test.py delete mode 100644 Pmw/Pmw_1_2/tests/ButtonBox_test.py delete mode 100644 Pmw/Pmw_1_2/tests/Colors_test.py delete mode 100644 Pmw/Pmw_1_2/tests/ComboBox_test.py delete mode 100644 Pmw/Pmw_1_2/tests/CounterDialog_test.py delete mode 100644 Pmw/Pmw_1_2/tests/Counter_test.py delete mode 100644 Pmw/Pmw_1_2/tests/Dialog_test.py delete mode 100644 Pmw/Pmw_1_2/tests/EntryField_test.py delete mode 100644 Pmw/Pmw_1_2/tests/LabeledWidget_test.py delete mode 100755 Pmw/Pmw_1_2/tests/ManualTests.py delete mode 100644 Pmw/Pmw_1_2/tests/MegaWidget_test.py delete mode 100644 Pmw/Pmw_1_2/tests/MessageDialog_test.py delete mode 100644 Pmw/Pmw_1_2/tests/NoteBook_test.py delete mode 100644 Pmw/Pmw_1_2/tests/OptionMenu_test.py delete mode 100644 Pmw/Pmw_1_2/tests/Options_test.py delete mode 100644 Pmw/Pmw_1_2/tests/PanedWidget_test.py delete mode 100644 Pmw/Pmw_1_2/tests/PmwBase_test.py delete mode 100644 Pmw/Pmw_1_2/tests/PromptDialog_test.py delete mode 100644 Pmw/Pmw_1_2/tests/RadioSelect_test.py delete mode 100644 Pmw/Pmw_1_2/tests/ScrolledCanvas_test.py delete mode 100644 Pmw/Pmw_1_2/tests/ScrolledField_test.py delete mode 100644 Pmw/Pmw_1_2/tests/ScrolledFrame_test.py delete mode 100644 Pmw/Pmw_1_2/tests/ScrolledListBox_test.py delete mode 100644 Pmw/Pmw_1_2/tests/ScrolledText_test.py delete mode 100644 Pmw/Pmw_1_2/tests/SelectionDialog_test.py delete mode 100644 Pmw/Pmw_1_2/tests/Test.py delete mode 100644 Pmw/Pmw_1_2/tests/TestVersion.py delete mode 100644 Pmw/Pmw_1_2/tests/TextDialog_test.py delete mode 100644 Pmw/Pmw_1_2/tests/Tkinter_test.py delete mode 100644 Pmw/Pmw_1_2/tests/earthris.gif delete mode 100644 Pmw/Pmw_1_2/tests/flagup.bmp delete mode 100644 Pmw/README delete mode 100644 Pmw/__init__.py delete mode 100644 Ui/OptionsEditeur.ui delete mode 100644 Ui/OptionsPdf.ui delete mode 100644 Ui/aideQT.ui delete mode 100644 Ui/desChoixCata.ui delete mode 100644 Ui/desCommande.ui delete mode 100644 Ui/desCommentaire.ui delete mode 100644 Ui/desError.ui delete mode 100644 Ui/desFormule.ui delete mode 100644 Ui/desInactif.ui delete mode 100644 Ui/desInclude.ui delete mode 100644 Ui/desListeParam.ui delete mode 100644 Ui/desMCFact.ui delete mode 100644 Ui/desMCListAjout.ui delete mode 100644 Ui/desMacro.ui delete mode 100644 Ui/desParam.ui delete mode 100644 Ui/desPlusieursBase.ui delete mode 100644 Ui/desPlusieursInto.ui delete mode 100644 Ui/desPoursuite.ui delete mode 100644 Ui/desRacine.ui delete mode 100644 Ui/desSelectVal.ui delete mode 100644 Ui/desUniqueASSD.ui delete mode 100644 Ui/desUniqueBase.ui delete mode 100644 Ui/desUniqueComp.ui delete mode 100644 Ui/desUniqueInto.ui delete mode 100644 Ui/desUniqueSDCO.ui delete mode 100644 Ui/desUniqueSDCOInto.ui delete mode 100644 Ui/desVisu.ui delete mode 100644 Ui/image120.gif delete mode 100644 Ui/image120.png delete mode 100644 Ui/image240.gif delete mode 100644 Ui/makefile delete mode 100644 Ui/myMain.ui diff --git a/Aster/Cata/cataSTA5/__init__.py b/Aster/Cata/cataSTA5/__init__.py deleted file mode 100644 index c44abc91..00000000 --- a/Aster/Cata/cataSTA5/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -import pre74 -from cata import * - -INCLUDE_MATERIAU.itemeditor=pre74.compomacro.INCLUDE_MATERIAUTreeItem -INCLUDE.itemeditor=pre74.compomacro.INCLUDETreeItem -POURSUITE.itemeditor=pre74.compomacro.POURSUITETreeItem - diff --git a/Aster/Cata/cataSTA5/cata.py b/Aster/Cata/cataSTA5/cata.py deleted file mode 100644 index f82589d5..00000000 --- a/Aster/Cata/cataSTA5/cata.py +++ /dev/null @@ -1,11451 +0,0 @@ -# -*- coding: utf-8 -*- -#& MODIF COMMANDE DATE 10/07/2001 AUTEUR ACBHHCD G.DEVESA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== - -import Accas -from Accas import * -from Accas import _F - -import ops - -try: - import aster -except: - pass - -# -JdC = JDC_CATA(code='ASTER', - execmodul=None, - regles = (AU_MOINS_UN('DEBUT','POURSUITE'), - AU_MOINS_UN('FIN'), - A_CLASSER(('DEBUT','POURSUITE'),'FIN')), - ) - -# Type le plus general -class entier(ASSD):pass -class reel(ASSD):pass -class complexe(ASSD):pass -class liste(ASSD):pass -class chaine(ASSD):pass - -# Type generaux -class no(GEOM):pass -class grno(GEOM):pass -class ma(GEOM):pass -class grma(GEOM):pass - -class table(ASSD): - def __getitem__(self,key): - return aster.getpara(self.get_name(),"TABLE",key[0],key[1]) - -class resultat(ASSD): - def __getitem__(self,key): - return aster.getpara(self.get_name(),"RESULTAT",key[0],key[1]) - -# Autres -class affe_carte(ASSD):pass -class affe_cham_no(ASSD):pass -class affe_char_cine(ASSD):pass -class affe_char_cine_f(ASSD):pass -class asse_matrice(ASSD):pass -class asse_vecteur(ASSD):pass -class base_modale(ASSD):pass -class cabl_precont(ASSD):pass -class calc_cham_elem(ASSD):pass -class calc_char_cine(ASSD):pass -class calc_char_seisme(ASSD):pass - -class calc_elem(resultat):pass - -class calc_matr_elem(ASSD):pass - -class calc_no(resultat):pass - -class calc_vect_elem(ASSD):pass -class cara_elem(ASSD):pass -class cara_pout(ASSD):pass - -class carte(ASSD):pass -class carte_depl_r(carte):pass -class carte_epsi_r(carte):pass -class carte_flux_r(carte):pass -class carte_geom_r(carte):pass -class carte_inst_r(carte):pass -class carte_meta_r(carte):pass -class carte_neut_f(carte):pass -class carte_neut_r(carte):pass -class carte_sief_r(carte):pass -class carte_temp_f(carte):pass -class carte_temp_r(carte):pass -class carte_var2_r(carte):pass -# ajout JMP 2908 -class cham_gd(ASSD):pass -#class cham_elem(ASSD):pass -class cham_elem(cham_gd):pass -class cham_elem_crit_r(cham_elem):pass -class cham_elem_dbel_r(cham_elem):pass -class cham_elem_dommag(cham_elem):pass -class cham_elem_ener_r(cham_elem):pass -class cham_elem_epsi_c(cham_elem):pass -class cham_elem_epsi_r(cham_elem):pass -class cham_elem_erreur(cham_elem):pass -class cham_elem_flux_r(cham_elem):pass -class cham_elem_geom_r(cham_elem):pass -class cham_elem_hydr_r(cham_elem):pass -class cham_elem_meta_r(cham_elem):pass -class cham_elem_neut_r(cham_elem):pass -class cham_elem_neut_f(cham_elem):pass -class cham_elem_pres_r(cham_elem):pass -class cham_elem_sief_c(cham_elem):pass -class cham_elem_depl_r(cham_elem):pass -class cham_elem_temp_r(cham_elem):pass -class cham_elem_sief_r(cham_elem):pass -class cham_elem_sour_r(cham_elem):pass -class cham_elem_vari_r(cham_elem):pass - -#class cham_gd(ASSD):pass -class cham_mater(ASSD):pass - -#class cham_no(ASSD):pass -class cham_no(cham_gd):pass -class cham_no_depl_c(cham_no):pass -class cham_no_depl_f(cham_no):pass -class cham_no_depl_r(cham_no):pass -class cham_no_epsi_r(cham_no):pass -class cham_no_flux_r(cham_no):pass -class cham_no_geom_r(cham_no):pass -class cham_no_inst_r(cham_no):pass -class cham_no_meta_r(cham_no):pass -class cham_no_pres_c(cham_no):pass -class cham_no_pres_r(cham_no):pass -class cham_no_sief_r(cham_no):pass -class cham_no_neut_r(cham_no):pass -class cham_no_neut_f(cham_no):pass -class cham_no_temp_c(cham_no):pass -class cham_no_temp_f(cham_no):pass -class cham_no_temp_r(cham_no):pass -class cham_no_vanl_r(cham_no):pass -class cham_no_var2_r(cham_no):pass - -class char_acou(ASSD):pass -class char_cine_acou(ASSD):pass -class char_cine_meca(ASSD):pass -class char_cine_ther(ASSD):pass -class char_meca(ASSD):pass -class char_ther(ASSD):pass -class comb_cham_elem(ASSD):pass -class comb_cham_no(ASSD):pass -class comb_fourier(resultat):pass -class comb_matr_asse(ASSD):pass -class courbe(ASSD):pass -class crea_resu(ASSD):pass -class acou_harmo(resultat):pass -class dyna_harmo(resultat):pass -class dyna_line_harm(resultat):pass -class dyna_trans(resultat):pass - -class evol(resultat):pass - -class evol_char(evol):pass -class evol_elas(evol):pass -class evol_noli(evol):pass -class evol_ther(evol):pass - -class extr_mode(ASSD):pass -class extr_resu(ASSD):pass -class fact_grad(ASSD):pass -class fact_ldlt(ASSD):pass -class fonction_c(fonction):pass -class fond_fiss(ASSD):pass -class fourier_elas(resultat):pass -class harm_gene(resultat):pass -class interf_dyna_clas(ASSD):pass -class interspfact(ASSD):pass -class lire_miss_3d(ASSD):pass -class lire_resu(ASSD):pass -class listis(ASSD):pass -class listr8(ASSD):pass -class macr_elem_dyna(ASSD):pass -class macr_elem_stat(ASSD):pass -class macro_elas_mult(ASSD):pass -class maillage(ASSD):pass -class mater(ASSD):pass - -class matr_asse(ASSD):pass -class matr_asse_depl_c(matr_asse):pass -class matr_asse_depl_r(matr_asse):pass -class matr_asse_gene_c(matr_asse):pass -class matr_asse_gene_r(matr_asse):pass -class matr_asse_pres_c(matr_asse):pass -class matr_asse_pres_r(matr_asse):pass -class matr_asse_temp_c(matr_asse):pass -class matr_asse_temp_r(matr_asse):pass - -class matr_elem(ASSD):pass -class matr_elem_depl_c(matr_elem):pass -class matr_elem_depl_r(matr_elem):pass -class matr_elem_pres_c(matr_elem):pass -class matr_elem_temp_r(matr_elem):pass - -class melasflu(ASSD):pass - -class mode_acou(resultat):pass -class mode_cycl(resultat):pass -class mode_flamb(resultat):pass -class mode_gene(resultat):pass -class mode_iter_inv(resultat):pass -class mode_meca(resultat):pass -class mode_meca_c(mode_meca):pass -class mode_stat(resultat):pass - -class modele(ASSD):pass -class modele_gene(ASSD):pass -class mult_elas(resultat):pass -class norm_mode(ASSD):pass -class nume_ddl(ASSD):pass -class nume_ddl_gene(ASSD):pass -class obstacle(ASSD):pass -class post_elem(ASSD):pass -class prod_matr_cham(ASSD):pass -class proj_champ(ASSD):pass -class recu_champ(ASSD):pass -class reso_grad(ASSD):pass -class reso_ldlt(ASSD):pass -class rest_base_phys(ASSD):pass -class spectre(ASSD):pass -class squelette(maillage):pass -class surface(ASSD):pass - -class tabl_aire_int(table):pass -class tabl_calc_g_loca(table):pass -class tabl_calc_g_th(table):pass -class tabl_cara_geom(table):pass -class tabl_char_limite(table):pass -class tabl_ener_elas(table):pass -class tabl_ener_pot(table):pass -class tabl_ener_cin(table):pass -class tabl_ener_totale(table):pass -class tabl_fonc(table):pass -class tabl_fonc_max(tabl_fonc):pass -class tabl_fonc_rms(tabl_fonc):pass -class tabl_indic_ener(table):pass -class tabl_indic_seuil(table):pass -class tabl_intsp(table):pass -class tabl_mass_iner(table):pass -class tabl_post_alea(table):pass -class tabl_post_dyna(table):pass -class tabl_post_f_alea(table):pass -class tabl_post_fatig(table):pass -class tabl_post_gouj2e(table):pass -class tabl_post_k(table):pass -class tabl_post_rccm(table):pass -class tabl_post_rele(table):pass -class tabl_post_simpli(table):pass -class tabl_post_usur(table):pass -class tabl_reca_weib(table):pass -class tabl_rice_tracey(table):pass -class tabl_texture(table):pass -class tabl_trc(table):pass -class tabl_weibull(table):pass - -class theta_geom(ASSD):pass -class tran_gene(ASSD):pass -class type_flui_stru(ASSD):pass -class valeur(ASSD):pass -class vect_asse(ASSD):pass -class vect_asse_gene(vect_asse):pass -class vect_elem(ASSD):pass -class vect_elem_depl_r(vect_elem):pass -class vect_elem_pres_c(vect_elem):pass -class vect_elem_pres_r(vect_elem):pass -class vect_elem_temp_r(vect_elem):pass - -#& MODIF COMMANDE DATE 11/09/2000 AUTEUR JMBHH01 J.M.PROIX -AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, - fr="Affectation de caractéristiques à des éléments de structure (barre, cable, poutre, tuyau, plaque, coque, discret)", - docu="U4.42.01-F",reentrant='n', - regles=(AU_MOINS_UN('POUTRE','COQUE','DISCRET','CABLE','BARRE','MASSIF','ASSE_GRIL','GRILLE'),), - MODELE =SIMP(statut='o',typ=modele ), - INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ), - VERIF =SIMP(statut='f',typ='TXM',max='**',into=("MAILLE","NOEUD") ), - POUTRE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - SECTION =SIMP(statut='f',typ='TXM' ,into=("GENERALE","RECTANGLE","CERCLE") ), - CARA_SECT =SIMP(statut='f',typ=(cara_pout) ), - b_generale =BLOC( condition = "SECTION=='GENERALE'", - CARA =SIMP(statut='f',typ='TXM',max='**', - into=("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT", - "AI","JG","IYR2","IZR2","A1", - "IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1", - "RZ1","RT1","AI1","JG1","IYR21","IZR21","A2", - "IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2", - "RZ2","RT2","AI2","JG2","IYR22","IZR22","H", - "HZ","HY","EP","EPY","EPZ","H1","HZ1","HY1", - "EP1","EPY1","EPZ1","H2","HZ2","HY2","EP2", - "EPY2","EPZ2","R","R1","R2") ), - VALE =SIMP(statut='o',typ='R',max='**'), - VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ), - ), - b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'", - CARA =SIMP(statut='f',typ='TXM',max='**', - into=("H","EP","HY","HZ","EPY","EPZ", - "H1","HZ1","HY1","EP1","EPY1","EPZ1", - "H2","HZ2","HY2","EP2","EPY2","EPZ2") ), - VALE =SIMP(statut='o',typ='R',max='**'), - VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE","AFFINE"),defaut="HOMOTHETIQUE"), - ), - b_cercle =BLOC( condition = "SECTION=='CERCLE'", - CARA =SIMP(statut='f',typ='TXM',max='**', - into=("R","EP","R1","R2","EP1","EP2") ), - VALE =SIMP(statut='o',typ='R',max='**'), - VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ), - MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - ), - BARRE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - SECTION =SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ), - b_generale =BLOC( condition = "SECTION=='GENERALE'", - CARA =SIMP(statut='f',typ='TXM',into=("A",) ), - VALE =SIMP(statut='o',typ='R' ), - ), - b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'", - CARA =SIMP(statut='f',typ='TXM',into=("H","HZ","HY","EPY","EPZ","EP"),max=6 ), - VALE =SIMP(statut='o',typ='R',max=6 ), - ), - b_cercle =BLOC( condition = "SECTION=='CERCLE'", - CARA =SIMP(statut='o',typ='TXM',max=2,into=("R","EP") ), - VALE =SIMP(statut='o',typ='R',max=2 ), - ), - ), - COQUE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA' ), - PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - EPAIS =SIMP(statut='f',typ='R' ), - ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2), - A_CIS =SIMP(statut='f',typ='R',defaut= 0.8333333), - COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-5 ), - EXCENTREMENT =SIMP(statut='f',typ='R' ), - INER_ROTA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - CABLE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('A','SECTION') ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - N_INIT =SIMP(statut='f',typ='R',defaut= 5000. ), - A =SIMP(statut='f',typ='R' ), - SECTION =SIMP(statut='f',typ='R' ), - ), - DISCRET =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - AMOR_HYST =SIMP(statut='f',typ='R' ), - CARA =SIMP(statut='f',typ='TXM',max='**', - into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L", - "K_T_N", "K_T_L", "K_TR_N", "K_TR_L", - "M_T_D_N","M_TR_D_N","M_T_N", - "M_T_L", "M_TR_N", "M_TR_L", - "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L", - "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ), - VALE =SIMP(statut='f',typ='R',max='**'), - ), - ORIENTATION =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - CARA =SIMP(statut='f',typ='TXM', - into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ), - VALE =SIMP(statut='f',typ='R',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-4 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - DEFI_ARC =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE', - 'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'), - PRESENT_PRESENT('ORIE_ARC','RAYON'), - EXCLUS('COEF_FLEX','COEF_FLEX_XY'), - EXCLUS('COEF_FLEX','COEF_FLEX_XZ'), - EXCLUS('INDI_SIGM','INDI_SIGM_XY'), - EXCLUS('INDI_SIGM','INDI_SIGM_XZ'), - PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'), - PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ORIE_ARC =SIMP(statut='f',typ='R'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - NOEUD_CENTRE =SIMP(statut='f',typ=no,max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,max=1), - POIN_TANG =SIMP(statut='f',typ='R',max='**'), - NOEUD_POIN_TANG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_POIN_TG=SIMP(statut='f',typ=grno,max=1), - RAYON =SIMP(statut='f',typ='R'), - COEF_FLEX =SIMP(statut='f',typ='R'), - INDI_SIGM =SIMP(statut='f',typ='R'), - COEF_FLEX_XY =SIMP(statut='f',typ='R'), - INDI_SIGM_XY =SIMP(statut='f',typ='R'), - COEF_FLEX_XZ =SIMP(statut='f',typ='R'), - INDI_SIGM_XZ =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - MASSIF =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - EXCLUS('ANGL_REP','ANGL_AXE'), - EXCLUS('ANGL_REP','ORIG_AXE'), - PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ANGL_REP =SIMP(statut='f',typ='R',max=3), - ANGL_AXE =SIMP(statut='f',typ='R',max=2), - ORIG_AXE =SIMP(statut='f',typ='R',max=3), - ), - POUTRE_FLUI =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - B_T =SIMP(statut='o',typ='R'), - B_N =SIMP(statut='o',typ='R'), - B_TN =SIMP(statut='o',typ='R',defaut= 0.E+0 ), - A_FLUI =SIMP(statut='o',typ='R'), - A_CELL =SIMP(statut='o',typ='R'), - COEF_ECHELLE =SIMP(statut='o',typ='R'), - ), - GRILLE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - EXCLUS('ANGL_REP','ORIG_AXE'), - ENSEMBLE('ORIG_AXE','AXE')), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - SECTION_L =SIMP(statut='o',typ='R'), - ANGL_REP =SIMP(statut='f',typ='R',max=2), - ANGL_L =SIMP(statut='f',typ='R'), - POUR_CENT_L =SIMP(statut='f',typ='R'), - POUR_CENT_T =SIMP(statut='f',typ='R'), - DIST_N =SIMP(statut='f',typ='R'), - ORIG_AXE =SIMP(statut='f',typ='R',max='**'), - AXE =SIMP(statut='f',typ='R',max='**'), - COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-10 ), - ), - RIGI_PARASOL =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'), - UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),), - GROUP_MA =SIMP(statut='o',typ=ma,max='**'), - FONC_GROUP =SIMP(statut='f',typ=(fonction) ), - COEF_GROUP =SIMP(statut='f',typ='R',max='**'), - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - CARA =SIMP(statut='o',typ='TXM',max='**',into=("K_TR_D_N","A_TR_D_N") ), - VALE =SIMP(statut='o',typ='R',max='**'), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - COOR_CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - ASSE_GRIL =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - CARA =SIMP(statut='o',typ='TXM',max='**', - into=("K_TR_D_N","K_TR_D_L_T","K_TR_D_L_N",) ), - VALE =SIMP(statut='o',typ='R',max='**'), - PAS_T =SIMP(statut='o',typ='R'), - PAS_N =SIMP(statut='o',typ='R'), - ANGL_REP =SIMP(statut='o',typ='R',max='**'), - COEF_ECHELLE =SIMP(statut='o',typ='R'), - ), -) ; -#& MODIF COMMANDE DATE 24/05/2000 AUTEUR VABHHTS J.PELLET -def affe_carte_prod(GRANDEUR,**args): - if GRANDEUR == "TEMP_R" : return carte_temp_r - if GRANDEUR == "FLUX_R" : return carte_flux_r - if GRANDEUR == "DEPL_R" : return carte_depl_r - if GRANDEUR == "EPSI_R" : return carte_epsi_r - if GRANDEUR == "SIEF_R" : return carte_sief_r - if GRANDEUR == "META_R" : return carte_meta_r - if GRANDEUR == "NEUT_R" : return carte_neut_r - if GRANDEUR == "VAR2_R" : return carte_var2_r - if GRANDEUR == "TEMP_F" : return carte_temp_f - if GRANDEUR == "NEUT_F" : return carte_neut_f - if GRANDEUR == "INST_R" : return carte_inst_r - if GRANDEUR == "GEOM_R" : return carte_geom_r - raise AsException("type de concept resultat non prevu") - -AFFE_CARTE=OPER(nom="AFFE_CARTE",op= 36,sd_prod=affe_carte_prod, - fr="Définition d un champ de grandeur constant, qui peut ensuite être utilisé comme champ initial (par exemple une précontrainte en mécanique)", - docu="U4.44.13-C",reentrant='n', - MAILLAGE =SIMP(statut='o',typ=maillage ), - GRANDEUR =SIMP(statut='o',typ='TXM', - into=("DEPL_R","EPSI_R","SIEF_R","VAR2_R", - "TEMP_R","META_R","TEMP_F","FLUX_R", - "NEUT_R","NEUT_F","INST_R","GEOM_R",) ), - AFFE =FACT(statut='o',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma ), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - VALE =SIMP(statut='f',typ='R',max='**' ), - VALE_I =SIMP(statut='f',typ='I',max='**' ), - VALE_C =SIMP(statut='f',typ='C',max='**' ), - VALE_F =SIMP(statut='f',typ=fonction), - ), -) ; -#& MODIF COMMANDE DATE 31/05/2000 AUTEUR CIBHHLV L.VIVAN - -def affe_cham_no_prod(CHAM_NO_AFFE,GRANDEUR,**args): - if GRANDEUR == "TEMP_R" : return cham_no_temp_r - if GRANDEUR == "TEMP_F" : return cham_no_temp_f - if GRANDEUR == "DEPL_R" : return cham_no_depl_r - if GRANDEUR == "DEPL_F" : return cham_no_depl_f - if GRANDEUR == "SIEF_R" : return cham_no_sief_r - if GRANDEUR == "NEUT_R" : return cham_no_neut_r - if GRANDEUR == "NEUT_F" : return cham_no_neut_f - if GRANDEUR == "INST_R" : return cham_no_inst_r - if GRANDEUR == "GEOM_R" : return cham_no_geom_r - if GRANDEUR == "VAR2_R" : return cham_no_var2_r - if AsType(CHAM_NO_AFFE) == cham_no_temp_r : return cham_no_temp_r - if AsType(CHAM_NO_AFFE) == cham_no_depl_r : return cham_no_depl_r - if AsType(CHAM_NO_AFFE) == cham_no_sief_r : return cham_no_sief_r - raise AsException("type de concept resultat non prevu") - -AFFE_CHAM_NO=OPER(nom="AFFE_CHAM_NO",op= 52,sd_prod=affe_cham_no_prod - ,fr="Affectation de grandeurs réelles pour créer un cham_no_*", - docu="U4.44.11-F",reentrant='n', - regles=(UN_PARMI('MAILLAGE','CHAM_NO_AFFE'), - PRESENT_PRESENT('MAILLAGE','GRANDEUR','AFFE'), - EXCLUS('NUME_DDL','CHAM_NO'),), - CHAM_NO_AFFE =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_temp_f,cham_no_depl_r, - cham_no_depl_f,cham_no_sief_r ) ), - MAILLAGE =SIMP(statut='f',typ=maillage ), - GRANDEUR =SIMP(statut='f',typ='TXM',into=("TEMP_R","DEPL_R","SIEF_R","VAR2_R", - "TEMP_F","DEPL_F","INST_R","GEOM_R", - "NEUT_R","NEUT_F") ), - AFFE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - UN_PARMI('VALE','VALE_F','VALE_R','FONCTION'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), -# NOM_CMP est il obligatoire - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - VALE_R =SIMP(statut='f',typ='R',max='**',defaut= 0.E+0 ), - VALE =SIMP(statut='f',typ='R',max='**'), - VALE_F =SIMP(statut='f',typ=fonction,max='**'), - FONCTION =SIMP(statut='f',typ=fonction,max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - NUME_DDL =SIMP(statut='f',typ=nume_ddl ), - CHAM_NO =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_temp_f,cham_no_depl_r, - cham_no_depl_f,cham_no_sief_r ) ), -) ; -#& MODIF COMMANDE DATE 12/05/99 AUTEUR VABHHTS J.PELLET -AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou, - fr="Affectation de charges et conditions aux limites acoustiques constantes", - docu="U4.44.04-E",reentrant='n', - regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),), - MODELE =SIMP(statut='o',typ=modele ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.,), - PRES_IMPO =FACT(statut='f',min=01,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - PRES =SIMP(statut='o',typ='C' ), - ), - VITE_FACE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - VNOR =SIMP(statut='o',typ='C' ), - ), - IMPE_FACE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - IMPE =SIMP(statut='o',typ='C' ), - ), - LIAISON_UNIF =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE' ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args): - if MECA_IMPO != None : return char_cine_meca - if THER_IMPO != None : return char_cine_ther - if ACOU_IMPO != None : return char_cine_acou - raise AsException("type de concept resultat non prevu") - -AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod - ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation", - docu="U4.44.03-E",reentrant='n', - regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO','ACOU_IMPO'), - EXCLUS('MECA_IMPO','THER_IMPO'), - EXCLUS('MECA_IMPO','ACOU_IMPO'), - EXCLUS('THER_IMPO','ACOU_IMPO'),), - MODELE =SIMP(statut='o',typ=modele ), - MECA_IMPO =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - ), - THER_IMPO =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - TEMP_SUP =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - TEMP_INF =SIMP(statut='f',typ='R' ), - ), - ACOU_IMPO =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - PRES =SIMP(statut='o',typ='C' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args): - if MECA_IMPO != None : return char_cine_meca - if THER_IMPO != None : return char_cine_ther - raise AsException("type de concept resultat non prevu") - -AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod - ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation", - docu="U4.44.03-E",reentrant='n', - regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'), - EXCLUS('MECA_IMPO','THER_IMPO'),), - MODELE =SIMP(statut='o',typ=modele ), - MECA_IMPO =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DX =SIMP(statut='f',typ=fonction ), - DY =SIMP(statut='f',typ=fonction ), - DZ =SIMP(statut='f',typ=fonction ), - DRX =SIMP(statut='f',typ=fonction ), - DRY =SIMP(statut='f',typ=fonction ), - DRZ =SIMP(statut='f',typ=fonction ), - GRX =SIMP(statut='f',typ=fonction ), - PRES =SIMP(statut='f',typ=fonction ), - TEMP =SIMP(statut='f',typ=fonction ), - PHI =SIMP(statut='f',typ=fonction ), - ), - THER_IMPO =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - TEMP_SUP =SIMP(statut='f',typ=fonction ), - TEMP =SIMP(statut='f',typ=fonction ), - TEMP_INF =SIMP(statut='f',typ=fonction ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 03/10/2000 AUTEUR UFBHHLL C.CHAVANT -AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca - ,fr="Affectation de charges et conditions aux limites mécaniques constantes", - docu="U4.44.01-F",reentrant='n', - regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE', - 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', - 'PRES_REP','FORCE_POUTRE','FORCE_COQUE','LIAISON_OBLIQUE', - 'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE', - 'VITE_FACE','TEMP_CALCULEE','RELA_CINE_BP','EPSI_INIT','CONTACT', - 'LIAISON_UNIL_NO','LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP', - 'LIAISON_SOLIDE','LIAISON_ELEM','ONDE_FLUI','PRES_CALCULEE', - 'EPSA_CALCULEE','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE', - 'LIAISON_MAIL','FORCE_TUYAU','SECH_CALCULEE','HYDR_CALCULEE', - 'EFFE_FOND'), - EXCLUS('LIAISON_UNIL_NO','CONTACT'),), - - MODELE =SIMP(statut='o',typ=(modele) ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - PESANTEUR =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=04,max=04), - ROTATION =SIMP(statut='f',typ='R',fr="Champ de rotation",min=04,max=04), - b_rotation =BLOC ( condition = "ROTATION != None", - CENTRE =SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=03), - ), - PRES_CALCULEE =SIMP(statut='f',fr="Champ de pression issu d un autre calcul",typ=evol_char ), - TEMP_CALCULEE =SIMP(statut='f',fr="Champ de température issu d un autre calcul",typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ), - HYDR_CALCULEE =SIMP(statut='f',fr="Champ d hydratation issu d un autre calcul",typ=evol_ther ), - SECH_CALCULEE =SIMP(statut='f',fr="Champ de séchage issu d un autre calcul",typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ), - EPSA_CALCULEE =SIMP(statut='f',fr="Champ de déformation anélastique issu d un autre calcul",typ=evol_noli ), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), - - DDL_IMPO =FACT(statut='f',min=01,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', - 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4', - 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6', - 'VO6','WI6','WO6','WO','WI1','WO1'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PRE1 =SIMP(statut='f',typ='R' ), - PRE2 =SIMP(statut='f',typ='R' ), - UI2 =SIMP(statut='f',typ='R' ), - UI3 =SIMP(statut='f',typ='R' ), - UI4 =SIMP(statut='f',typ='R' ), - UI5 =SIMP(statut='f',typ='R' ), - UI6 =SIMP(statut='f',typ='R' ), - UO2 =SIMP(statut='f',typ='R' ), - UO3 =SIMP(statut='f',typ='R' ), - UO4 =SIMP(statut='f',typ='R' ), - UO5 =SIMP(statut='f',typ='R' ), - UO6 =SIMP(statut='f',typ='R' ), - VI2 =SIMP(statut='f',typ='R' ), - VI3 =SIMP(statut='f',typ='R' ), - VI4 =SIMP(statut='f',typ='R' ), - VI5 =SIMP(statut='f',typ='R' ), - VI6 =SIMP(statut='f',typ='R' ), - VO2 =SIMP(statut='f',typ='R' ), - VO3 =SIMP(statut='f',typ='R' ), - VO4 =SIMP(statut='f',typ='R' ), - VO5 =SIMP(statut='f',typ='R' ), - VO6 =SIMP(statut='f',typ='R' ), - WI2 =SIMP(statut='f',typ='R' ), - WI3 =SIMP(statut='f',typ='R' ), - WI4 =SIMP(statut='f',typ='R' ), - WI5 =SIMP(statut='f',typ='R' ), - WI6 =SIMP(statut='f',typ='R' ), - WO2 =SIMP(statut='f',typ='R' ), - WO3 =SIMP(statut='f',typ='R' ), - WO4 =SIMP(statut='f',typ='R' ), - WO5 =SIMP(statut='f',typ='R' ), - WO6 =SIMP(statut='f',typ='R' ), - WO =SIMP(statut='f',typ='R' ), - WI1 =SIMP(statut='f',typ='R' ), - WO1 =SIMP(statut='f',typ='R' ), - ), - FACE_IMPO =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE',), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','DNOR','DTAN'), - EXCLUS('DNOR','DX'), - EXCLUS('DNOR','DY'), - EXCLUS('DNOR','DZ'), - EXCLUS('DNOR','DRX'), - EXCLUS('DNOR','DRY'), - EXCLUS('DNOR','DRZ'), - EXCLUS('DTAN','DX'), - EXCLUS('DTAN','DY'), - EXCLUS('DTAN','DZ'), - EXCLUS('DTAN','DRX'), - EXCLUS('DTAN','DRY'), - EXCLUS('DTAN','DRZ'),), -# rajout d un mot clé REPERE :/ LOCAL /GLOBAL - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - DNOR =SIMP(statut='f',typ='R' ), - DTAN =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PRE1 =SIMP(statut='f',typ='R' ), - PRE2 =SIMP(statut='f',typ='R' ), - ), - LIAISON_DDL =FACT(statut='f',fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds",min=01,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - ), - LIAISON_OBLIQUE =FACT(statut='f',fr="Appliquer à des noeuds la même valeur de déplacement dans un repère oblique quelconque",min=01,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'), - UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - ANGL_NAUT =SIMP(statut='o',typ='R',max=03), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - ), - LIAISON_GROUP =FACT(statut='f',fr="Définir des relations linéaires entre certains ddls de couples de noeuds",min=01,max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=no,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_1 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max=03), - ANGL_NAUT =SIMP(statut='f',typ='R',max=03), - CENTRE =SIMP(statut='f',typ='R',max=03), - ), - LIAISON_SOLIDE =FACT(statut='f',fr="Modéliser une partie indéformable d une structure",min=01,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - LIAISON_UNIF =FACT(statut='f',fr="Imposer une meme valeur (inconnue) à des ddls d un emsemble de noeuds",min=01,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), - LIAISON_CHAMNO =FACT(statut='f',fr="définir une relation linéaire entre tous les ddls présents dans un concept cham_nno",min=01,max='**', -# type de cham_no CO() - CHAM_NO =SIMP(statut='o',typ=cham_no), #CO() - COEF_IMPO =SIMP(statut='o',typ='R' ), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - LIAISON_ELEM =FACT(statut='f',fr="Raccorder une poutre à une partie massive 3D ou une coque", min=01,max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_NO_2','NOEUD_2'),), - OPTION =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU") ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ), - AXE_POUTRE =SIMP(statut='f',typ='R',max=03), - ANGL_MAX =SIMP(statut='f',typ='R',defaut= 1. ), - ), - LIAISON_COQUE =FACT(statut='f',min=01,max='**', - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - LIAISON_MAIL =FACT(statut='f',min=01,max='**', - regles=(PRESENT_ABSENT('GROUP_MA_1','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), - PRESENT_ABSENT('MAILLE_1','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL',), - PRESENT_ABSENT('GROUP_MA_2','GROUP_MA_MAIT','MAILLE_MAIT'), - PRESENT_ABSENT('MAILLE_2','GROUP_MA_MAIT','MAILLE_MAIT'), - PRESENT_ABSENT('GROUP_NO_2','GROUP_MA_MAIT','MAILLE_MAIT'), - PRESENT_ABSENT('NOEUD_2','GROUP_MA_MAIT','MAILLE_MAIT'), - AU_MOINS_UN('GROUP_MA_1','MAILLE_1','GROUP_MA_MAIT','MAILLE_MAIT'), - AU_MOINS_UN('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), - PRESENT_ABSENT('DDL_1','DDL_MAIT','DDL_ESCL'), - PRESENT_ABSENT('DDL_2','DDL_MAIT','DDL_ESCL'), - PRESENT_PRESENT('DDL_1','DDL_2'), - PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_ESCL =SIMP(statut='f',typ=grno,max='**'), - NOEUD_ESCL =SIMP(statut='f',typ=no,max='**'), - TRAN =SIMP(statut='f',typ='R',max=03 ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=03 ), - CENTRE =SIMP(statut='f',typ='R',max=03 ), - DDL_1 =SIMP(statut='f',typ='TXM',max='**',into=("DNOR",) ), - DDL_2 =SIMP(statut='f',typ='TXM',max='**',into=("DNOR",) ), - DDL_MAIT =SIMP(statut='f',typ='TXM',max='**',into=("DNOR",) ), - DDL_ESCL =SIMP(statut='f',typ='TXM',max='**',into=("DNOR",) ), - ), - - FORCE_NODALE =FACT(statut='f',fr="Imposer des forces nodales en des noeuds",min=01,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=03), - ), - - FORCE_FACE =FACT(statut='f',fr="Appliquer des forces surfaciques sur une face d éléments volumiques",min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - ), - FORCE_ARETE =FACT(statut='f',fr="Appliquer des forces linéiques à une arete d élément volumique ou de coque",min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE',), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ), - FORCE_CONTOUR =FACT(statut='f',fr="Appliquer des forces linéiques au bord d un domaine 2D ou AXIS_FOURIER",min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ), - FORCE_INTERNE =FACT(statut='f',fr="Appliquer des forces volumiques (2D ou 3D) à un domaine volumique",min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - ), - PRES_REP =FACT(statut='f',fr="Appliquer une pression à un domaine de milieu continu 2D ou 3D",min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('PRES','CISA_2D' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PRES =SIMP(statut='f',typ='R' ), - CISA_2D =SIMP(statut='f',typ='R' ), - ), - EPSI_INIT =FACT(statut='f',fr="Appliquer un chargement de déformation initiale à un volume 3D ou 2D",min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX', - 'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - EPXX =SIMP(statut='f',typ='R' ), - EPYY =SIMP(statut='f',typ='R' ), - EPZZ =SIMP(statut='f',typ='R' ), - EPXY =SIMP(statut='f',typ='R' ), - EPXZ =SIMP(statut='f',typ='R' ), - EPYZ =SIMP(statut='f',typ='R' ), - EPX =SIMP(statut='f',typ='R' ), - KY =SIMP(statut='f',typ='R' ), - KZ =SIMP(statut='f',typ='R' ), - EXX =SIMP(statut='f',typ='R' ), - EYY =SIMP(statut='f',typ='R' ), - EXY =SIMP(statut='f',typ='R' ), - KXX =SIMP(statut='f',typ='R' ), - KYY =SIMP(statut='f',typ='R' ), - KXY =SIMP(statut='f',typ='R' ), - ), - - - FORCE_COQUE =FACT(statut='f',fr="Appliquer des forces surfaciques sur des coques",min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('F1','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('F2','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('F3','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('MF1','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('MF2','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),), -# rajour d un mot clé REPERE :/ LOCAL /GLOBAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - - F1 =SIMP(statut='f',typ='R' ), - F2 =SIMP(statut='f',typ='R' ), - F3 =SIMP(statut='f',typ='R' ), - MF1 =SIMP(statut='f',typ='R' ), - MF2 =SIMP(statut='f',typ='R' ), - - PRES =SIMP(statut='f',typ='R' ), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ), - ), - FORCE_POUTRE =FACT(statut='f',fr="Appliquer des forces linéiques sur des poutres",min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), - PRESENT_ABSENT('FX','N','VY','VZ'), - PRESENT_ABSENT('FY','N','VY','VZ'), - PRESENT_ABSENT('FZ','N','VY','VZ'), - PRESENT_ABSENT('N','FX','FY','FZ'), - PRESENT_ABSENT('VY','FX','FY','FZ'), - PRESENT_ABSENT('VZ','FX','FY','FZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ), -# rajour d un mot clé REPERE :/ LOCAL /GLOBAL - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - - N =SIMP(statut='f',typ='R' ), - VY =SIMP(statut='f',typ='R' ), - VZ =SIMP(statut='f',typ='R' ), - - ), - FORCE_TUYAU =FACT(statut='f',fr="imposer une pression dans un élément TUYAU",min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PRES =SIMP(statut='f',typ='R' ), - ), - - - FORCE_ELEC =FACT(statut='f',fr="Appliquer une force de Laplace due à la présence d un conducteur rectiligne secondaire non maillé",min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','POSITION'), - EXCLUS('FX','POSITION'), - EXCLUS('FY','POSITION'), - EXCLUS('FZ','POSITION'),), -# trop de règles : les blocs conditionnels permettent d en suprimer - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - - FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FY =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - - POSITION =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ), - b_para =BLOC ( condition = "POSITION == 'PARA'", - regles=(UN_PARMI('TRANS','DIST'),), - TRANS =SIMP(statut='f',typ='R',max=03), - DIST =SIMP(statut='f',typ='R' ), - b_point2 =BLOC ( condition = "DIST != None", - POINT2 =SIMP(statut='o',typ='R',max=03), - ), - ), - b_fini_infi =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')", - POINT1 =SIMP(statut='o',typ='R',max=03), - POINT2 =SIMP(statut='o',typ='R',max=03), - ), - ), - INTE_ELEC =FACT(statut='f',fr="Appliquer une force de Laplace due à la présence d un conducteur non rectiligne secondaire maillé ou non",min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'), - EXCLUS('TRANS','SYME'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - TRANS =SIMP(statut='f',typ='R',max='**'), - SYME =SIMP(statut='f',typ='R',max='**'), - ), - - - VITE_FACE =FACT(statut='f',fr="Imposer des vitesses acoustiquesnormales à une face",min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - VNOR =SIMP(statut='o',typ='R' ), - ), - ONDE_FLUI =FACT(statut='f',fr="Appliquer une amplitude de pression d onde incidente",min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PRES =SIMP(statut='o',typ='R' ), - ), - IMPE_FACE =FACT(statut='f',fr="Appliquer une impédance acoustique à une face",min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE' ),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - IMPE =SIMP(statut='o',typ='R' ), - ), - - - FLUX_THM_REP =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUN =SIMP(statut='f',typ='R' ), - FLUN_HYDR1 =SIMP(statut='f',typ='R' ), - FLUN_HYDR2 =SIMP(statut='f',typ='R' ), - ), - - EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE'),), - GROUP_MA_INT =SIMP(statut='o',typ=grma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PRES =SIMP(statut='o',typ='R' ), - ), - - LIAISON_UNIL_NO =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'),# CO() - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'),# CO() - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'),# CO() - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'),# CO() - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max=03 ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=03 ), - CENTRE =SIMP(statut='f',typ='R',max=03 ), - ANGLE_MAX =SIMP(statut='f',typ='R' ), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS", - into=("SANS","TRESCA","COULOMB") ), - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("CONTRAINTE","LAGRANGIEN","PENALISATION") ), - COULOMB =SIMP(statut='f',typ='R' ), - TRESCA =SIMP(statut='f',typ='R' ), - E_T =SIMP(statut='f',typ='R' ), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - CONTACT =SIMP(statut='f',typ='TXM',into=("MAINTENU",) ), - JEU =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",min=01,max='**', - regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'), - ENSEMBLE('FROTTEMENT','COULOMB'), - EXCLUS('DIST_2','COEF_IMPO'), - EXCLUS('DIST_1','COEF_IMPO'), - EXCLUS('COEF_MULT_2','GROUP_MA_1'), - EXCLUS('COEF_MULT_2','MAILLE_1'), - EXCLUS('COEF_IMPO','GROUP_MA_1'), - EXCLUS('COEF_IMPO','MAILLE_1'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP")), - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into=("NON","NODAL","NODAL_SYME","MAIT_ESCL","MAIT_ESCL_SYME")), - RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_VOISIN",into=("NOEUD_BOUCLE","NOEUD_VOISIN")), - REAC_GEOM_INTE =SIMP(statut='f',typ='I',defaut= 2), - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("CONTRAINTE","LAGRANGIEN","PENALISATION") ), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - COULOMB =SIMP(statut='f',typ='R',max=1), - E_T =SIMP(statut='f',typ='R' ), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - VECT_NORM_2 =SIMP(statut='f',typ='R',max=03), - PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE",) ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DIST_1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DIST_2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - COEF_IMPO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - COEF_MULT_2 =SIMP(statut='f',typ='R',defaut= 1. ), - ), - - RELA_CINE_BP =FACT(statut='f',min=01,max='**', - CABLE_BP =SIMP(statut='o',typ=cabl_precont ), - SIGM_BPEL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - RELA_CINE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 17/05/2000 AUTEUR CIBHHLV L.VIVAN -AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, - fr="Affectation de charges et conditions aux limites mécaniques complexes", - docu="U4.44.05-C",reentrant='n', - regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),), - MODELE =SIMP(statut='o',typ=modele ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - DDL_IMPO =FACT(statut='f',min=01,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DX =SIMP(statut='f',typ='C' ), - DY =SIMP(statut='f',typ='C' ), - DZ =SIMP(statut='f',typ='C' ), - DRX =SIMP(statut='f',typ='C' ), - DRY =SIMP(statut='f',typ='C' ), - DRZ =SIMP(statut='f',typ='C' ), - GRX =SIMP(statut='f',typ='C' ), - PRES =SIMP(statut='f',typ='C' ), - PHI =SIMP(statut='f',typ='C' ), - ), - FORCE_POUTRE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE',), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',), - PRESENT_ABSENT('FX','N','VY','VZ',), - PRESENT_ABSENT('FY','N','VY','VZ',), - PRESENT_ABSENT('FZ','N','VY','VZ',), - PRESENT_ABSENT('N','FX','FY','FZ',), - PRESENT_ABSENT('VY', 'FX','FY','FZ',), - PRESENT_ABSENT('VZ','FX','FY','FZ', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), - FX =SIMP(statut='f',typ='C' ), - FY =SIMP(statut='f',typ='C' ), - FZ =SIMP(statut='f',typ='C' ), - N =SIMP(statut='f',typ='C' ), - VY =SIMP(statut='f',typ='C' ), - VZ =SIMP(statut='f',typ='C' ), - ), - LIAISON_DDL =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD', ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='C' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 03/10/2000 AUTEUR UFBHHLL C.CHAVANT -AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, - fr="Affectation de charges et conditions aux limites mécaniques fonction d une grandeur (temps, ...)", - docu="U4.44.01-F",reentrant='n', - regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE', - 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', - 'PRES_REP','FORCE_POUTRE','VITE_FACE','IMPE_FACE','ONDE_PLANE', - 'LIAISON_OBLIQUE','EPSI_INIT','LIAISON_GROUP','LIAISON_UNIF', - 'LIAISON_SOLIDE','FORCE_COQUE','LIAISON_COQUE','FORCE_TUYAU', - 'CONTACT'),), - MODELE =SIMP(statut='o',typ=modele ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - - DDL_IMPO =FACT(statut='f',min=01,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DX =SIMP(statut='f',typ=(fonction) ), - DY =SIMP(statut='f',typ=(fonction) ), - DZ =SIMP(statut='f',typ=(fonction) ), - DRX =SIMP(statut='f',typ=(fonction) ), - DRY =SIMP(statut='f',typ=(fonction) ), - DRZ =SIMP(statut='f',typ=(fonction) ), - GRX =SIMP(statut='f',typ=(fonction) ), - PRES =SIMP(statut='f',typ=(fonction) ), - PHI =SIMP(statut='f',typ=(fonction) ), - TEMP =SIMP(statut='f',typ=(fonction) ), - PRE1 =SIMP(statut='f',typ=(fonction) ), - PRE2 =SIMP(statut='f',typ=(fonction) ), - ), - LIAISON_UNIF =FACT(statut='f',min=01,max='**', - fr="Imposer une meme valeur (inconnue) à des ddls d un emsemble de noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), - LIAISON_SOLIDE =FACT(statut='f',min=01,max='**', - fr="Modéliser une partie indéformable d une structure", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), - ), - LIAISON_OBLIQUE =FACT(statut='f',min=01,max='**', - fr="Définir des relations linéaires entre certains ddls de couples de noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD'), - UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - ANGL_NAUT =SIMP(statut='o',typ='R',max=03), - DX =SIMP(statut='f',typ=(fonction) ), - DY =SIMP(statut='f',typ=(fonction) ), - DZ =SIMP(statut='f',typ=(fonction) ), - DRX =SIMP(statut='f',typ=(fonction) ), - DRY =SIMP(statut='f',typ=(fonction) ), - DRZ =SIMP(statut='f',typ=(fonction) ), - ), - LIAISON_COQUE =FACT(statut='f',min=01,max='**', - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), - ), - FACE_IMPO =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','TEMP','PRE1','PRE2','DNOR','DTAN'), - EXCLUS('DNOR','DX'), - EXCLUS('DNOR','DY'), - EXCLUS('DNOR','DZ'), - EXCLUS('DNOR','DRX'), - EXCLUS('DNOR','DRY'), - EXCLUS('DNOR','DRZ'), - EXCLUS('DTAN','DX'), - EXCLUS('DTAN','DY'), - EXCLUS('DTAN','DZ'), - EXCLUS('DTAN','DRX'), - EXCLUS('DTAN','DRY'), - EXCLUS('DTAN','DRZ'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DX =SIMP(statut='f',typ=(fonction) ), - DY =SIMP(statut='f',typ=(fonction) ), - DZ =SIMP(statut='f',typ=(fonction) ), - DRX =SIMP(statut='f',typ=(fonction) ), - DRY =SIMP(statut='f',typ=(fonction) ), - DRZ =SIMP(statut='f',typ=(fonction) ), - GRX =SIMP(statut='f',typ=(fonction) ), - PRES =SIMP(statut='f',typ=(fonction) ), - PHI =SIMP(statut='f',typ=(fonction) ), - TEMP =SIMP(statut='f',typ=(fonction) ), - PRE1 =SIMP(statut='f',typ=(fonction) ), - PRE2 =SIMP(statut='f',typ=(fonction) ), - DNOR =SIMP(statut='f',typ=(fonction) ), - DTAN =SIMP(statut='f',typ=(fonction) ), - ), - LIAISON_DDL =FACT(statut='f',min=01,max='**',fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction) ), - ), - LIAISON_GROUP =FACT(statut='f',min=01,max='**', - fr="Définir des relations linéaires entre certains ddls de couples de noeuds", - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_1 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction) ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max=03), - ANGL_NAUT =SIMP(statut='f',typ='R',max=03), - CENTRE =SIMP(statut='f',typ='R',max=03), - ), - - FORCE_NODALE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - MX =SIMP(statut='f',typ=(fonction) ), - MY =SIMP(statut='f',typ=(fonction) ), - MZ =SIMP(statut='f',typ=(fonction) ), - ANGL_NAUT =SIMP(statut='f',typ=(fonction),max=03 ), - ), - FORCE_INTERNE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - ), - FORCE_FACE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - ), - FORCE_ARETE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - MX =SIMP(statut='f',typ=(fonction) ), - MY =SIMP(statut='f',typ=(fonction) ), - MZ =SIMP(statut='f',typ=(fonction) ), - ), - FORCE_CONTOUR =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - MX =SIMP(statut='f',typ=(fonction) ), - MY =SIMP(statut='f',typ=(fonction) ), - MZ =SIMP(statut='f',typ=(fonction) ), - ), - PRES_REP =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('PRES','CISA_2D'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PRES =SIMP(statut='f',typ=(fonction) ), - CISA_2D =SIMP(statut='f',typ=(fonction) ), - ), - - FORCE_COQUE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('F1','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('F2','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('F3','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('MF1','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('MF2','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - MX =SIMP(statut='f',typ=(fonction) ), - MY =SIMP(statut='f',typ=(fonction) ), - MZ =SIMP(statut='f',typ=(fonction) ), - F1 =SIMP(statut='f',typ=(fonction) ), - F2 =SIMP(statut='f',typ=(fonction) ), - F3 =SIMP(statut='f',typ=(fonction) ), - MF1 =SIMP(statut='f',typ=(fonction) ), - MF2 =SIMP(statut='f',typ=(fonction) ), - PRES =SIMP(statut='f',typ=(fonction) ), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL", - into=("SUP","INF","MOY","MAIL") ), - ), - FORCE_POUTRE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), - PRESENT_ABSENT('FX','N','VY','VZ'), - PRESENT_ABSENT('FY','N','VY','VZ'), - PRESENT_ABSENT('FZ','N','VY','VZ'), - PRESENT_ABSENT('N','FX','FY','FZ'), - PRESENT_ABSENT('VY','FX','FY','FZ'), - PRESENT_ABSENT('VZ','FX','FY','FZ'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - N =SIMP(statut='f',typ=(fonction) ), - VY =SIMP(statut='f',typ=(fonction) ), - VZ =SIMP(statut='f',typ=(fonction) ), - ), - FORCE_TUYAU =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PRES =SIMP(statut='f',typ=(fonction) ), - ), - VITE_FACE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - VNOR =SIMP(statut='o',typ=(fonction) ), - ), - IMPE_FACE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - IMPE =SIMP(statut='o',typ=(fonction) ), - ), - ONDE_PLANE =FACT(statut='f',min=01,max='**', - DIRECTION =SIMP(statut='o',typ='R',max='**'), - TYPE_ONDE =SIMP(statut='o',typ='TXM' ), - FONC_SIGNAL =SIMP(statut='o',typ=(fonction) ), - DIST_ORIG =SIMP(statut='o',typ='R' ), - ), - EPSI_INIT =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - EPXX =SIMP(statut='f',typ=(fonction) ), - EPYY =SIMP(statut='f',typ=(fonction) ), - EPZZ =SIMP(statut='f',typ=(fonction) ), - EPXY =SIMP(statut='f',typ=(fonction) ), - EPXZ =SIMP(statut='f',typ=(fonction) ), - EPYZ =SIMP(statut='f',typ=(fonction) ), - ), - - CONTACT =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'), - ENSEMBLE('FROTTEMENT','COULOMB'), - EXCLUS('DIST_2','COEF_IMPO'), - EXCLUS('DIST_1','COEF_IMPO'), - EXCLUS('COEF_MULT_2','GROUP_MA_1'), - EXCLUS('COEF_MULT_2','MAILLE_1'), - EXCLUS('COEF_IMPO','GROUP_MA_1'), - EXCLUS('COEF_IMPO','MAILLE_1'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP") ), - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into=("NON","NODAL","NODAL_SYME","MAIT_ESCL","MAIT_ESCL_SYME") ), - RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_VOISIN", - into=("NOEUD_BOUCLE","NOEUD_VOISIN") ), - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("CONTRAINTE","LAGRANGIEN","PENALISATION") ), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - COULOMB =SIMP(statut='f',typ='R',max=1), - E_T =SIMP(statut='f',typ='R' ), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - VECT_NORM_2 =SIMP(statut='f',typ='R',max=03), - PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE",) ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**' ), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**' ), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**' ), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DIST_1 =SIMP(statut='f',typ=(fonction) ), - DIST_2 =SIMP(statut='f',typ=(fonction) ), - COEF_IMPO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - COEF_MULT_2 =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - ), - FLUX_THM_REP =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUN =SIMP(statut='f',typ=(fonction) ), - FLUN_HYDR1 =SIMP(statut='f',typ=(fonction) ), - FLUN_HYDR2 =SIMP(statut='f',typ=(fonction) ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 17/11/1999 AUTEUR CIBHHGB G.BERTRAND -AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther, - fr=" ", - docu=" ",reentrant='n', - regles=(AU_MOINS_UN('CARA_TORSION', ),), - MODELE =SIMP(statut='o',typ=modele ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - CARA_TORSION =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 28/11/2000 AUTEUR CIBHHLV L.VIVAN -AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther - ,fr="Affectation de charges et conditions aux limites thermiques constantes", - docu="U4.44.02-F",reentrant='n', - regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE', - 'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP', - 'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),), - MODELE =SIMP(statut='o',typ=(modele) ), - VERI_DDL =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="OUI"), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - LIAISON_DDL =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD', ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**', - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - ), - TEMP_IMPO =FACT(statut='f',min=01,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - TEMP =SIMP(statut='f',typ='R'), - TEMP_INF =SIMP(statut='f',typ='R'), - TEMP_SUP =SIMP(statut='f',typ='R'), ), - LIAISON_UNIF =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - ), - LIAISON_CHAMNO =FACT(statut='f',min=01,max='**', - CHAM_NO =SIMP(statut='o',typ=cham_no),# CO()# "il faut definir une structure de donnee generique chamno" - COEF_IMPO =SIMP(statut='o',typ='R' ), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - SOURCE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('SOUR','SOUR_CALCULEE',), - PRESENT_ABSENT('SOUR_CALCULEE','TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - SOUR =SIMP(statut='f',typ='R'), - SOUR_CALCULEE =SIMP(statut='f',typ=(cham_elem_sour_r) ), - ), - FLUX_REP =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','CARA_TORSION') ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUN =SIMP(statut='f',typ='R'), - FLUN_INF =SIMP(statut='f',typ='R'), - FLUN_SUP =SIMP(statut='f',typ='R'), - CARA_TORSION =SIMP(statut='f',typ=tabl_aire_int ), - ), - ECHANGE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'), - ENSEMBLE('COEF_H','TEMP_EXT',), - ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'), - ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - COEF_H =SIMP(statut='f',typ='R'), - TEMP_EXT =SIMP(statut='f',typ='R'), - COEF_H_INF =SIMP(statut='f',typ='R'), - TEMP_EXT_INF =SIMP(statut='f',typ='R'), - COEF_H_SUP =SIMP(statut='f',typ='R'), - TEMP_EXT_SUP =SIMP(statut='f',typ='R'), - ), - ECHANGE_PAROI =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - COEF_H =SIMP(statut='o',typ='R'), - TRAN =SIMP(statut='f',typ='R',max='**'), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - GRAD_TEMP_INIT =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUX_X =SIMP(statut='f',typ='R' ), - FLUX_Y =SIMP(statut='f',typ='R' ), - FLUX_Z =SIMP(statut='f',typ='R' ), - ), - LIAISON_GROUP =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_1 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP",) ), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max='**'), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - CONVECTION =FACT(statut='f',min=01,max='**', - VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ), - ), - RAYONNEMENT =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE',), - ENSEMBLE('SIGMA','EPSILON','TEMP_EXT'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - SIGMA =SIMP(statut='o',typ='R'), - EPSILON =SIMP(statut='o',typ='R'), - TEMP_EXT =SIMP(statut='o',typ='R'), - ), - LIAISON_MAIL =FACT(statut='f',min=01,max='**', - regles=(PRESENT_ABSENT('GROUP_MA_1','GROUP_MA_ESCL','MAILLE_ESCL', - 'GROUP_NO_ESCL','NOEUD_ESCL'), - PRESENT_ABSENT('MAILLE_1','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), - PRESENT_ABSENT('GROUP_MA_2','GROUP_MA_MAIT','MAILLE_MAIT'), - PRESENT_ABSENT('MAILLE_2','GROUP_MA_MAIT','MAILLE_MAIT'), - PRESENT_ABSENT('GROUP_NO_2','GROUP_MA_MAIT','MAILLE_MAIT'), - PRESENT_ABSENT('NOEUD_2','GROUP_MA_MAIT','MAILLE_MAIT'), - AU_MOINS_UN('GROUP_MA_1','MAILLE_1','GROUP_MA_MAIT','MAILLE_MAIT'), - AU_MOINS_UN('GROUP_MA_2','MAILLE_2','GROUP_NO_2', - 'NOEUD_2','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL', - 'NOEUD_ESCL'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_ESCL =SIMP(statut='f',typ=grno,max='**'), - NOEUD_ESCL =SIMP(statut='f',typ=no,max='**'), - TRAN =SIMP(statut='f',typ='R',max='**' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**' ), - CENTRE =SIMP(statut='f',typ='R',max='**' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 12/05/99 AUTEUR VABHHTS J.PELLET -AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=33,sd_prod=char_ther, - fr="Affectation de charges et conditions aux limites thermiques fonction dune grandeur (temps, ...)", - docu="U4.44.02-F",reentrant='n', - regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','FLUX_NL','ECHANGE', - 'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF', - 'GRAD_TEMP_INIT','RAYONNEMENT'),), - MODELE =SIMP(statut='o',typ=(modele) ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - LIAISON_DDL =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**',into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction) ), - ), - TEMP_IMPO =FACT(statut='f',min=01,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF','EVOL_THER'), - PRESENT_ABSENT('EVOL_THER','TEMP','TEMP_INF','TEMP_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - EVOL_THER =SIMP(statut='f',typ=(evol_ther) ), - DDL =SIMP(statut='f',typ='TXM',max='**',into=("TEMP",) ), - TEMP =SIMP(statut='f',typ=(fonction) ), - TEMP_INF =SIMP(statut='f',typ=(fonction) ), - TEMP_SUP =SIMP(statut='f',typ=(fonction) ), - ), - LIAISON_UNIF =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - ), - SOURCE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - SOUR =SIMP(statut='o',typ=(fonction) ), - ), - FLUX_REP =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE',), - AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','FLUX_X','FLUX_Y','FLUX_Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUN =SIMP(statut='f',typ=(fonction) ), - FLUN_INF =SIMP(statut='f',typ=(fonction) ), - FLUN_SUP =SIMP(statut='f',typ=(fonction) ), - FLUX_X =SIMP(statut='f',typ=(fonction) ), - FLUX_Y =SIMP(statut='f',typ=(fonction) ), - FLUX_Z =SIMP(statut='f',typ=(fonction) ), - ), - FLUX_NL =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUN =SIMP(statut='o',typ=(fonction) ), - ), - ECHANGE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE',), - AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'), - ENSEMBLE('COEF_H','TEMP_EXT'), - ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'), - ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - COEF_H =SIMP(statut='f',typ=(fonction) ), - TEMP_EXT =SIMP(statut='f',typ=(fonction) ), - COEF_H_INF =SIMP(statut='f',typ=(fonction) ), - TEMP_EXT_INF =SIMP(statut='f',typ=(fonction) ), - COEF_H_SUP =SIMP(statut='f',typ=(fonction) ), - TEMP_EXT_SUP =SIMP(statut='f',typ=(fonction) ), - ), - ECHANGE_PAROI =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - COEF_H =SIMP(statut='o',typ=(fonction) ), - TRAN =SIMP(statut='f',typ='R',max='**'), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - GRAD_TEMP_INIT =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUX_X =SIMP(statut='f',typ=(fonction) ), - FLUX_Y =SIMP(statut='f',typ=(fonction) ), - FLUX_Z =SIMP(statut='f',typ=(fonction) ), - ), - LIAISON_GROUP =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_1 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction) ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max='**'), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - CONVECTION =FACT(statut='f',min=01,max='**', - VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ), - ), - RAYONNEMENT =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'), - ENSEMBLE('SIGMA','EPSILON','TEMP_EXT'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - SIGMA =SIMP(statut='o',typ=(fonction) ), - EPSILON =SIMP(statut='o',typ=(fonction) ), - TEMP_EXT =SIMP(statut='o',typ=(fonction) ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 24/09/97 AUTEUR CIBHHLV L.VIVAN -AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, - fr="Affectation de caractéristiques de matériaux à un maillage", - docu="U4.43.03-F",reentrant='n', - MAILLAGE =SIMP(statut='o',typ=maillage), - MODELE =SIMP(statut='f',typ=modele), - AFFE =FACT(statut='o',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - MATER =SIMP(statut='o',typ=mater), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), -) ; -#& MODIF COMMANDE DATE 26/09/2000 AUTEUR CIBHHLV L.VIVAN -AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-F", - fr="Affectation des éléments finis sur le maillage",reentrant='n', - regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),), - MAILLAGE =SIMP(statut='o',typ=(maillage) ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - VERIF =SIMP(statut='f',typ='TXM',max='**',into=("MAILLE","NOEUD") ), - AFFE_SOUS_STRUC =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('TOUT','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PHENOMENE =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ), - ), - AFFE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - PHENOMENE =SIMP(statut='o',typ='TXM', - into=("MECANIQUE","THERMIQUE","ACOUSTIQUE","NON_LOCAL") ), - b_mecanique =BLOC( condition = "PHENOMENE=='MECANIQUE'", - fr="modelisations mécaniques", - MODELISATION =SIMP(statut='o',typ='TXM', into=( - "2D_CONTACT", - "2D_DIS_T", - "2D_DIS_TR", - "2D_FLUI_ABSO", - "2D_FLUI_PESA", - "2D_FLUI_STRU", - "2D_FLUIDE", - "3D", - "3D_ABSO", - "3D_CONTACT", - "3D_FAISCEAU", - "3D_FLUI_ABSO", - "3D_FLUIDE", - "3D_HHM" , - "3D_HM", - "3D_INCO", - "3D_JOINT_CT", - "3D_SI", - "3D_THH", - "3D_THHM", - "3D_THM", - "APPUI_REP", - "ASSE_GRIL", - "AXIS", - "AXIS_FLUI_STRU", - "AXIS_FLUIDE", - "AXIS_FOURIER", - "AXIS_HHM", - "AXIS_HM", - "AXIS_INCO", - "AXIS_SI", - "AXIS_THH", - "AXIS_THHM", - "AXIS_THM", - "BARRE", - "C_PLAN", - "CABLE", - "CABLE_POULIE", - "COQUE_3D", - "COQUE_AXIS", - "COQUE_C_PLAN", - "COQUE_D_PLAN", - "D_PLAN", - "D_PLAN_ABSO", - "D_PLAN_HHM", - "D_PLAN_HM", - "D_PLAN_SI", - "D_PLAN_THH", - "D_PLAN_THHM", - "D_PLAN_THM", - "DIS_T", - "DIS_TR", - "DKT", - "DST", - "FLUI_STRU", - "GRILLE", - "PLAN_INCO", - "POU_C_T", - "POU_D_E", - "POU_D_T", - "POU_D_T_GD", - "POU_D_TG", - "Q4G", - "TUYAU", - "TUYAU_6M" - ) ) ), - - b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'", - fr="modelisations thermiques", - MODELISATION =SIMP(statut='o',typ='TXM',into=( - "3D", - "3D_DIAG", - "AXIS", - "AXIS_DIAG", - "AXIS_FOURIER", - "COQUE", - "COQUE_AXIS", - "COQUE_PLAN", - "PLAN", - "PLAN_DIAG", - ),),), - - b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'", - fr="modelisations acoustiques", - MODELISATION =SIMP(statut='o',typ='TXM',into=( - "3D", - "PLAN" - ), ),), - - b_non_local =BLOC( condition = "PHENOMENE=='NON_LOCAL'", - fr="modelisations non locales", - MODELISATION =SIMP(statut='o',typ='TXM',into=( - "3D", - "AXIS", - "C_PLAN", - "D_PLAN", - ) ), ), - ), -) ; -#& MODIF COMMANDE DATE 25/10/93 AUTEUR VABHHTS J.PELLET -AIDE=PROC(nom="AIDE",op=42,docu="U4.02.01-F", - fr="Interrogation sur le catalogue des commandes et les concepts produits", - regles=(AU_MOINS_UN('COMMANDE','CONCEPT','TYPE_ELEM', ),), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - TYPE_ELEM =FACT(fr="couple type_elem option", - statut='f',min=01,max=01, - INITEL =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON",) ), - ), - COMMANDE =FACT(statut='f',min=01,max='**', - NOM =SIMP(fr="liste des noms de commande", - statut='f',typ='TXM',max='**',defaut="*"), - OPTION =SIMP(fr="option d'édition de commande", - statut='f',typ='TXM',defaut="CATALOGUE", - into=("CATALOGUE","A_REMPLIR","NUMERO",) ), - ), - CONCEPT =FACT(statut='f',min=01,max='**', - NOM =SIMP(fr="liste des noms de concept", - statut='f',typ='TXM',max='**',defaut="*"), - OPTION =SIMP(fr="option d'édition de concept", - statut='f',typ='TXM',defaut="TOUT_TYPE", - into=("TOUT_TYPE","CREER","A_CREER",) ), - ), -) ; -#& MODIF COMMANDE DATE 18/03/92 AUTEUR INCONNU INCONNU -ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage, - fr="Assembler deux maillages sous un seul nom", - docu="U4.23.03-E",reentrant='n', - MAILLAGE =SIMP(statut='o',typ=maillage,min=02,max=02 ), -) ; -#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN -ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=matr_asse_gene_r, - fr="Assemblage des matrices généralisées de macro éléments pour construction de la matrice globale généralisée", - docu="U4.65.04-D",reentrant='n', - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - OPTION =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","MASS_GENE","AMOR_GENE") ), -) ; -#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN -def asse_matrice_prod(MATR_ELEM,**args): - if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r - if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c - if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r - if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c - raise AsException("type de concept resultat non prevu") - -ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod, - fr="Construction d une matrice assemblée",docu="U4.61.22-F",reentrant='n', - MATR_ELEM =SIMP(statut='o', - typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ), - NUME_DDL =SIMP(statut='o',typ=nume_ddl), - CHAR_CINE =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 30/06/93 AUTEUR T8BHHTK T.KERBER -ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene, - fr="Assemblage de vecteurs de chargement en coordonnées généralisées", - docu="U4.65.05-D",reentrant='n', - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - CHAR_SOUS_STRUC =FACT(statut='o',min=01,max='**', - SOUS_STRUC =SIMP(statut='o',typ='TXM' ), - VECT_ASSE =SIMP(statut='o',typ=cham_no_depl_r ), - ), -) ; -#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN -def asse_vecteur_prod(VECT_ELEM,**args): - if AsType(VECT_ELEM) == vect_elem_depl_r : return cham_no_depl_r - if AsType(VECT_ELEM) == vect_elem_temp_r : return cham_no_temp_r - if AsType(VECT_ELEM) == vect_elem_pres_r : return cham_no_pres_r - if AsType(VECT_ELEM) == vect_elem_pres_c : return cham_no_pres_c - raise AsException("type de concept resultat non prevu : %s" %`AsType(VECT_ELEM)`) - -ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=asse_vecteur_prod, - fr="Assemblage d un second membre",docu="U4.61.23-F",reentrant='n', - VECT_ELEM =SIMP(statut='o',typ=vect_elem,max='**'), - NUME_DDL =SIMP(statut='o',typ=nume_ddl ), - INFO =SIMP(statut='f',typ='I',into=(1,2,) ), -) ; -#& MODIF COMMANDE DATE 28/09/98 AUTEUR ACBHHCD G.DEVESA -CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8, - fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G", - docu="U4.52.13-C",reentrant='n', - ENER_SOL =FACT(statut='o',min=01,max=01, - regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'), - PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'), -# Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ') - PRESENT_PRESENT('KRX','KRY'), - PRESENT_PRESENT('KRX','KRZ'), - PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'), - PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'), - PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),), - METHODE =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - GROUP_NO_RADIER =SIMP(statut='f',typ=grno,max='**'), - GROUP_MA_RADIER =SIMP(statut='f',typ=grma,max='**'), - FONC_GROUP =SIMP(statut='f',typ=fonction ), - COEF_GROUP =SIMP(statut='f',typ='R',max='**'), - KX =SIMP(statut='o',typ='R' ), - KY =SIMP(statut='o',typ='R' ), - KZ =SIMP(statut='o',typ='R' ), - KRX =SIMP(statut='f',typ='R' ), - KRY =SIMP(statut='f',typ='R' ), - KRZ =SIMP(statut='f',typ='R' ), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - COOR_CENTRE =SIMP(statut='f',typ='R',max=03), - ), - AMOR_INTERNE =FACT(statut='o',min=01,max=01, - ENER_POT =SIMP(statut='o',typ=tabl_ener_pot ), - GROUP_MA =SIMP(statut='o',typ=grma,max='**'), - AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), - ), - AMOR_SOL =FACT(statut='o',min=01,max=01, - AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FONC_AMOR_GEO =SIMP(statut='o',typ=fonction,max='**' ), - HOMOGENE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 0.3 ), - ), -) ; -#& MODIF COMMANDE DATE 29/08/2000 AUTEUR ADBHHPM P.MASSIN -def calc_cham_elem_prod(OPTION,**args): - if OPTION == "EQUI_ELGA_SIGM" : return cham_elem_sief_r - if OPTION == "EQUI_ELNO_SIGM" : return cham_elem_sief_r - if OPTION == "SIGM_ELNO_DEPL" : return cham_elem_sief_r - if OPTION == "SIGM_ELNO_LAGR" : return cham_elem_sief_r - if OPTION == "SIPO_ELNO_DEPL" : return cham_elem_sief_r - if OPTION == "SIEF_ELGA_DEPL" : return cham_elem_sief_r - if OPTION == "SIEF_ELGA_LAGR" : return cham_elem_sief_r - if OPTION == "SIGM_ELNO_CART" : return cham_elem_sief_r - if OPTION == "EFGE_ELNO_CART" : return cham_elem_sief_r - if OPTION == "EFGE_ELNO_DEPL" : return cham_elem_sief_r - if OPTION == "EQUI_ELGA_EPSI" : return cham_elem_epsi_r - if OPTION == "EQUI_ELNO_EPSI" : return cham_elem_epsi_r - if OPTION == "DEGE_ELNO_DEPL" : return cham_elem_epsi_r - if OPTION == "EPSI_ELNO_DEPL" : return cham_elem_epsi_r - if OPTION == "FLUX_ELGA_TEMP" : return cham_elem_flux_r - if OPTION == "FLUX_ELNO_TEMP" : return cham_elem_flux_r - if OPTION == "SOUR_ELGA_ELEC" : return cham_elem_sour_r - if OPTION == "ENEL_ELGA" : return cham_elem_ener_r - if OPTION == "ENEL_ELNO_ELGA" : return cham_elem_ener_r - if OPTION == "EPOT_ELEM_DEPL" : return cham_elem_ener_r - if OPTION == "ECIN_ELEM_DEPL" : return cham_elem_ener_r - if OPTION == "PRES_ELNO_DBEL" : return cham_elem_dbel_r - if OPTION == "PRES_ELNO_REEL" : return cham_elem_pres_r - if OPTION == "PRES_ELNO_IMAG" : return cham_elem_pres_r - if OPTION == "PRES_DBEL_DEPL" : return cham_elem_dbel_r - if OPTION == "ENDO_ELNO_SIGM" : return cham_elem_sief_r - if OPTION == "COOR_ELGA" : return cham_elem_geom_r - raise AsException("type de concept resultat non prevu") - -CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod, - fr="Calcul de champs par éléments (contraintes, déformations ou flux) à partir de champs solution (déplacement ou température) ou de champs par éléments", - docu="U4.81.03-F",reentrant='n', - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - -# -# -# introduire un mot cle de type modelisation : mécanique,thermique,... -# - - OPTION =SIMP(statut='o',typ='TXM', - into=("DEGE_ELNO_DEPL","EFGE_ELNO_DEPL","EPOT_ELEM_DEPL", - "EPSI_ELNO_DEPL","PRES_DBEL_DEPL","SIGM_ELNO_DEPL", - "SIEF_ELGA_DEPL","SIEF_ELGA_LAGR","SIGM_ELNO_LAGR", - "EFGE_ELNO_CART","ENDO_ELNO_SIGM","EQUI_ELGA_EPSI", - "EQUI_ELGA_SIGM","EQUI_ELNO_EPSI","EQUI_ELNO_SIGM", - "SIGM_ELNO_CART","ECIN_ELEM_DEPL","SIPO_ELNO_DEPL", - "FLUX_ELNO_TEMP","FLUX_ELGA_TEMP","SOUR_ELGA_ELEC", - "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG", - "COOR_ELGA","ENEL_ELGA","ENEL_ELNO_ELGA"), ), - DEPL =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c)), - PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0), - CHAM_ELEM =SIMP(statut='f',typ=(cham_elem_sief_r,cham_elem_epsi_r) ), - FREQ =SIMP(statut='f',typ='R'), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - EXCIT =FACT(statut='f',min=01,max='**', - regles=(EXCLUS('FONC_MULT','COEF_MULT', ),), - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou)), - FONC_MULT =SIMP(statut='f',typ=fonction), - COEF_MULT =SIMP(statut='f',typ='R'), - ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0), - ACCE =SIMP(statut='f',typ=cham_no_depl_r), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - - TEMP =SIMP(statut='f',typ=(cham_no_temp_r) ), - - PRES =SIMP(statut='f',typ=(cham_no_pres_c) ), - - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - ANGLE =SIMP(statut='f',typ='I',defaut= 0), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL", - into=("SUP","INF","MOY","MAIL"), ), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -def calc_char_cine_prod(CHAR_CINE,**args): - if AsType(CHAR_CINE) == char_cine_meca : return cham_no_depl_r - if AsType(CHAR_CINE) == char_cine_ther : return cham_no_temp_r - if AsType(CHAR_CINE) == char_cine_acou : return cham_no_pres_c - raise AsException("type de concept resultat non prevu") - -CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=calc_char_cine_prod, - fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)", - docu="U4.61.03-E",reentrant='n', - NUME_DDL =SIMP(statut='o',typ=nume_ddl ), - CHAR_CINE =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ) ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 08/03/94 AUTEUR VABHHT2 G.BERTRAND -def calc_char_seisme_prod(MATR_MASS,**args ): - if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_depl_r - raise AsException("type de concept resultat non prevu") - -CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_prod, - fr="Calcul du chargement sismique (forces d inertie fictives) pour une étude ultérieure de la réponse en mouvement relatif par rapport aux appuis", - docu="U4.63.01-E",reentrant='n', - regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),), - MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ), - DIRECTION =SIMP(statut='o',typ='R',max=06,fr="Directions du séisme imposé"), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MODE_STAT =SIMP(statut='f',typ=mode_stat ), - b_mode_stat =BLOC ( condition = "MODE_STAT != None", - regles=(UN_PARMI('NOEUD','GROUP_NO' ),), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 29/08/2000 AUTEUR ADBHHPM P.MASSIN -def calc_elem_prod(RESULTAT,**args): - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == evol_ther : return evol_ther - if AsType(RESULTAT) == dyna_trans : return dyna_trans - if AsType(RESULTAT) == dyna_harmo : return dyna_harmo - if AsType(RESULTAT) == acou_harmo : return acou_harmo - if AsType(RESULTAT) == mode_meca : return mode_meca - if AsType(RESULTAT) == mode_flamb : return mode_flamb - if AsType(RESULTAT) == mode_acou : return mode_acou - if AsType(RESULTAT) == mode_stat : return mode_stat - if AsType(RESULTAT) == mult_elas : return mult_elas - if AsType(RESULTAT) == fourier_elas : return fourier_elas - if AsType(RESULTAT) == base_modale : return base_modale - raise AsException("type de concept resultat non prevu") - -CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,docu="U4.81.01-F",reentrant='f', - fr="Compléter un résultat en calculant des champs par éléments (contraintes, déformations,... )", - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - - INST =SIMP(statut='f',typ='R',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - LIST_FREQ =SIMP(statut='f',typ=listr8), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - - LIST_ORDRE =SIMP(statut='f',typ=listis), - - OPTION =SIMP(statut='o',typ='TXM',max='**', - into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "SIGM_ELNO_TUYO","SIGM_ELNO_CART","DEGE_ELNO_DEPL","EFGE_ELNO_CART", - "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL", - "EPSP_ELNO","EPSP_ELGA","ECIN_ELEM_DEPL","SIPO_ELNO_DEPL", - "EPGR_ELNO","EPGR_ELGA","DURT_ELGA_META","DURT_ELNO_META", - "SIGM_ELNO_COQU","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF", - "SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2", - "VNOR_ELEM_DEPL","SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA", - "VARI_ELNO_ELGA","VARI_ELNO_TUYO","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM", - "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","ENEL_ELGA","ENEL_ELNO_ELGA","SIEF_ELNO_ELGA", - "DEUL_ELGA_TEMP","DETE_ELNO_DLTE","DEUL_ELGA_DEPL","DEDE_ELNO_DLDE", - "DLSI_ELGA_DEPL","DESI_ELNO_DLSI","PMPB_ELNO_SIEF","PMPB_ELGA_SIEF", - "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP", - "SOUR_ELGA_ELEC", - "PRES_ELNO_DBEL","PRES_DBEL_DEPL","PRES_ELNO_REEL","PRES_ELNO_IMAG", - "INTE_ELNO_ACTI","INTE_ELNO_REAC", - ) ), - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca, - mode_stat,evol_noli,mult_elas,fourier_elas, - evol_ther,base_modale, - acou_harmo,mode_acou,mode_flamb) ), - EXCIT =FACT(statut='f',min=01,max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ), - FONC_MULT =SIMP(statut='f',typ=fonction), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ), - NORME =SIMP(statut='f',typ='TXM',defaut="VMIS", - into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ), - - ANGLE =SIMP(statut='f',typ='I',defaut= 0 ), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ), - SENSIBILITE =FACT(statut='f',min=01,max=01, - THETA =SIMP(statut='f',typ=(theta_geom) ), - ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - EFGE_REPERE =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('ANGL_REP','VECT_X_Y','VECT_X_Z'),), - ANGL_REP =SIMP(statut='f',typ='R',max='**'), - VECT_X_Y =SIMP(statut='f',typ='R',max='**'), - VECT_X_Z =SIMP(statut='f',typ='R',max='**'), - ), - - TEMP_INIT =FACT(statut='f',min=01,max='**', - regles=(EXCLUS('META_INIT','EVOL_THER'),), - META_INIT =SIMP(statut='f',typ=carte_meta_r), - EVOL_THER =SIMP(statut='f',typ=evol_ther,), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHLV L.VIVAN -CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=cham_elem_dommag,reentrant='n', - fr="Calcul d un champ de dommage subi par une structure", - docu="U4.83.02-C", - regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),), - OPTION =SIMP(statut='o',typ='TXM', - into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM", - "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI", - "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ), - HISTOIRE =FACT(statut='o',min=01,max=01, - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,evol_noli) ), - EQUI_GD =SIMP(statut='f',typ='TXM',defaut="VMIS_SG",into=("VMIS_SG","INVA_2_SG") ), - ), - DOMMAGE =SIMP(statut='o',typ='TXM', - into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON","TAHERI_MIXTE",) ), - MATER =SIMP(statut='o',typ=(mater) ), - TAHERI_NAPPE =SIMP(statut='f',typ=(fonction) ), - TAHERI_FONC =SIMP(statut='f',typ=(fonction) ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHAB N.RAHNI -CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu, - fr="Calcul des paramètres modaux d une structure soumise à un écoulement, en prenant en compte les forces fluidélastiques", - docu="U4.66.02-C",reentrant='n', - VITE_FLUI =FACT(statut='o',min=01,max=01, - fr="Définir la plage de vitesse fluide étudiée", - VITE_MIN =SIMP(statut='o',typ='R' ), - VITE_MAX =SIMP(statut='o',typ='R' ), - NB_POIN =SIMP(statut='o',typ='I' ), - ), - BASE_MODALE =FACT(statut='o',min=01,max=01, - - regles=(UN_PARMI('AMOR_REDUIT','AMOR_UNIF'),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - AMOR_UNIF =SIMP(statut='f',typ='R' ), - ), - TYPE_FLUI_STRU =SIMP(statut='o',typ=type_flui_stru ), - IMPRESSION =FACT(statut='f',min=01,max=01, - fr="Choix des informations à imprimer dans le fichier RESULTAT", - PARA_COUPLAGE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - DEFORMEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=fonction, - fr="Construire un concept de type fonction à partir d une fonction réelle de la variable réelle définie par une FORMULE", - docu="U4.32.01-D",reentrant='f', - regles=(UN_PARMI('VALE_R','LIST_PARA'),), - FONCTION =SIMP(statut='o',typ=fonction ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - VALE_R =SIMP(statut='f',typ='R',max='**'), - LIST_PARA =SIMP(statut='f',typ=listr8 ), - INTERPOL =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG","INT") ), - PROL_DROIT =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 20/06/2000 AUTEUR ACBHHCD G.DEVESA -def calc_fonction_prod(DERIVE,EXTRACTION,INTEGRE,RMS,MAX,COMB,COMB_C,ENVELOPPE,SPEC_OSCI,FFT,COMPOSE,**args): - if (RMS != None) : return tabl_fonc_rms - if (MAX != None) : return tabl_fonc_max - if (INTEGRE != None) : return fonction - if (DERIVE != None) : return fonction - if (COMB != None) : return fonction - if (ENVELOPPE != None) : return fonction - if (EXTRACTION != None) : return fonction - if (SPEC_OSCI != None) : return fonction - if (COMB_C != None) : return fonction_c - if (COMPOSE != None) : return fonction - if (FFT != None) : - vale=FFT.get_child('FONCTION').get_valeur() - if (AsType(vale) == fonction ) : return fonction_c - if (AsType(vale) == fonction_c) : return fonction - raise AsException("type de concept resultat non prevu") - -CALC_FONCTION=OPER(nom="CALC_FONCTION",op= 91,sd_prod=calc_fonction_prod - ,fr="Opérations mathématiques sur des concepts de type fonction", - docu="U4.32.04-E",reentrant='n', - regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','MAX','COMB','ENVELOPPE','RMS', - 'COMB_C','COMPOSE','EXTRACTION','ASSE','FFT' ),), - FFT =FACT(statut='f',min=01,max=01,fr="Calcul de la transformee de Fourier ou de son inverse", - FONCTION =SIMP(statut='o',typ=(fonction,fonction_c) ) - ), - DERIVE =FACT(statut='f',min=01,max=01,fr="Calcul de la dérivée d une fonction", - METHODE =SIMP(statut='f',typ='TXM',defaut="DIFF_CENTREE",into=("DIFF_CENTREE",) ), - FONCTION =SIMP(statut='o',typ=fonction ), - ), - INTEGRE =FACT(statut='f',min=01,max=01,fr="Calcul de l intégrale d une fonction", - METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), - FONCTION =SIMP(statut='o',typ=fonction), - COEF =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ), - ), - RMS =FACT(statut='f',min=01,max=01,fr="Calcul de la valeur RMS d une fonction", - METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), - FONCTION =SIMP(statut='o',typ=fonction ), - INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ), - INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ), - b_inst =BLOC ( condition = "(INST_INIT != None) or (INST_FIN != None)", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), - SPEC_OSCI =FACT(statut='f',min=01,max=01,fr="Calcul du spectre d oscillateur", - METHODE =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ), - FONCTION =SIMP(statut='o',typ=fonction ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - FREQ =SIMP(statut='f',typ='R',max='**'), - NORME =SIMP(statut='f',typ='R',defaut= 9.81,fr="Valeur de la norme du spectre d oscillateur" ), - NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ), - NATURE_FONC =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ), - ), - MAX =FACT(statut='f',min=01,max=01,fr="Calcul des extrémas locaux d une fonction", - FONCTION =SIMP(statut='o',typ=fonction ), - ), - COMB =FACT(statut='f',min=01,max='**',fr="Calcul d une combinaison linéaire réelle de fonctions", - FONCTION =SIMP(statut='o',typ=fonction ), - COEF =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), - ), - COMB_C =FACT(statut='f',min=01,max='**',fr="Calcul d une combinaison linéaire complexe de fonctions", - regles=(UN_PARMI('COEF_R','COEF_C'),), - FONCTION =SIMP(statut='o',typ=(fonction, fonction_c) ), - COEF_R =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), - COEF_C =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ), - ), - b_comb =BLOC ( condition = " (COMB != None) or (COMB_C != None)", - LIST_PARA =SIMP(statut='f',typ=listr8 ), - ), - COMPOSE =FACT(statut='f',min=01,max=01,fr="Calcul de la composition de deux fonctions FONC_RESU(FONC_PARA)", - FONC_RESU =SIMP(statut='o',typ=fonction), - FONC_PARA =SIMP(statut='o',typ=fonction), - ), - EXTRACTION =FACT(statut='f',min=01,max=01,fr="Opération d extraction sur une fonction complexe", - FONCTION =SIMP(statut='o',typ=fonction_c), - PARTIE =SIMP(statut='o',typ='TXM',into=("REEL","IMAG","MODULE","PHASE"),fr="Partie à extraire"), - ), - ENVELOPPE =FACT(statut='f',min=01,max=01,fr="Calcul de l enveloppe d une famille de fonctions", - FONCTION =SIMP(statut='o',typ=fonction,max='**' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ), - ), - ASSE =FACT(statut='f',min=01,max=01,fr="Création à partir de la concatenation de fonctions", - FONCTION =SIMP(statut='o',typ=fonction,max='**' ), - SURCHARGE =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")), - ), - NOM_PARA =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS", - "AMOR","ABSC") ), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ), - PROL_DROIT =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS", - "AMOR","ABSC") ), - INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ), - PROL_DROIT_FONC =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 03/10/2000 AUTEUR VABHHTS J.PELLET -CALC_G_LOCAL_T=OPER(nom="CALC_G_LOCAL_T",op=77,sd_prod=tabl_calc_g_loca, - fr="Calcul du taux de restitution local d énergie",docu="U4.82.04-E",reentrant='n', - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - FOND =SIMP(statut='o',typ=fond_fiss), - regles=(UN_PARMI('RESULTAT','DEPL'), - UN_PARMI('R_INF','R_INF_FO'), - PRESENT_PRESENT('R_INF','R_SUP'), - PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ), - - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli),), - b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - - CHARGE =SIMP(statut='f',typ=char_meca,max='**'), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ), - - COMP_ELAS =FACT(statut='f',min=01,max=01, - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - - COMP_INCR =FACT(statut='f',min=01,max=01, - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - VMIS_CINE_LINE =SIMP(statut='f',typ='I',defaut=7,into=(7,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - - ETAT_INIT =FACT(statut='f',min=01,max=01, - SIGM =SIMP(statut='f',typ=cham_elem_sief_r), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - ), - - OPTION =SIMP(statut='f',typ='TXM',defaut="CALC_G",into=("CALC_G","CALC_G_LGLO") ), - b_g_lglo =BLOC(condition="OPTION=='CALC_G_LGLO'", - PROPAGATION =SIMP(statut='o',typ='R'), - THETA =SIMP(statut='o',typ=theta_geom), - DIRE_THETA =SIMP(statut='f',typ=cham_no_depl_r), - ), - - LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO",) ), - - DEGRE =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ), - - R_INF =SIMP(statut='f',typ='R'), - R_SUP =SIMP(statut='f',typ='R'), - R_INF_FO =SIMP(statut='f',typ=fonction), - R_SUP_FO =SIMP(statut='f',typ=fonction), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 03/10/2000 AUTEUR VABHHTS J.PELLET -CALC_G_THETA_T=OPER(nom="CALC_G_THETA_T",op=53,sd_prod=tabl_calc_g_th, - fr="Calcul du taux de restitution d énergie par la méthode theta en thermo-élasticité en 2D ou en 3D", - docu="U4.82.03-E",reentrant='n', - regles=(UN_PARMI('RESULTAT','DEPL'), - EXCLUS('COMP_ELAS','COMP_INCR'),), - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - THETA =SIMP(statut='o',typ=theta_geom), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli),), - - b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - - CHARGE =SIMP(statut='f',typ=char_meca,max='**'), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ), - - COMP_ELAS =FACT(statut='f',min=01,max=01, - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - COMP_INCR =FACT(statut='f',min=01,max=01, - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - VMIS_CINE_LINE =SIMP(statut='f',typ='I',defaut=7,into=(7,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - ETAT_INIT =FACT(statut='f',min=01,max=01, - SIGM =SIMP(statut='f',typ=cham_elem_sief_r), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="CALC_G", - into=("CALC_G","CALC_G_LAGR","CALC_K_G","G_BILINEAIRE","CALC_G_MAX") ), - b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'", - BORNES =FACT(statut='o',min=01,max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - ), - b_calc_k_g =BLOC(condition="OPTION=='CALC_K_G'", - FOND =SIMP(statut='o',typ=fond_fiss), - ), - b_calc_g_lagr =BLOC(condition="OPTION=='CALC_G_LAGR'", - PROPAGATION =SIMP(statut='o',typ='R'), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 04/02/98 AUTEUR CIBHHLV L.VIVAN -CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp, - fr="Calcul d une matrice interspectrale d une fonction du temps", - docu="U4.36.03-E",reentrant='n', - INST_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - INST_FIN =SIMP(statut='o',typ='R' ), - DUREE_ANALYSE =SIMP(statut='f',typ='R' ), - DUREE_DECALAGE =SIMP(statut='f',typ='R' ), - NB_POIN =SIMP(statut='o',typ='I' ), - FONCTION =SIMP(statut='o',typ=fonction,max='**' ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 19/05/2000 AUTEUR JFBHHUC C.ROSE -CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r, - fr="Calcul des matrices de masse, d amortissement ou de raideur ajoutées", - docu="U4.66.01-C",reentrant='n', - regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'), - PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'), - PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),), - MODELE_FLUIDE =SIMP(statut='o',typ=modele ), - MODELE_INTERFACE=SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_ther ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - CHAM_NO =SIMP(statut='f',typ=cham_no_depl_r ), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ), - DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NUME_MODE_MECA =SIMP(statut='f',typ='I',max='**'), - OPTION =SIMP(statut='o',typ='TXM',into=("MASS_AJOU","AMOR_AJOU","RIGI_AJOU") ), - POTENTIEL =SIMP(statut='f',typ=evol_ther ), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - - SOLVEUR =FACT(statut='d',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - ), - b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), -) ; -#& MODIF COMMANDE DATE 03/10/2000 AUTEUR VABHHTS J.PELLET -def calc_matr_elem_prod(OPTION,**args): - if OPTION == "RIGI_MECA" : return matr_elem_depl_r - if OPTION == "RIGI_FLUI_STRU" : return matr_elem_depl_r - if OPTION == "RIGI_MECA_LAGR" : return matr_elem_depl_r - if OPTION == "MASS_MECA" : return matr_elem_depl_r - if OPTION == "MASS_FLUI_STRU" : return matr_elem_depl_r - if OPTION == "RIGI_GEOM" : return matr_elem_depl_r - if OPTION == "RIGI_ROTA" : return matr_elem_depl_r - if OPTION == "AMOR_MECA" : return matr_elem_depl_r - if OPTION == "IMPE_MECA" : return matr_elem_depl_r - if OPTION == "ONDE_FLUI" : return matr_elem_depl_r - if OPTION == "RIGI_MECA_HYST" : return matr_elem_depl_c - if OPTION == "RIGI_THER" : return matr_elem_temp_r - if OPTION == "MASS_THER" : return matr_elem_temp_r - if OPTION == "MASS_MECA_DIAG" : return matr_elem_depl_r - if OPTION == "RIGI_ACOU" : return matr_elem_pres_c - if OPTION == "MASS_ACOU" : return matr_elem_pres_c - if OPTION == "AMOR_ACOU" : return matr_elem_pres_c - raise AsException("type de concept resultat non prevu") - -CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod - ,fr="Calcul des matrices élémentaires",docu="U4.61.01-F",reentrant='n', - OPTION =SIMP(statut='o',typ='TXM', - into=("RIGI_MECA","MASS_MECA","RIGI_GEOM", - "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA", - "ONDE_FLUI","MASS_FLUI_STRU","RIGI_FLUI_STRU", - "RIGI_ROTA","MASS_MECA_DIAG","RIGI_ACOU", - "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST", - "RIGI_MECA_LAGR") ), - - b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'", - regles=(AU_MOINS_UN('MODELE','CHARGE' ),), - MODELE =SIMP(statut='f',typ=modele ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CHARGE =SIMP(statut='f',typ=char_meca,max='**' ), - b_charge =BLOC (condition = "CHARGE != None", - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ), - - b_rigi_meca_lagr =BLOC(condition = "OPTION=='RIGI_MECA_LAGR'", - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_meca,max='**' ), - b_charge =BLOC(condition = "CHARGE != None", - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - THETA =SIMP(statut='o',typ=theta_geom ), - PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')", - regles=(AU_MOINS_UN('MODELE','CHARGE'),), - MODELE =SIMP(statut='f',typ=modele ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - ), - CHARGE =SIMP(statut='f',typ=char_meca,max='**' ), - b_charge =BLOC(condition = "CHARGE != None", - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ), - - b_rigi_geom =BLOC(condition = "OPTION=='RIGI_GEOM'", - MODELE =SIMP(statut='o',typ=modele ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - - b_rigi_rota =BLOC(condition = "OPTION=='RIGI_ROTA'", - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca,max='**' ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_amor_meca =BLOC(condition = "OPTION=='AMOR_MECA'", - regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'), - ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ), - MODELE =SIMP(statut='o',typ=modele ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - CHARGE =SIMP(statut='f',typ=char_meca ,max='**' ), - ), - - b_rigi_meca_hyst =BLOC( condition = "OPTION=='RIGI_MECA_HYST'", - MODELE =SIMP(statut='o',typ=modele ), - CHARGE =SIMP(statut='o',typ=char_meca ,max='**' ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - RIGI_MECA =SIMP(statut='o',typ=matr_elem_depl_r ), - ), - - b_rigi_ther =BLOC(condition = "OPTION=='RIGI_THER'", - regles=(AU_MOINS_UN('MODELE','CHARGE' ),), - MODELE =SIMP(statut='f',typ=modele ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CHARGE =SIMP(statut='f',typ=char_ther,max='**' ), - ), - - b_mass_ther =BLOC(condition = "OPTION=='MASS_THER'", - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - ), - - b_rigi_acou =BLOC(condition = "(OPTION=='RIGI_ACOU') or (OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')", - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_acou ,max='**' ), - ), - - b_rigi_flui =BLOC(condition = "(OPTION=='RIGI_FLUI_STRU') or (OPTION=='MASS_FLUI_STRU')", - MODELE =SIMP(statut='o',typ=modele ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca ,max='**' ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_impe_meca =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')", - MODELE =SIMP(statut='o',typ=modele ), - CHARGE =SIMP(statut='o',typ=char_meca,max='**' ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - ), - - b_rigi_conv =BLOC( condition = "(OPTION=='RIGI_THER_CONV') or (OPTION=='RIGI_THER_CONV_D')", - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_ther,max='**' ), - ), - -) ; -#& MODIF COMMANDE DATE 04/07/2000 AUTEUR JMBHH01 J.M.PROIX -CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,docu="U4.85.01-A",reentrant='o', - fr="Calcule la métallurgie à partir du résultat du calcul thermique", - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - RESULTAT =SIMP(statut='o',typ=evol_ther ), - ETAT_INIT =FACT(statut='o',min=01,max=01, - regles=(UN_PARMI('NUME_INIT','META_INIT',),), - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - NUME_INIT =SIMP(statut='f',typ='I' ), - META_INIT =SIMP(statut='f',typ=carte_var2_r ), - ), - COMP_INCR =FACT(statut='o',min=01,max='**', - RELATION =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ), - ACIER =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,) ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma), - ), - OPTION =SIMP(statut='f',typ='TXM' - ,into=("META_ELNO_TEMP",) ), -) ; -#& MODIF COMMANDE DATE 12/05/2000 AUTEUR CIBHHAB N.RAHNI -def calc_no_prod(RESULTAT,**args): - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == evol_ther : return evol_ther - if AsType(RESULTAT) == mode_meca : return mode_meca - if AsType(RESULTAT) == mode_stat : return mode_stat - if AsType(RESULTAT) == mode_acou : return mode_acou - if AsType(RESULTAT) == mult_elas : return mult_elas - if AsType(RESULTAT) == dyna_trans : return dyna_trans - if AsType(RESULTAT) == dyna_harmo : return dyna_harmo - if AsType(RESULTAT) == acou_harmo : return acou_harmo - if AsType(RESULTAT) == fourier_elas : return fourier_elas - if AsType(RESULTAT) == mode_flamb : return mode_flamb - if AsType(RESULTAT) == base_modale : return base_modale - raise AsException("type de concept resultat non prevu") - -CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,docu="U4.81.02-E",reentrant='o', - fr="Compléter un résultat en calculant un champ aux noeuds (forces nodales à partir d un champ de contraintes aux points de GAUSS)", - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, - mode_acou,mode_stat,evol_ther,evol_noli,base_modale, - mult_elas,fourier_elas,mode_flamb ) ), - - MODELE =SIMP(statut='f',typ=modele), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - INST =SIMP(statut='f',typ='R',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - LIST_FREQ =SIMP(statut='f',typ=listr8), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - LIST_ORDRE =SIMP(statut='f',typ=listis), - - OPTION =SIMP(statut='o',typ='TXM',max='**'), - - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - GEOMETRIE =SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE") ), - EXCIT =FACT(statut='f',min=01,max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ), - FONC_MULT =SIMP(statut='f',typ=fonction), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV") ), - ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - TAILLE_BLOC =SIMP(statut='f',typ='R' ,defaut= 400. ), -) ; -#& MODIF COMMANDE DATE 20/10/1999 AUTEUR DURAND C.DURAND -CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,docu="U4.82.02-D",reentrant='n', - fr="Affectation d un champ sur le maillage (mécanique de la rupture)", - regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'), - PRESENT_PRESENT('THETA_3D','FOND_3D'), - PRESENT_ABSENT('THETA_2D','DIRE_THETA'), - EXCLUS('DIRECTION','DIRE_THETA'),), - OPTION =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ), - MODELE =SIMP(statut='o',typ=(modele) ), - FOND_3D =SIMP(statut='f',typ=(fond_fiss) ), - THETA_3D =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - UN_PARMI('MODULE','MODULE_FO'), - ENSEMBLE('MODULE','R_INF','R_SUP'), - ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - MODULE =SIMP(statut='f',typ='R'), - R_INF =SIMP(statut='f',typ='R'), - R_SUP =SIMP(statut='f',typ='R'), - MODULE_FO =SIMP(statut='f',typ=fonction), - R_INF_FO =SIMP(statut='f',typ=fonction), - R_SUP_FO =SIMP(statut='f',typ=fonction), - ), - DIRE_THETA =SIMP(statut='f',typ=(cham_no_depl_r) ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - THETA_2D =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - MODULE =SIMP(statut='o',typ='R'), - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - THETA_BANDE =FACT(statut='f',min=01,max='**', - MODULE =SIMP(statut='o',typ='R'), - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - GRAD_NOEU_THETA =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - IMPRESSION =FACT(statut='f',min=01,max=01, - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ), - ), -) ; -#& MODIF COMMANDE DATE 11/01/99 AUTEUR VABHHTS J.PELLET -def calc_vect_elem_prod(OPTION,**args): - if OPTION == "CHAR_MECA" : return vect_elem_depl_r - if OPTION == "CHAR_MECA_LAGR" : return vect_elem_depl_r - if OPTION == "CHAR_THER" : return vect_elem_temp_r - if OPTION == "CHAR_ACOU" : return vect_elem_pres_c - if OPTION == "FORC_NODA" : return vect_elem_depl_r - raise AsException("type de concept resultat non prevu") - -CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,docu="U4.61.02-F",reentrant='n', - fr="Calcul des seconds membres élémentaires", - OPTION =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU", - "FORC_NODA","CHAR_MECA_LAGR") ), - b_char_meca =BLOC(condition = "OPTION=='CHAR_MECA'", - regles=(AU_MOINS_UN('CHARGE','MODELE'),), - CHARGE =SIMP(statut='f',typ=char_meca,max='**'), - MODELE =SIMP(statut='f',typ=modele), - b_charge =BLOC(condition = "CHARGE != None", fr="modèle ne contenant pas de sous-structure", - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - b_modele =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure", - SOUS_STRUC =FACT(statut='o',min=01, - regles=(UN_PARMI('TOUT','MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**',), - ), - ), - ), - b_char_ther =BLOC(condition = "OPTION=='CHAR_THER'", - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHARGE =SIMP(statut='o',typ=char_ther,max='**'), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_char_acou =BLOC(condition = "OPTION=='CHAR_ACOU'", - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CHARGE =SIMP(statut='o',typ=char_acou,max='**'), - ), - - b_forc_noda =BLOC(condition = "OPTION=='FORC_NODA'", - SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - MODELE =SIMP(statut='f',typ=modele), - ), - - b_meca_lagr =BLOC(condition = "OPTION=='CHAR_MECA_LAGR'", - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - THETA =SIMP(statut='o',typ=theta_geom), - PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - CHARGE =SIMP(statut='f',typ=char_meca,max='**'), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), -) ; -#& MODIF COMMANDE DATE 31/10/2000 AUTEUR VABHHTS J.PELLET -def comb_cham_elem_prod(COMB_R=None,COMB_C=None,COMB_FOURIER=None,**args): - - if COMB_R != None: - vale=COMB_R.get_child('CHAM_ELEM').get_valeur() - elif COMB_C != None: - vale=COMB_C.get_child('CHAM_ELEM').get_valeur() - elif COMB_FOURIER != None: - vale=COMB_FOURIER.get_child('CHAM_ELEM').get_valeur() - else : - raise AsException("type de concept resultat non prevu") - - if AsType(vale) == cham_elem_sief_r : return cham_elem_sief_r - if AsType(vale) == cham_elem_flux_r : return cham_elem_flux_r - if AsType(vale) == cham_elem_epsi_r : return cham_elem_epsi_r - if AsType(vale) == cham_elem_ener_r : return cham_elem_ener_r - if AsType(vale) == cham_elem_crit_r : return cham_elem_crit_r - if AsType(vale) == cham_elem_dbel_r : return cham_elem_dbel_r - if AsType(vale) == cham_elem_pres_r : return cham_elem_pres_r - if AsType(vale) == cham_elem_sief_c : return cham_elem_sief_c - raise AsException("type de concept resultat non prevu") - -COMB_CHAM_ELEM=OPER(nom="COMB_CHAM_ELEM",op= 139,sd_prod=comb_cham_elem_prod,reentrant='f', - fr="Combinaison linéaire de champs par éléments",docu="U4.72.03-E", - regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'), - PRESENT_PRESENT('COMB_FOURIER','ANGL'),), - COMB_R =FACT(statut='f',min=01,max='**', - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), - COEF_R =SIMP(statut='o',typ='R'), - CHAM_ELEM =SIMP(statut='o', - typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r, - cham_elem_ener_r,cham_elem_crit_r,cham_elem_dbel_r, - cham_elem_pres_r,cham_elem_sief_c ) ), - ), - COMB_C =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('COEF_R','COEF_C', ),), - COEF_R =SIMP(statut='f',typ='R'), - COEF_C =SIMP(statut='f',typ='C'), - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r) ), - ), - COMB_FOURIER =FACT(statut='f',min=01,max='**', - COEF_R =SIMP(statut='f',typ='R',defaut= 1.), - NUME_MODE =SIMP(statut='o',typ='I'), - TYPE_MODE =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ), - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r ) ), - ), - ANGL =SIMP(statut='f',typ='R' ), -) ; - -#& MODIF COMMANDE DATE 08/03/94 AUTEUR VABHHT2 G.BERTRAND -def comb_cham_no_prod(COMB_R,COMB_C,COMB_FOURIER,**args): - if COMB_C != None: - type_mat = AsType(COMB_C.get_child('CHAM_NO').get_valeur()) - if type_mat in (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_c - if type_mat in (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_c - if type_mat in (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_c - elif COMB_R != None: - type_mat = AsType(COMB_R.get_child('CHAM_NO').get_valeur()) - if type_mat in (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_r - if type_mat in (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_r - if type_mat in (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_r - if type_mat == matr_asse_gene_r : return matr_asse_gene_r - elif COMB_FOURIER != None: - type_mat = AsType(COMB_FOURIER.get_child('CHAM_NO').get_valeur()) - if type_mat == cham_no_temp_r : return cham_no_temp_r - if type_mat == cham_no_depl_r : return cham_no_depl_r - raise AsException("type de concept resultat non prevu") - - -COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op= 30,sd_prod=comb_cham_no_prod - ,fr="Combinaison linéaire de champs aux noeuds", - docu="U4.72.02-F",reentrant='f', - regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),), - COMB_R =FACT(statut='f',min=01,max='**', - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG",) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_temp_c,cham_no_depl_r,cham_no_depl_c - ,cham_no_pres_r,cham_no_pres_c ) ), - COEF_R =SIMP(statut='o',typ='R' ), - ), - COMB_C =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('COEF_R','COEF_C' ),), - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r,cham_no_temp_c - ,cham_no_depl_c,cham_no_pres_c ) ), - COEF_R =SIMP(statut='f',typ='R' ), - COEF_C =SIMP(statut='f',typ='C' ), - ), - COMB_FOURIER =FACT(statut='f',min=01,max='**', - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r) ), - COEF_R =SIMP(statut='f',typ='R',defaut= 1. ), - NUME_MODE =SIMP(statut='o',typ='I' ), - TYPE_MODE =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ), - ), - b_angl = BLOC ( condition = "COMB_FOURIER != None", - ANGL =SIMP(statut='o',typ='R' ), - ), -) ; -#& MODIF COMMANDE DATE 08/11/95 AUTEUR CIBHHLV L.VIVAN -COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier, - fr="Recombinaison de FOURIER de tous les modes se trouvant dans la structure de données de type resultat dans une ou des directions particulières", - docu="U4.83.31-C",reentrant='n', - RESULTAT =SIMP(statut='o',typ=fourier_elas ), - ANGL =SIMP(statut='o',typ='R',max='**'), - NOM_CHAM =SIMP(statut='o',typ='TXM',max=05, - into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ), -) ; -#& MODIF COMMANDE DATE 06/10/94 AUTEUR BIBERON G.ROUSSEAU -def comb_matr_asse_prod(COMB_R,COMB_C,**args): - if COMB_C != None: - type_mat = AsType(COMB_C.get_child('MATR_ASSE').get_valeur()) - if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_c - if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c - if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c - if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_c - elif COMB_R != None: - type_mat = AsType(COMB_R.get_child('MATR_ASSE').get_valeur()) - if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r - if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r - if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r - if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r - raise AsException("type de concept resultat non prevu") - -COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op= 31,sd_prod=comb_matr_asse_prod, - fr="Combinaison linéaire de matrices assemblées", - docu="U4.72.01-F",reentrant='f', - regles=(UN_PARMI('COMB_R','COMB_C' ),), - COMB_R =FACT(statut='f',min=01,max='**', - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c, - matr_asse_temp_r,matr_asse_temp_c, - matr_asse_pres_r,matr_asse_pres_c, - matr_asse_gene_r,matr_asse_gene_c ) ), - COEF_R =SIMP(statut='o',typ='R' ), - ), - COMB_C =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('COEF_R','COEF_C' ),), - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c, - matr_asse_temp_r,matr_asse_temp_c, - matr_asse_pres_r,matr_asse_pres_c, - matr_asse_gene_r,matr_asse_gene_c ) ), - COEF_R =SIMP(statut='f',typ='R' ), - COEF_C =SIMP(statut='f',typ='C' ), - ), - SANS_CMP =SIMP(statut='f',typ='TXM',into=("LAGR",) ), -) ; -#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHAB N.RAHNI -COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat, - fr="Réponse sismique par recombinaison modale par une méthode spectrale", - docu="U4.84.01-D",reentrant='n', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'), - UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - b_freq =BLOC(condition = "FREQ != None or LIST_FREQ != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ACCE_UNIF =SIMP(statut='f',typ=mode_stat ), - - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8 ), - AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), - - MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ), - CORR_FREQ =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - - EXCIT =FACT(statut='o',min=01,max='**', - regles=(UN_PARMI('MONO_APPUI','NOEUD','GROUP_NO'), - UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),), - - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - AXE =SIMP(statut='f',fr="Excitation suivant un seul axe", - typ='R',max=03), - TRI_AXE =SIMP(statut='f',fr="Excitation suivant les trois axes mais avec le meme spectre", - typ='R',max=03), - TRI_SPEC =SIMP(statut='f',fr="Excitation suivant les trois axes avec trois spectres", - typ='TXM',into=("OUI",) ), - b_axe =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe", - SPEC_OSCI =SIMP(statut='o',typ=fonction,max=01 ), - ECHELLE =SIMP(statut='f',typ='R',max=01), - ), - b_tri_axe =BLOC(condition = "TRI_AXE != None",fr="Excitation suivant les trois axes mais avec le meme spectre", - SPEC_OSCI =SIMP(statut='o',typ=fonction,max=01 ), - ECHELLE =SIMP(statut='f',typ='R',max=01), - ), - b_tri_spec =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes avec trois spectres", - SPEC_OSCI =SIMP(statut='o',typ=fonction,min=03,max=03 ), - ECHELLE =SIMP(statut='f',typ='R',min=03,max=03), - ), - NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ), - ), - COMB_MODE =FACT(statut='o',min=01,max=01, - TYPE =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ), - DUREE =SIMP(statut='f',typ='R' ), - ), - COMB_DIRECTION =FACT(statut='f',min=01,max=01, - TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ), - ), - COMB_MULT_APPUI =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - TYPE =SIMP(statut='o',typ='TXM',into=("QUAD","LINE","ABS") ), - ), - DEPL_MULT_APPUI =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO'), - AU_MOINS_UN('DX','DY','DZ' ),), - MODE_STAT =SIMP(statut='f',typ=mode_stat ), - NOEUD_REFE =SIMP(statut='f',typ=no), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - ), - OPTION =SIMP(statut='o',typ='TXM',max=10, - into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "EFGE_ELNO_DEPL","REAC_NODA","FORC_NODA","EFGE_ELNO_CART", - "SIPO_ELNO_DEPL",) ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - IMPRESSION =FACT(statut='f',min=01,max='**', - regles=(EXCLUS('TOUT','NIVEAU'),), - TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NIVEAU =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),max=03 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 04/12/2000 AUTEUR VABHHTS J.PELLET -def crea_champ_prod(TYPE_CHAM,**args): - if TYPE_CHAM == "CART_DBEL_R" : return carte_dbel_r - if TYPE_CHAM == "CART_DEPL_C" : return carte_depl_c - if TYPE_CHAM == "CART_DEPL_F" : return carte_depl_f - if TYPE_CHAM == "CART_DEPL_R" : return carte_depl_r - if TYPE_CHAM == "CART_DURT_R" : return carte_durt_r - if TYPE_CHAM == "CART_ENER_R" : return carte_ener_r - if TYPE_CHAM == "CART_EPSI_R" : return carte_epsi_r - if TYPE_CHAM == "CART_ERREUR" : return carte_erreur - if TYPE_CHAM == "CART_FLUX_R" : return carte_flux_r - if TYPE_CHAM == "CART_GEOM_R" : return carte_geom_r - if TYPE_CHAM == "CART_G_DEPL_R" : return carte_g_depl_r - if TYPE_CHAM == "CART_HYDR_R" : return carte_hydr_r - if TYPE_CHAM == "CART_INST_R" : return carte_inst_r - if TYPE_CHAM == "CART_INTE_R" : return carte_inte_r - if TYPE_CHAM == "CART_META_R" : return carte_meta_r - if TYPE_CHAM == "CART_NEUT_F" : return carte_neut_f - if TYPE_CHAM == "CART_NEUT_R" : return carte_neut_r - if TYPE_CHAM == "CART_PRES_R" : return carte_pres_r - if TYPE_CHAM == "CART_SIEF_R" : return carte_sief_r - if TYPE_CHAM == "CART_SOUR_R" : return carte_sour_r - if TYPE_CHAM == "CART_TEMP_F" : return carte_temp_f - if TYPE_CHAM == "CART_TEMP_R" : return carte_temp_r - if TYPE_CHAM == "CART_VAR2_R" : return carte_var2_r - if TYPE_CHAM == "CART_VNOR_C" : return carte_vnor_c - if TYPE_CHAM == "NOEU_DBEL_R" : return cham_no_dbel_r - if TYPE_CHAM == "NOEU_DEPL_C" : return cham_no_depl_c - if TYPE_CHAM == "NOEU_DEPL_F" : return cham_no_depl_f - if TYPE_CHAM == "NOEU_DEPL_R" : return cham_no_depl_r - if TYPE_CHAM == "NOEU_DURT_R" : return cham_no_durt_r - if TYPE_CHAM == "NOEU_ENER_R" : return cham_no_ener_r - if TYPE_CHAM == "NOEU_EPSI_R" : return cham_no_epsi_r - if TYPE_CHAM == "NOEU_ERREUR" : return cham_no_erreur - if TYPE_CHAM == "NOEU_FLUX_R" : return cham_no_flux_r - if TYPE_CHAM == "NOEU_GEOM_R" : return cham_no_geom_r - if TYPE_CHAM == "NOEU_G_DEPL_R" : return cham_no_g_depl_r - if TYPE_CHAM == "NOEU_HYDR_R" : return cham_no_hydr_r - if TYPE_CHAM == "NOEU_INST_R" : return cham_no_inst_r - if TYPE_CHAM == "NOEU_INTE_R" : return cham_no_inte_r - if TYPE_CHAM == "NOEU_META_R" : return cham_no_meta_r - if TYPE_CHAM == "NOEU_NEUT_F" : return cham_no_neut_f - if TYPE_CHAM == "NOEU_NEUT_R" : return cham_no_neut_r - if TYPE_CHAM == "NOEU_PRES_R" : return cham_no_pres_r - if TYPE_CHAM == "NOEU_SIEF_R" : return cham_no_sief_r - if TYPE_CHAM == "NOEU_SOUR_R" : return cham_no_sour_r - if TYPE_CHAM == "NOEU_TEMP_F" : return cham_no_temp_f - if TYPE_CHAM == "NOEU_TEMP_R" : return cham_no_temp_r - if TYPE_CHAM == "NOEU_VAR2_R" : return cham_no_var2_r - if TYPE_CHAM == "NOEU_VNOR_C" : return cham_no_vnor_c - if TYPE_CHAM == "ELEM_DBEL_R" : return cham_elem_dbel_r - if TYPE_CHAM == "ELEM_DEPL_C" : return cham_elem_depl_c - if TYPE_CHAM == "ELEM_DEPL_F" : return cham_elem_depl_f - if TYPE_CHAM == "ELEM_DEPL_R" : return cham_elem_depl_r - if TYPE_CHAM == "ELEM_DURT_R" : return cham_elem_durt_r - if TYPE_CHAM == "ELEM_ENER_R" : return cham_elem_ener_r - if TYPE_CHAM == "ELEM_EPSI_R" : return cham_elem_epsi_r - if TYPE_CHAM == "ELEM_ERREUR" : return cham_elem_erreur - if TYPE_CHAM == "ELEM_FLUX_R" : return cham_elem_flux_r - if TYPE_CHAM == "ELEM_GEOM_R" : return cham_elem_geom_r - if TYPE_CHAM == "ELEM_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM == "ELEM_HYDR_R" : return cham_elem_hydr_r - if TYPE_CHAM == "ELEM_INST_R" : return cham_elem_inst_r - if TYPE_CHAM == "ELEM_INTE_R" : return cham_elem_inte_r - if TYPE_CHAM == "ELEM_META_R" : return cham_elem_meta_r - if TYPE_CHAM == "ELEM_NEUT_F" : return cham_elem_neut_f - if TYPE_CHAM == "ELEM_NEUT_R" : return cham_elem_neut_r - if TYPE_CHAM == "ELEM_PRES_R" : return cham_elem_pres_r - if TYPE_CHAM == "ELEM_SIEF_R" : return cham_elem_sief_r - if TYPE_CHAM == "ELEM_SOUR_R" : return cham_elem_sour_r - if TYPE_CHAM == "ELEM_TEMP_F" : return cham_elem_temp_f - if TYPE_CHAM == "ELEM_TEMP_R" : return cham_elem_temp_r - if TYPE_CHAM == "ELEM_VARI_R" : return cham_elem_vari_r - if TYPE_CHAM == "ELEM_VNOR_C" : return cham_elem_vnor_c - if TYPE_CHAM == "ELNO_DBEL_R" : return cham_elem_dbel_r - if TYPE_CHAM == "ELNO_DEPL_C" : return cham_elem_depl_c - if TYPE_CHAM == "ELNO_DEPL_F" : return cham_elem_depl_f - if TYPE_CHAM == "ELNO_DEPL_R" : return cham_elem_depl_r - if TYPE_CHAM == "ELNO_DURT_R" : return cham_elem_durt_r - if TYPE_CHAM == "ELNO_ENER_R" : return cham_elem_ener_r - if TYPE_CHAM == "ELNO_EPSI_R" : return cham_elem_epsi_r - if TYPE_CHAM == "ELNO_ERREUR" : return cham_elem_erreur - if TYPE_CHAM == "ELNO_FLUX_R" : return cham_elem_flux_r - if TYPE_CHAM == "ELNO_GEOM_R" : return cham_elem_geom_r - if TYPE_CHAM == "ELNO_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM == "ELNO_HYDR_R" : return cham_elem_hydr_r - if TYPE_CHAM == "ELNO_INST_R" : return cham_elem_inst_r - if TYPE_CHAM == "ELNO_INTE_R" : return cham_elem_inte_r - if TYPE_CHAM == "ELNO_META_R" : return cham_elem_meta_r - if TYPE_CHAM == "ELNO_NEUT_F" : return cham_elem_neut_f - if TYPE_CHAM == "ELNO_NEUT_R" : return cham_elem_neut_r - if TYPE_CHAM == "ELNO_PRES_R" : return cham_elem_pres_r - if TYPE_CHAM == "ELNO_SIEF_R" : return cham_elem_sief_r - if TYPE_CHAM == "ELNO_SOUR_R" : return cham_elem_sour_r - if TYPE_CHAM == "ELNO_TEMP_F" : return cham_elem_temp_f - if TYPE_CHAM == "ELNO_TEMP_R" : return cham_elem_temp_r - if TYPE_CHAM == "ELNO_VARI_R" : return cham_elem_vari_r - if TYPE_CHAM == "ELNO_VNOR_C" : return cham_elem_vnor_c - if TYPE_CHAM == "ELGA_DBEL_R" : return cham_elem_dbel_r - if TYPE_CHAM == "ELGA_DEPL_C" : return cham_elem_depl_c - if TYPE_CHAM == "ELGA_DEPL_F" : return cham_elem_depl_f - if TYPE_CHAM == "ELGA_DEPL_R" : return cham_elem_depl_r - if TYPE_CHAM == "ELGA_DURT_R" : return cham_elem_durt_r - if TYPE_CHAM == "ELGA_ENER_R" : return cham_elem_ener_r - if TYPE_CHAM == "ELGA_EPSI_R" : return cham_elem_epsi_r - if TYPE_CHAM == "ELGA_ERREUR" : return cham_elem_erreur - if TYPE_CHAM == "ELGA_FLUX_R" : return cham_elem_flux_r - if TYPE_CHAM == "ELGA_GEOM_R" : return cham_elem_geom_r - if TYPE_CHAM == "ELGA_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM == "ELGA_HYDR_R" : return cham_elem_hydr_r - if TYPE_CHAM == "ELGA_INST_R" : return cham_elem_inst_r - if TYPE_CHAM == "ELGA_INTE_R" : return cham_elem_inte_r - if TYPE_CHAM == "ELGA_META_R" : return cham_elem_meta_r - if TYPE_CHAM == "ELGA_NEUT_F" : return cham_elem_neut_f - if TYPE_CHAM == "ELGA_NEUT_R" : return cham_elem_neut_r - if TYPE_CHAM == "ELGA_PRES_R" : return cham_elem_pres_r - if TYPE_CHAM == "ELGA_SIEF_R" : return cham_elem_sief_r - if TYPE_CHAM == "ELGA_SOUR_R" : return cham_elem_sour_r - if TYPE_CHAM == "ELGA_TEMP_F" : return cham_elem_temp_f - if TYPE_CHAM == "ELGA_TEMP_R" : return cham_elem_temp_r - if TYPE_CHAM == "ELGA_VARI_R" : return cham_elem_vari_r - if TYPE_CHAM == "ELGA_VNOR_C" : return cham_elem_vnor_c - raise AsException("type de concept resultat non prevu") - -CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, - fr=" ",docu="U4.72.04-A",reentrant='n', - regles=(EXCLUS('NUME_DDL','CHAM_NO',),ENSEMBLE('CHAM_F','CHAM_PARA',), - EXCLUS('TYPE_MAXI','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','NOM_CAS','ANGL', ),), - TYPE_CHAM =SIMP(statut='o',typ='TXM', - into=("CART_DBEL_R","NOEU_DBEL_R","ELEM_DBEL_R", - "ELNO_DBEL_R","ELGA_DBEL_R","CART_DEPL_C", - "NOEU_DEPL_C","ELEM_DEPL_C","ELNO_DEPL_C", - "ELGA_DEPL_C","CART_DEPL_F","NOEU_DEPL_F", - "ELEM_DEPL_F","ELNO_DEPL_F","ELGA_DEPL_F", - "CART_DEPL_R","NOEU_DEPL_R","ELEM_DEPL_R", - "ELNO_DEPL_R","ELGA_DEPL_R","CART_DURT_R", - "NOEU_DURT_R","ELEM_DURT_R","ELNO_DURT_R", - "ELGA_DURT_R","CART_ENER_R","NOEU_ENER_R", - "ELEM_ENER_R","ELNO_ENER_R","ELGA_ENER_R", - "CART_EPSI_R","NOEU_EPSI_R","ELEM_EPSI_R", - "ELNO_EPSI_R","ELGA_EPSI_R","CART_ERREUR", - "NOEU_ERREUR","ELEM_ERREUR","ELNO_ERREUR", - "ELGA_ERREUR","CART_FLUX_R","NOEU_FLUX_R", - "ELEM_FLUX_R","ELNO_FLUX_R","ELGA_FLUX_R", - "CART_GEOM_R","NOEU_GEOM_R","ELEM_GEOM_R", - "ELNO_GEOM_R","ELGA_GEOM_R","CART_G_DEPL_R", - "NOEU_G_DEPL_R","ELEM_G_DEPL_R","ELNO_G_DEPL_R", - "ELGA_G_DEPL_R","CART_HYDR_R","NOEU_HYDR_R", - "ELEM_HYDR_R","ELNO_HYDR_R","ELGA_HYDR_R", - "CART_INST_R","NOEU_INST_R","ELEM_INST_R", - "ELNO_INST_R","ELGA_INST_R","CART_INTE_R", - "NOEU_INTE_R","ELEM_INTE_R","ELNO_INTE_R", - "ELGA_INTE_R","CART_META_R","NOEU_META_R", - "ELEM_META_R","ELNO_META_R","ELGA_META_R", - "CART_NEUT_F","NOEU_NEUT_F","ELEM_NEUT_F", - "ELNO_NEUT_F","ELGA_NEUT_F","CART_NEUT_R", - "NOEU_NEUT_R","ELEM_NEUT_R","ELNO_NEUT_R", - "ELGA_NEUT_R","CART_PRES_R","NOEU_PRES_R", - "ELEM_PRES_R","ELNO_PRES_R","ELGA_PRES_R", - "CART_SIEF_R","NOEU_SIEF_R","ELEM_SIEF_R", - "ELNO_SIEF_R","ELGA_SIEF_R","CART_SOUR_R", - "NOEU_SOUR_R","ELEM_SOUR_R","ELNO_SOUR_R", - "ELGA_SOUR_R","CART_TEMP_F","NOEU_TEMP_F", - "ELEM_TEMP_F","ELNO_TEMP_F","ELGA_TEMP_F", - "CART_TEMP_R","NOEU_TEMP_R","ELEM_TEMP_R", - "ELNO_TEMP_R","ELGA_TEMP_R","CART_VAR2_R", - "NOEU_VAR2_R","ELEM_VARI_R","ELNO_VARI_R", - "ELGA_VARI_R","CART_VNOR_C","NOEU_VNOR_C", - "ELEM_VNOR_C","ELNO_VNOR_C","ELGA_VNOR_C",) ), - OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC",) ), - MODELE =SIMP(statut='f',typ=(modele) ), - MAILLAGE =SIMP(statut='f',typ=(maillage) ), - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - AFFE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), - UN_PARMI('VALE','VALE_I','VALE_C','VALE_F', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - VALE =SIMP(statut='f',typ='R',max='**' ), - VALE_R =SIMP(statut='f',typ='R',max='**' ), - VALE_I =SIMP(statut='f',typ='I',max='**' ), - VALE_C =SIMP(statut='f',typ='C',max='**' ), - VALE_F =SIMP(statut='f',typ=fonction,max='**'), - FONCTION =SIMP(statut='f',typ=fonction), - ), - NUME_DDL =SIMP(statut='f',typ=(nume_ddl) ), - CHAM_NO =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_temp_f,cham_no_depl_r, - cham_no_depl_f,cham_no_sief_r ) ), - ASSE =FACT(statut='f',min=01,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',), - PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - CHAM_GD =SIMP(statut='f',typ=(cham_elem,cham_no,carte)), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), - NOM_CMP_RESU =SIMP(statut='f',typ='TXM',max='**' ), - CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - COEF_R =SIMP(statut='f',typ='R',defaut= 1. ), - ), - CHAM_F =SIMP(statut='f',typ=(cham_elem,cham_no,carte)), - CHAM_PARA =SIMP(statut='f',typ=(cham_elem,cham_no,carte),max='**'), - CHAM_GD =SIMP(statut='f',typ=(cham_elem,cham_no,carte)), - RESULTAT =SIMP(statut='f',typ=resultat ), - NOM_CHAM =SIMP(statut='f',typ='TXM', - into=("DEPL","VITE","ACCE","GEOMETRIE", - "DEPL_ABSOLU","VITE_ABSOLU","TEMP","ACCE_ABSOLU", - "FORC_NODA","REAC_NODA","EFGE_NOEU_DEPL", - "EFGE_NOEU_CART","EPSI_NOEU_DEPL", - "SIGM_NOEU_DEPL","SIGM_NOEU_CART", - "SIPO_NOEU_DEPL","EQUI_NOEU_SIGM", - "EQUI_NOEU_EPSI","FLUX_NOEU_TEMP", - "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP", - "META_ELGA_TEMP","META_ELNO_TEMP", - "META_NOEU_TEMP","DURT_ELGA_META", - "DURT_ELNO_META","DURT_NOEU_META","SIEF_ELGA", - "SIEF_ELNO_ELGA","SIEF_ELGA_DEPL", - "VARI_ELNO_ELGA","VARI_ELGA","EPOT_ELEM_DEPL", - "ECIN_ELEM_DEPL","SOUR_ELGA_ELEC", - "PRES_ELNO_REEL","PRES_ELNO_IMAG", - "PRES_ELNO_DBEL","INTE_ELNO_ACTI", - "INTE_ELNO_REAC","EFGE_ELNO_DEPL", - "SIGM_ELNO_DEPL","EFGE_ELNO_CART", - "SIGM_ELNO_CART","SIPO_ELNO_DEPL", - "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL", - "EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO", - "EPSP_ELGA","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI", - "ERRE_ELNO_ELGA","ERRE_ELGA_NORE", - "ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2", - "SIGM_NOZ1_ELGA","SIGM_NOZ2_ELGA", - "DEGE_ELNO_DEPL","SIRE_ELNO_DEPL", - "VNOR_ELEM_DEPL","SIEF_ELNO","VARI_ELNO", - "SIEF_NOEU_ELGA","VARI_NOEU_ELGA", - "PRES_NOEU_DBEL","PRES_NOEU_REEL", - "PRES_NOEU_IMAG","INTE_NOEU_ACTI", - "INTE_NOEU_REAC","DCHA_ELGA_SIGM", - "DCHA_ELNO_SIGM","RADI_ELGA_SIGM", - "RADI_ELNO_SIGM","ENDO_ELNO_SIGA", - "ENDO_ELNO_SINO","ENDO_ELNO_SIGM", - "SIGM_ELNO_VARI","SIGM_NOEU_VARI", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL", - "EPME_ELNO_DPGE","EPMG_ELNO_DEPL", - "EPMG_ELGA_DEPL","GRAD_ELGA_THETA", - "GTHE_ELNO_ELGA","GRAD_NOEU_THETA","HYDR_ELGA", - "THETA","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",) ), - TYPE_MAXI =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE",into=("VALE","INST",) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - LIST_INST =SIMP(statut='f',typ=(listr8) ), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - FREQ =SIMP(statut='f',typ='R'), - NUME_MODE =SIMP(statut='f',typ='I'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM'), - ANGL =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 30/11/1999 AUTEUR JMBHH01 J.M.PROIX -CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage - ,fr="Définition d'un nouveau maillage à partir d'un maillage existant en dupliquant des groupes de mailles (le nombre de mailles du maillage peut être augmenté)", - docu="U4.23.02-C",reentrant='n', - regles=(EXCLUS('ECLA_PG','CREA_MAILLE'), - EXCLUS('ECLA_PG','CREA_GROUP_MA'), - EXCLUS('ECLA_PG','DETR_GROUP_MA'), - EXCLUS('ECLA_PG','MODI_MAILLE'),), - MAILLAGE =SIMP(statut='o',typ=maillage ), - CREA_POI1 =FACT(statut='f',min=01,max='**',fr="Création de mailles de type POI1 à partir de noeuds", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD' ),), - NOM_GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - ), - CREA_MAILLE =FACT(statut='f',min=01,max='**',fr="Duplication de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - PREF_MAILLE =SIMP(statut='o',typ='TXM' ), - PREF_NUME =SIMP(statut='f',typ='I' ), - ), - CREA_GROUP_MA =FACT(statut='f',min=01,max='**',fr="Duplication de mailles et création de groupes de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - NOM =SIMP(statut='o',typ='TXM'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - PREF_MAILLE =SIMP(statut='o',typ='TXM' ), - PREF_NUME =SIMP(statut='f',typ='I' ), - ), - DETR_GROUP_MA =FACT(statut='f',min=01,max=01,fr="Destruction de groupes de mailles", - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - NB_MAILLE =SIMP(statut='f',typ='I',defaut= 0,fr="Nombre minimal de mailles que doit contenir le groupe pour être détruit", ), - ), - MODI_MAILLE =FACT(statut='f',min=01,max='**',fr="Modification du type de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=grma,max='**'), - GROUP_MA =SIMP(statut='f',typ=ma,max='**'), - OPTION =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4"),fr="Choix de la transformation" ), - PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - REPERE =FACT(statut='f',min=01,max='**',fr="Réalisation d un changement de repère servant à déterminer les caractéristiques d une section de poutre", - TABLE =SIMP(statut='o',typ=tabl_cara_geom,fr="Nom de la table contenant les caractéristiques de la section de poutre" ), - NOM_ORIG =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ), - NOM_ROTA =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére" ), - b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'", - GROUP_MA =SIMP(statut='f',typ=grma,fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"), - ), - ), - ECLA_PG =FACT(statut='f',min=01,max=01,fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss", - MODELE =SIMP(statut='o',typ=modele ), - SHRINK =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 21/06/2000 AUTEUR CIBHHLV L.VIVAN -def crea_resu_prod(TYPE_RESU,**args): - if TYPE_RESU == "EVOL_ELAS" : return evol_elas - if TYPE_RESU == "EVOL_NOLI" : return evol_noli - if TYPE_RESU == "EVOL_THER" : return evol_ther - if TYPE_RESU == "MULT_ELAS" : return mult_elas - if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas - raise AsException("type de concept resultat non prevu") - -# commentaire C. DURAND : J'ai supprimé tous les blocs. -# Ce qui avait été fait était faux (plantage EFICAS de nombreux tests et ingérable) -# il faudra réfléchir à la manière de les réintroduire proprement -CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,docu="U4.44.12-D",reentrant='f', - fr="Engendrer ou enrichir une structure de données de type evol_ther en affectant les cham_no associés", - regles=(EXCLUS('CHAM_GD','ECLA_PG','PERM_CHAMP',),), - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER","FOURIER_ELAS","MULT_ELAS", - "EVOL_ELAS","EVOL_NOLI") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","TEMP","SIEF_ELGA","VARI_ELGA",),max='**' ), - CHAM_GD =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('NOM_CAS','NUME_MODE','LIST_INST','INST',),), - CHAM_NO =SIMP(statut='o',typ=(cham_no)), - NUME_ORDRE_INIT =SIMP(statut='f',typ='I'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - NUME_MODE =SIMP(statut='f',typ='I'), - TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - NUME_INIT =SIMP(statut='f',typ='I'), - NUME_FIN =SIMP(statut='f',typ='I'), - ), - - ECLA_PG =FACT(statut='f',min=01,max=01, - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'),), - MODELE_INIT =SIMP(statut='o',typ=modele), - RESU_INIT =SIMP(statut='o',typ=resultat), - MAILLAGE =SIMP(statut='o',typ=maillage), - NOM_CHAM =SIMP(statut='o',typ='TXM',max='**', - into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - ), - - - RESU_INIT =SIMP(statut='f',typ=evol_noli), - INST_INIT =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',into=('RELATIF','ABSOLU'),defaut='RELATIF'), - MAILLAGE_INIT =SIMP(statut='f',typ=maillage,), - RESU_FINAL =SIMP(statut='f',typ=evol_noli,), - MAILLAGE_FINAL =SIMP(statut='f',typ=maillage,), - PERM_CHAMP =FACT(statut='f',min=01,max=01, - GROUP_MA_FINAL =SIMP(statut='o',typ=grma), - GROUP_MA_INIT =SIMP(statut='o',typ=grma), - TRAN =SIMP(statut='o',typ='R',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - ) -) ; -#& AJOUT COMMANDE -DEBUT=PROC(nom="DEBUT",op=0 ,docu="U4.11.01-F",repetable='n', - fr="Ouverture d une étude. Allocation des ressources mémoire et disque", - - PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM'), - BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX", - statut='f',min=01,max=03, - FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM', - into=('GLOBALE','VOLATILE','LOCALE'),), - TITRE =SIMP(statut='f',typ='TXM'), - CAS =SIMP(statut='f',typ='TXM'), - NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'), - LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'), - LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'), - ), - IMPRESSION =FACT(statut='f',min=01,max=03, - FICHIER =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='o',typ='I'), - ), - CATALOGUE =FACT(statut='f',min=01,max=10, - FICHIER =SIMP(statut='o',typ='TXM'), - TITRE =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - ), - CODE =FACT("définition d un nom pour l'esemble d'une étude", - statut='f',min=01,max=01, - NOM =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='f',typ='I',defaut=15), - ), - DEBUG =FACT(fr="option de déboggage reservée aux développeurs", - statut='f',min=01,max=01, - JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - JEVEUX =SIMP(fr="force les déchargement sur disque", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA", - statut='f',typ='TXM',into=('TEST',)), - ), - MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=01,max=01, - GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'), - TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1), - TAILLE =SIMP(statut='f',typ='I'), - PARTITION =SIMP(statut='f',typ='R'), - ), - ); -#& MODIF COMMANDE DATE 09/09/98 AUTEUR ACBHHCD G.DEVESA -DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=base_modale - ,fr="Définition d une base modale pour analyse dynamique par superposition modale ou sous structuration dynamique par synthèse modale", - docu="U4.64.02-E",reentrant='f', - regles=(UN_PARMI('CLASSIQUE','RITZ'),), - CLASSIQUE =FACT(statut='f',min=01,max=01, - INTERF_DYNA =SIMP(statut='o',typ=interf_dyna_clas ), - MODE_MECA =SIMP(statut='o',typ=mode_meca,max='**' ), - NMAX_MODE =SIMP(statut='f',typ='I',defaut= 10 ), - ), - RITZ =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MODE_STAT','MODE_MECA','MULT_ELAS','BASE_MODALE'),), - MODE_MECA =SIMP(statut='f',typ=mode_meca,max='**' ), - NMAX_MODE =SIMP(statut='f',typ='I',defaut= 999 ), - MODE_STAT =SIMP(statut='f',typ=mode_stat ), - MULT_ELAS =SIMP(statut='f',typ=mult_elas ), - BASE_MODALE =SIMP(statut='f',typ=base_modale ), - ), -# le bloc conditionnel remplace-t-il PRESENT_PRESENT('RITZ','NUME_REF'), -# PRESENT_ABSENT('INTERF_DYNA','CLASSIQUE'), - b_ritz =BLOC(condition = "RITZ != None", - INTERF_DYNA =SIMP(statut='f',typ=interf_dyna_clas ), - NUME_REF =SIMP(statut='o',typ=nume_ddl ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 06/11/98 AUTEUR CIBHHLV L.VIVAN -DEFI_CABLE_BP=OPER(nom="DEFI_CABLE_BP",op= 180,sd_prod=cabl_precont, - fr=" ", - docu="U4.42.04-A",reentrant='n', - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - GROUP_MA_BETON =SIMP(statut='o',typ=grma), - DEFI_CABLE =FACT(statut='o',min=01,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD_ANCRAGE =SIMP(statut='f',typ=no,max='**'), - GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,max='**'), - TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',max='**', - into=("ACTIF","PASSIF") ), - ), - TENSION_INIT =SIMP(statut='o',typ='R' ), - RECUL_ANCRAGE =SIMP(statut='o',typ='R' ), - RELAXATION =FACT(statut='f',min=0,max=1, - R_J =SIMP(statut='o',typ='R' ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 16/07/96 AUTEUR CIBHHRA R.MEDDOURI -DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op= 2,sd_prod=fonction, - fr="Définition d une fonction constante", - docu="U4.31.01-F",reentrant='n', - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - VALE =SIMP(statut='o',typ='R',max=01 ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater,docu="U4.42.03-E",reentrant='n', - fr="Définition d une coque composite couche par couche", - COUCHE =FACT(statut='o',min=01,max='**', - EPAIS =SIMP(statut='o',typ='R' ), - MATER =SIMP(statut='o',typ=(mater) ), - ORIENTATION =SIMP(statut='f',typ='R',defaut= 0.0E+0 ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - IMPRESSION =FACT(statut='f',min=01,max=01, - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT",) ), - ), -) ; -#& MODIF COMMANDE DATE 28/06/2000 AUTEUR CIBHHLV L.VIVAN -DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru, - fr="Définition des caractéristiques nécessaires à l'étude du comportement dynamique d'une structure sous écoulement", - docu="U4.25.01-C",reentrant='n', - regles=(EXCLUS('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',), - AU_MOINS_UN('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX', ),), - FAISCEAU_TRANS =FACT(statut='f',min=01,max='**', - COUPLAGE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ), - PROF_RHO_F_INT =SIMP(statut='f',typ=fonction ), - PROF_RHO_F_EXT =SIMP(statut='f',typ=fonction ), - NOM_CMP =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ), - COEF_MASS_AJOU =SIMP(statut='f',typ='R' ), - TYPE_PAS =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ), - TYPE_RESEAU =SIMP(statut='f',typ='I' ), - UNITE_CD =SIMP(statut='f',typ='I',defaut=70), - UNITE_CK =SIMP(statut='f',typ='I',defaut=71), - PAS =SIMP(statut='f',typ='R' ), - ), - GRAPPE =FACT(statut='f',min=00,max=01, - regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',), - PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),), -# peut on créer un bloc a partir de la valeur de couplage - COUPLAGE =SIMP(statut='o',typ='TXM',into=("OUI","NON") ), - GRAPPE_2 =SIMP(statut='f',typ='TXM', - into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ), - NOEUD =SIMP(statut='f',typ=no), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODELE =SIMP(statut='f',typ=modele ), - COEF_MASS_AJOU =SIMP(statut='f',typ='R' ), - RHO_FLUI =SIMP(statut='f',typ='R' ), - UNITE_CA =SIMP(statut='f',typ='I',defaut=70), - UNITE_KA =SIMP(statut='f',typ='I',defaut=71), - ), - FAISCEAU_AXIAL =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'), - UN_PARMI('CARA_ELEM','RAYON_TUBE'), - ENSEMBLE('RAYON_TUBE','COOR_TUBE'), - PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'), - ENSEMBLE('CARA_PAROI','VALE_PAROI'), - ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG', - 'COOR_GRILLE','TYPE_GRILLE', ),), -# on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - TRI_GROUP_MA =SIMP(statut='f',typ='TXM' ), - VECT_X =SIMP(statut='f',typ='R',max=03), - PROF_RHO_FLUI =SIMP(statut='f',typ=fonction ), - PROF_VISC_CINE =SIMP(statut='f',typ=fonction ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - RAYON_TUBE =SIMP(statut='f',typ='R' ), - COOR_TUBE =SIMP(statut='f',typ='R',max='**'), - PESANTEUR =SIMP(statut='f',typ='R',min=04,max=04), - RUGO_TUBE =SIMP(statut='f',typ='R' ), - CARA_PAROI =SIMP(statut='f',typ='TXM',max=05, - into=("YC","ZC","R","HY","HZ") ), - VALE_PAROI =SIMP(statut='f',typ='R',max=05), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - LONG_TYPG =SIMP(statut='f',typ='R',max='**'), - LARG_TYPG =SIMP(statut='f',typ='R',max='**'), - EPAI_TYPG =SIMP(statut='f',typ='R',max='**'), - RUGO_TYPG =SIMP(statut='f',typ='R',max='**'), - COEF_TRAI_TYPG =SIMP(statut='f',typ='R',max='**'), - COEF_DPOR_TYPG =SIMP(statut='f',typ='R',max='**'), - COOR_GRILLE =SIMP(statut='f',typ='R',max='**'), - TYPE_GRILLE =SIMP(statut='f',typ='I',max='**'), - ), - COQUE_COAX =FACT(statut='f',min=00,max=01, - MASS_AJOU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - GROUP_MA_INT =SIMP(statut='o',typ=grma), - GROUP_MA_EXT =SIMP(statut='o',typ=grma), - VECT_X =SIMP(statut='o',typ='R',max='**'), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - MATER_INT =SIMP(statut='o',typ=mater ), - MATER_EXT =SIMP(statut='o',typ=mater ), - RHO_FLUI =SIMP(statut='o',typ='R' ), - VISC_CINE =SIMP(statut='o',typ='R' ), - RUGOSITE =SIMP(statut='o',typ='R' ), - PDC_MOY_1 =SIMP(statut='o',typ='R' ), - PDC_DYN_1 =SIMP(statut='o',typ='R' ), - PDC_MOY_2 =SIMP(statut='o',typ='R' ), - PDC_DYN_2 =SIMP(statut='o',typ='R' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction,docu="U4.MK.10-A",reentrant='n', - fr="Définition d une fonction du temps pour calculer des forces de LAPLACE", - regles=(UN_PARMI('COUR_PRIN','COUR'), - EXCLUS('COUR','COUR_SECO'), ), - FREQ =SIMP(statut='f',typ='R',defaut= 50.), - SIGNAL =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ), - COUR =FACT(statut='f',min=01,max='**', - fr="Définition du courant de court-circuit", - regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'), - UN_PARMI('PHI_CC_2','INTC_CC_2'),), - INTE_CC_1 =SIMP(statut='o',typ='R'), - TAU_CC_1 =SIMP(statut='o',typ='R'), - PHI_CC_1 =SIMP(statut='f',typ='R'), - INTC_CC_1 =SIMP(statut='f',typ='R'), - INTE_CC_2 =SIMP(statut='o',typ='R'), - TAU_CC_2 =SIMP(statut='o',typ='R'), - PHI_CC_2 =SIMP(statut='f',typ='R'), - INTC_CC_2 =SIMP(statut='f',typ='R'), - INST_CC_INIT =SIMP(statut='f',typ='R'), - INST_CC_FIN =SIMP(statut='o',typ='R'), - ), - COUR_PRIN =FACT(statut='f',min=01,max=01, - fr="Définition du courant de court-circuit avec réenclenchement", - regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),), - INTE_CC_1 =SIMP(statut='o',typ='R'), - TAU_CC_1 =SIMP(statut='o',typ='R'), - PHI_CC_1 =SIMP(statut='f',typ='R'), - INTC_CC_1 =SIMP(statut='f',typ='R'), - INTE_RENC_1 =SIMP(statut='f',typ='R'), - TAU_RENC_1 =SIMP(statut='f',typ='R'), - PHI_RENC_1 =SIMP(statut='f',typ='R'), - INST_CC_INIT =SIMP(statut='o',typ='R'), - INST_CC_FIN =SIMP(statut='o',typ='R'), - INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0), - INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 0.0E+0), - ), - COUR_SECO =FACT(statut='f',min=01,max='**', - fr="Définition du courant de court-circuit avec un intervalle de temps différent de celui de COUR_PRIN", - regles=(UN_PARMI('PHI_CC_2','INTC_CC_2'),), - INTE_CC_2 =SIMP(statut='o',typ='R'), - TAU_CC_2 =SIMP(statut='o',typ='R'), - PHI_CC_2 =SIMP(statut='f',typ='R'), - INTC_CC_2 =SIMP(statut='f',typ='R'), - INTE_RENC_2 =SIMP(statut='f',typ='R'), - TAU_RENC_2 =SIMP(statut='f',typ='R'), - PHI_RENC_2 =SIMP(statut='f',typ='R'), - DIST =SIMP(statut='f',typ='R',defaut=1.0E+0), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction, - fr="Définition des fonctions caractéristiques du fluide le long de la structure (profil de vitesse, profil de masse volumique)", - docu="U4.35.01-C",reentrant='n', - MAILLAGE =SIMP(statut='o',typ=(maillage) ), - NOEUD_INIT =SIMP(statut='o',typ=no), - NOEUD_FIN =SIMP(statut='o',typ=no), - VITE =FACT(statut='o',min=01,max=01, - VALE =SIMP(statut='f',typ='R',defaut= 1. ), - PROFIL =SIMP(statut='o',typ='TXM',into=("UNIFORME","LEONARD") ), - NB_BAV =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 2 , 3 ) ), - ), - INTERPOL =SIMP(statut='f',typ='TXM',max=02,defaut="LIN", - into=("NON","LIN","LOG") ), - PROL_DROIT =SIMP(statut='f',typ='TXM',defaut="EXCLU", - into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM' ,defaut="EXCLU", - into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 06/09/1999 AUTEUR UFBHHLL C.CHAVANT -def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,**args): - if VALE != None : return fonction - if VALE_C != None : return fonction_c - if VALE_PARA != None : return fonction - if NOEUD_PARA != None : return fonction - raise AsException("type de concept resultat non prevu") - -DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod - ,fr="Définition des valeurs réelles ou complexes d une fonction réelle", - docu="U4.31.02-F",reentrant='n', - regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA'),), - NOM_PARA =SIMP(statut='o',typ='TXM', - into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","META","FREQ","PULS", - "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT", - "PGAZ","PCAP") ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - VALE =SIMP(statut='f',typ='R',max='**', - fr ="Fonction réelle définie par une liste de couples (abscisse,ordonnée)"), - VALE_C =SIMP(statut='f',typ='R',max='**', - fr ="Fonction complexe définie par une liste de couples (abscisse,ordonnée partie réelle, ordonnée partie imaginaire)"), - VALE_PARA =SIMP(statut='f',typ=listr8, - fr ="Fonction réelle définie par deux concepts de type listr8" ), - b_vale_para =BLOC(condition = "VALE_PARA != None", - VALE_FONC =SIMP(statut='o',typ=listr8 ), - ), - NOEUD_PARA =SIMP(statut='f',typ=no,max='**', - fr ="Fonction réelle définie par une liste de noeuds et un maillage"), - b_noeud_para =BLOC(condition = "NOEUD_PARA != None", - MAILLAGE =SIMP(statut='o',typ=maillage ), - VALE_Y =SIMP(statut='o',typ='R',max='**'), - ), - - INTERPOL =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROIT =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 17/11/1999 AUTEUR CIBHHLV L.VIVAN -DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,docu="U4.82.01-E",reentrant='n', - fr="Définition de lèvres et d un fond de fissure en 3D", - regles=(UN_PARMI('FOND','FOND_FERME'), - EXCLUS('FOND_FERME','DTAN_ORIG'), - EXCLUS('FOND_FERME','DTAN_EXTR'), - EXCLUS('FOND_FERME','VECT_GRNO_ORIG'), - EXCLUS('FOND_FERME','VECT_GRNO_EXTR'), - UN_PARMI('LEVRE_SUP','NORMALE'), - EXCLUS('LEVRE_INF','NORMALE'), - ENSEMBLE('DTAN_ORIG','DTAN_EXTR'), - ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'), - EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'), - EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,), - MAILLAGE =SIMP(statut='o',typ=maillage ), - FOND =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), -# à mettre à jour le max vaut-il 1 - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - NOEUD_EXTR =SIMP(statut='f',typ=no,max=1), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1), - ), - FOND_FERME =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - MAILLE_ORIG =SIMP(statut='f',typ=ma,max=1), - GROUP_MA_ORIG =SIMP(statut='f',typ=ma,max=1), - ), - LEVRE_SUP =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - LEVRE_INF =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('GROUP_MA','MAILLE', ),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - NORMALE =SIMP(statut='f',typ='R',max='**'), - DTAN_ORIG =SIMP(statut='f',typ='R',max='**'), - DTAN_EXTR =SIMP(statut='f',typ='R',max='**'), - VECT_GRNO_ORIG =SIMP(statut='f',typ=grno,max=2), - VECT_GRNO_EXTR =SIMP(statut='f',typ=grno,max=2), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 27/09/2000 AUTEUR DURAND C.DURAND -def defi_group_prod(MAILLAGE,**args): - if AsType(MAILLAGE) == maillage : return maillage - if AsType(MAILLAGE) == squelette : return squelette - raise AsException("type de concept resultat non prevu") - -DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, - fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage", - docu="U4.22.01-E",reentrant='o', - regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO'),), - MAILLAGE =SIMP(statut='o',typ=(maillage,squelette) ), - - CREA_GROUP_MA =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),), -# quel est le concept attendu deriere NOM - NOM =SIMP(statut='o',typ=grma), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - INTERSEC =SIMP(statut='f',typ=grma,max='**'), - UNION =SIMP(statut='f',typ=grma,max='**'), - DIFFE =SIMP(statut='f',typ=grma,max='**'), - OPTION =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE","BANDE") ), - b_group_ma =BLOC(condition = "GROUP_MA != None", - regles=(EXCLUS('POSITION','NUME_INIT'),), - NUME_INIT =SIMP(statut='f',typ='I',defaut= 1 ), - POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), - b_nume_init =BLOC(condition = "NUME_INIT != None", - NUME_FIN =SIMP(statut='f',typ='I' ), - ), - ), - b_face_normale =BLOC(condition = "OPTION == 'FACE_NORMALE'", - regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - ANGL_NAUT =SIMP(statut='f',typ='R',max=02), - VECT_NORMALE =SIMP(statut='f',typ='R',max=03), - ANGL_PREC =SIMP(statut='f',typ='R',defaut= 0.5 ), - VERI_SIGNE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_sphere =BLOC(condition = "OPTION == 'SPHERE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE'),), - POINT =SIMP(statut='f',typ='R',max=03), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - RAYON =SIMP(statut='o',typ='R' ), - ), - b_cylindre =BLOC(condition = "OPTION == 'CYLINDRE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R',max=03), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - RAYON =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=02), - VECT_NORMALE =SIMP(statut='f',typ='R',max=03), - ), - b_bande =BLOC(condition = "OPTION == 'BANDE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R',max=03), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - DIST =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=02), - VECT_NORMALE =SIMP(statut='f',typ='R',max=03), - ), - ), - CREA_GROUP_NO =FACT(statut='f',min=01,max='**', - regles=(AU_MOINS_UN('TOUT_GROUP_MA','GROUP_MA','NOEUD','INTERSEC','UNION','DIFFE', - 'GROUP_NO','OPTION'),), - - TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - - NOEUD =SIMP(statut='f',typ=no,max='**'), - INTERSEC =SIMP(statut='f',typ=grno,max='**'), - UNION =SIMP(statut='f',typ=grno,max='**'), - DIFFE =SIMP(statut='f',typ=grno,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - OPTION =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN", - "SEGM_DROI_ORDO","NOEUD_ORDO") ), - b_nom_group_ma =BLOC(condition = "GROUP_MA != None", - NOM =SIMP(statut='f',typ=grma,max='**'), - ), - b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" , - NOM =SIMP(statut='o',typ=geom), - ), - - b_group_no =BLOC(condition = "GROUP_NO != None", - regles=(EXCLUS('POSITION','NUME_INIT'),), - NUME_INIT =SIMP(statut='f',typ='I',defaut= 1 ), - POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), - b_nume_init =BLOC(condition = "NUME_INIT != None", - NUME_FIN =SIMP(statut='f',typ='I' ), - ), - ), - b_env_sphere =BLOC(condition = "OPTION == 'ENV_SPHERE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE'),), - POINT =SIMP(statut='f',typ='R',max=03), - NOEUD_CENTRE =SIMP(statut='f',typ=no,max=01), - RAYON =SIMP(statut='o',typ='R' ), - PRECISION =SIMP(statut='f',typ='R' ), - CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ), - ), - b_env_cylindre =BLOC(condition = "OPTION == 'ENV_CYLINDRE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R',max=03), - NOEUD_CENTRE =SIMP(statut='f',typ=no,max=01), - RAYON =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=03), - VECT_NORMALE =SIMP(statut='f',typ='R',max=03), - PRECISION =SIMP(statut='f',typ='R' ), - CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ), - ), - b_env_plan =BLOC(condition = "OPTION == 'PLAN'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R',max=03), - NOEUD_CENTRE =SIMP(statut='f',typ=no,max=01), - ANGL_NAUT =SIMP(statut='f',typ='R',max=03), - VECT_NORMALE =SIMP(statut='f',typ='R',max=03), - PRECISION =SIMP(statut='f',typ='R' ), - CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ), - ), - b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'", - regles=(UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),), - NOEUD_ORIG =SIMP(statut='f',typ=no), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno), - NOEUD_EXTR =SIMP(statut='f',typ=no), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno), - PRECISION =SIMP(statut='f',typ='R' ), - CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ), - ), - b_noeud_ordo =BLOC(condition = "OPTION == 'NOEUD_ORDO'", - regles=(UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),), - NOEUD_ORIG =SIMP(statut='f',typ=no), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno), - NOEUD_EXTR =SIMP(statut='f',typ=no), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno), - PRECISION =SIMP(statut='f',typ='R' ), - CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ), - ), - ), - INFO =SIMP(statut='f',typ='I',into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHAB N.RAHNI -DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp, - fr="Définition d'une matrice interspectrale à partir de constantes, de fonctions complexes, ou du filtrage d'un bruit blanc par un oscillateur de KANAI-TAJIMI", - docu="U4.36.02-E",reentrant='n', - - DIMENSION =SIMP(statut='f',typ='I',defaut= 1 ), - - PAR_FONCTION =FACT(statut='f',min=01,max='**', - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FONCTION =SIMP(statut='o',typ=fonction_c ), - ), - KANAI_TAJIMI =FACT(statut='f',min=01,max='**', - regles=(EXCLUS('VALE_R','VALE_C'),), - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), - PAS =SIMP(statut='f',typ='R',defaut= 1. ), - AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.6 ), - FREQ_MOY =SIMP(statut='f',typ='R',defaut= 5. ), - VALE_R =SIMP(statut='f',typ='R' ), - VALE_C =SIMP(statut='f',typ='C' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROIT =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - CONSTANT =FACT(statut='f',min=01,max='**', - regles=(EXCLUS('VALE_R','VALE_C'),), - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), - PAS =SIMP(statut='f',typ='R',defaut= 1. ), - VALE_R =SIMP(statut='f',typ='R' ), - VALE_C =SIMP(statut='f',typ='C' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROIT =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, - fr="Définition des interfaces d une structure pour analyse dynamique par superposition modale ou sous structuration dynamique par synthèse modale", - docu="U4.64.01-E",reentrant='n', - NUME_DDL =SIMP(statut='o',typ=nume_ddl ), - INTERFACE =FACT(statut='o',min=01,max='**', - regles=(ENSEMBLE('NOM','TYPE'), -# erreur doc U sur la condition qui suit - UN_PARMI('NOEUD','GROUP_NO'),), - NOM =SIMP(statut='f',typ='TXM' ), - TYPE =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'), - MASQUE =SIMP(statut='f',typ='TXM',max='**'), - ), - FREQ =SIMP(statut='f',typ='R',defaut= 1.), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis, - fr="Définition d une suite croissante d entiers", - docu="U4.34.02-F",reentrant='n', - regles=(UN_PARMI('VALE','DEBUT'), - EXCLUS('VALE','INTERVALLE'),), - VALE =SIMP(statut='f',typ='I',max='**'), - DEBUT =SIMP(statut='f',typ='I'), - INTERVALLE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('NOMBRE','PAS'),), - JUSQU_A =SIMP(statut='o',typ='I'), - NOMBRE =SIMP(statut='f',typ='I'), - PAS =SIMP(statut='f',typ='I'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8, - fr="Définition d une suite croissante de réels", - docu="U4.34.01-F",reentrant='n', - regles=(UN_PARMI('VALE','DEBUT',), - EXCLUS('VALE','INTERVALLE'), - ENSEMBLE('DEBUT','INTERVALLE'), - ), - VALE =SIMP(statut='f',typ='R',max='**'), - DEBUT =SIMP(statut='f',typ='R'), - INTERVALLE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('NOMBRE','PAS'),), - JUSQU_A =SIMP(statut='o',typ='R'), - NOMBRE =SIMP(statut='f',typ='I'), - PAS =SIMP(statut='f',typ='R'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 20/12/94 AUTEUR B7BHHLV L.VIVAN -DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op= 88,sd_prod=maillage, - fr="Définition d un nouveau maillage à partir de macro éléments", - docu="U4.23.01-E",reentrant='n', - DEFI_MAILLE =FACT(statut='o',min=01,max='**', - MACR_ELEM_STAT =SIMP(statut='o',typ=macr_elem_stat,max='**' ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - TRAN =SIMP(statut='f',typ='R',max=03), - ANGL_NAUT =SIMP(statut='f',typ='R',max=03), - b_angl_naut =BLOC(condition = "ANGL_NAUT != None", - CENTRE =SIMP(statut='f',typ='R',max=03), - ), - ), - RECO_GLOBAL =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - RECO_MAILLE =FACT(statut='f',min=01,max='**', - MAILLE =SIMP(statut='o',typ=ma,max='**'), - GROUP_NO =SIMP(statut='o',typ=grno,max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ), - geometrique =BLOC(condition = "OPTION == 'GEOMETRIQUE'", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), - DEFI_NOEUD =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','NOEUD_INIT'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Renommage de tous les noeuds" ), - NOEUD_INIT =SIMP(statut='f',typ=no, - fr="Renommage d un seul noeud"), - b_tout =BLOC(condition = "TOUT != None", - PREFIXE =SIMP(statut='f',typ='TXM' ), - INDEX =SIMP(statut='o',typ='I',max='**'), - ), - b_noeud_init =BLOC(condition = "NOEUD_INIT != None", - MAILLE =SIMP(statut='o',typ=ma), - NOEUD_FIN =SIMP(statut='o',typ=no), - ), - ), - DEFI_GROUP_NO =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','MAILLE'), - AU_MOINS_UN('INDEX','GROUP_NO_FIN'), - ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),), -# la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Création de plusieurs groupes de noeuds" ), - MAILLE =SIMP(statut='f',typ=ma, - fr="Création de plusieurs groupes de noeuds"), - GROUP_NO_INIT =SIMP(statut='f',typ=grno, - fr="Création d un seul groupe de noeuds"), - PREFIXE =SIMP(statut='f',typ='TXM' ), - INDEX =SIMP(statut='f',typ='I',max='**'), - GROUP_NO_FIN =SIMP(statut='f',typ=grno), - ), -) ; -#& MODIF COMMANDE DATE 28/11/2000 AUTEUR CIBHHLV L.VIVAN -DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater, - fr="Définition des paramètres décrivant le comportement d un matériau", - docu="U4.43.01-F",reentrant='n', - regles=(EXCLUS('ELAS','ELAS_FO','ELAS_FLUI','ELAS_ISTR','ELAS_ISTR_FO','ELAS_ORTH', - 'ELAS_ORTH_FO','ELAS_COQUE','ELAS_COQUE_FO', - 'SURF_ETAT_SATU','CAM_CLAY_THM','SURF_ETAT_NSAT'), - EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'), - EXCLUS('ECRO_LINE','ECRO_LINE_FO'), - EXCLUS('TAHERI','TAHERI_FO'), - EXCLUS('ROUSSELIER','ROUSSELIER_FO'), - PRESENT_PRESENT('ROUSSELIER','TRACTION'), - PRESENT_PRESENT('ROUSSELIER_FO','TRACTION'), - EXCLUS('VMIS_CIN1_CHAB','VMIS_CIN1_CHAB_F'), - EXCLUS('VISCOCHAB','VISCOCHAB_FO'), - EXCLUS('POLY_CFC','POLY_CFC_FO'), - PRESENT_PRESENT('NORTON_HOFF','ELAS'), - EXCLUS('LEMAITRE','LEMAITRE_FO','ZIRC_CYRA2','ZIRC_EPRI'), - EXCLUS('OHNO','OHNO_FO'), - EXCLUS('LMARC','LMARC_FO'), - EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'), - EXCLUS('VENDOCHAB','VENDOCHAB_FO'), - PRESENT_PRESENT('BPEL_BETON','ELAS'), - PRESENT_PRESENT('BPEL_ACIER','ELAS'), - EXCLUS('RCCM','RCCM_FO'),), -# -# comportement élastique -# - ELAS =FACT(statut='f',min=00,max=01, - E =SIMP(statut='o',typ='R'), - NU =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - AMOR_ALPHA =SIMP(statut='f',typ='R'), - AMOR_BETA =SIMP(statut='f',typ='R'), - AMOR_HYST =SIMP(statut='f',typ='R'), - ), - ELAS_FO =FACT(statut='f',min=00,max=01, - E =SIMP(statut='o',typ=fonction), - NU =SIMP(statut='o',typ=fonction), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.), - ALPHA =SIMP(statut='f',typ=fonction), - AMOR_ALPHA =SIMP(statut='f',typ=fonction), - AMOR_BETA =SIMP(statut='f',typ=fonction), - AMOR_HYST =SIMP(statut='f',typ=fonction), - K_DESSIC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - B_ENDOGE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ), - VERI_P2 =SIMP(statut='f',typ='TXM',defaut="INST",into=("TEMP","INST",) ), - VERI_P3 =SIMP(statut='f',typ='TXM',defaut="HYDR",into=("HYDR",) ), - VERI_P4 =SIMP(statut='f',typ='TXM',defaut="SECH",into=("SECH",) ), - ), - ELAS_FLUI =FACT(statut='f',min=00,max=01, - E =SIMP(statut='o',typ='R'), - NU =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='o',typ='R'), - PROF_RHO_F_INT =SIMP(statut='o',typ=fonction), - PROF_RHO_F_EXT =SIMP(statut='o',typ=fonction), - COEF_MASS_AJOU =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="ABSC",into=("ABSC",) ), - ), - ELAS_ISTR =FACT(statut='f',min=00,max=01, - E_L =SIMP(statut='o',typ='R'), - E_N =SIMP(statut='o',typ='R'), - NU_LT =SIMP(statut='o',typ='R'), - NU_LN =SIMP(statut='o',typ='R'), - G_LN =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ELAS_ISTR_FO =FACT(statut='f',min=00,max=01, - E_L =SIMP(statut='o',typ=fonction), - E_N =SIMP(statut='o',typ=fonction), - NU_LT =SIMP(statut='o',typ=fonction), - NU_LN =SIMP(statut='o',typ=fonction), - G_LN =SIMP(statut='o',typ=fonction), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.), - ALPHA_L =SIMP(statut='f',typ=fonction), - ALPHA_N =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST")), - ), - ELAS_ORTH =FACT(statut='f',min=00,max=01, - E_L =SIMP(statut='o',typ='R'), - E_T =SIMP(statut='o',typ='R'), - E_N =SIMP(statut='f',typ='R'), - NU_LT =SIMP(statut='o',typ='R'), - NU_LN =SIMP(statut='f',typ='R'), - NU_TN =SIMP(statut='f',typ='R'), - G_LT =SIMP(statut='o',typ='R'), - G_LN =SIMP(statut='f',typ='R'), - G_TN =SIMP(statut='f',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_T =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - XT =SIMP(statut='f',typ='R',defaut= 1. ), - XC =SIMP(statut='f',typ='R',defaut= 1. ), - YT =SIMP(statut='f',typ='R',defaut= 1. ), - YC =SIMP(statut='f',typ='R',defaut= 1. ), - S_LT =SIMP(statut='f',typ='R',defaut= 1. ), - ), - ELAS_ORTH_FO =FACT(statut='f',min=00,max=01, - E_L =SIMP(statut='o',typ=fonction), - E_T =SIMP(statut='o',typ=fonction), - E_N =SIMP(statut='o',typ=fonction), - NU_LT =SIMP(statut='o',typ=fonction), - NU_LN =SIMP(statut='o',typ=fonction), - NU_TN =SIMP(statut='o',typ=fonction), - G_LT =SIMP(statut='o',typ=fonction), - G_LN =SIMP(statut='o',typ=fonction), - G_TN =SIMP(statut='o',typ=fonction), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1. ), - ALPHA_L =SIMP(statut='f',typ=fonction), - ALPHA_T =SIMP(statut='f',typ=fonction), - ALPHA_N =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ), - ), - ELAS_THM =FACT(statut='f',min=00,max=01, - RHO_S =SIMP(statut='o',typ='R'), - UN_SUR_KS =SIMP(statut='o',typ='R'), - E =SIMP(statut='f',typ='R'), - KB =SIMP(statut='f',typ='R'), - D_KB_T =SIMP(statut='f',typ='R'), - ALPHA_S =SIMP(statut='f',typ='R'), - ALPHA_D =SIMP(statut='f',typ='R'), - ), - SURF_ETAT_SATU =FACT(statut='f',min=00,max=01, - E_CHAR =SIMP(statut='o',typ='R'), - E_DECHAR =SIMP(statut='o',typ='R'), - XN =SIMP(statut='f',typ='R'), - RF =SIMP(statut='f',typ='R'), - EV_KB =SIMP(statut='f',typ='R'), - EV_XM =SIMP(statut='f',typ='R'), - D_E_T =SIMP(statut='f',typ='R'), - ALPHA0 =SIMP(statut='f',typ='R'), - ALPHA1 =SIMP(statut='f',typ='R'), - ALPHA2 =SIMP(statut='f',typ='R'), - ALPHA3 =SIMP(statut='f',typ='R'), - ALPHA_S =SIMP(statut='f',typ='R'), - ANG_FRT =SIMP(statut='o',typ='R'), - COHE =SIMP(statut='o',typ='R'), - RESI_TRAC =SIMP(statut='o',typ='R'), - ), - CAM_CLAY_THM =FACT(statut='f',min=00,max=01, - NU =SIMP(statut='f',typ='R'), - LAMBDA =SIMP(statut='o',typ='R'), - KAPA =SIMP(statut='o',typ='R'), - M =SIMP(statut='f',typ='R'), - PRES_CRIT =SIMP(statut='f',typ='R'), - GAMA =SIMP(statut='o',typ='R'), - A0_PC =SIMP(statut='o',typ='R'), - A1_PC =SIMP(statut='f',typ='R'), - A2_PC =SIMP(statut='f',typ='R'), - ALPHA0_PC =SIMP(statut='f',typ='R'), - ALPHA1_PC =SIMP(statut='f',typ='R'), - ALPHA2_PC =SIMP(statut='f',typ='R'), - ALPHA3_PC =SIMP(statut='f',typ='R'), - ALPHA_S =SIMP(statut='f',typ='R'), - ), - SURF_ETAT_NSAT =FACT(statut='f',min=00,max=01, - E_CHAR =SIMP(statut='o',typ='R'), - E_DECHAR =SIMP(statut='o',typ='R'), - XN =SIMP(statut='f',typ='R'), - RF =SIMP(statut='f',typ='R'), - EV_KB =SIMP(statut='f',typ='R'), - EV_XM =SIMP(statut='f',typ='R'), - EV_A =SIMP(statut='f',typ='R'), - EV_B =SIMP(statut='f',typ='R'), - EV_CT =SIMP(statut='f',typ='R'), - EV_SIGB =SIMP(statut='f',typ='R'), - D_E_T =SIMP(statut='f',typ='R'), - D_E_SUCC =SIMP(statut='f',typ='R'), - ANG_FRT =SIMP(statut='o',typ='R'), - COHE =SIMP(statut='o',typ='R'), - D_COEH_SUCC =SIMP(statut='f',typ='R'), - ANG_FRT_ULT =SIMP(statut='f',typ='R'), - SUCC_ULTM =SIMP(statut='f',typ='R'), - RESI_TRAC =SIMP(statut='f',typ='R'), - A_SURF_SATU =SIMP(statut='f',typ='R'), - B_SURF_SATU =SIMP(statut='f',typ='R'), - C_SURF_SATU =SIMP(statut='f',typ='R'), - D_SURF_SATU =SIMP(statut='f',typ='R'), - ), - ELAS_COQUE =FACT(statut='f',min=00,max=01, - regles=(EXCLUS('MEMB_L','M_LLLL',), - PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', - 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), - PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', - 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL', - 'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ', - 'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ', - 'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ', - 'C_LZTZ','C_TZTZ'),), - MEMB_L =SIMP(statut='f',typ='R'), - MEMB_LT =SIMP(statut='f',typ='R'), - MEMB_T =SIMP(statut='f',typ='R'), - MEMB_G_LT =SIMP(statut='f',typ='R'), - FLEX_L =SIMP(statut='f',typ='R'), - FLEX_LT =SIMP(statut='f',typ='R'), - FLEX_T =SIMP(statut='f',typ='R'), - FLEX_G_LT =SIMP(statut='f',typ='R'), - CISA_L =SIMP(statut='f',typ='R'), - CISA_T =SIMP(statut='f',typ='R'), - M_LLLL =SIMP(statut='f',typ='R'), - M_LLTT =SIMP(statut='f',typ='R'), - M_LLLT =SIMP(statut='f',typ='R'), - M_TTTT =SIMP(statut='f',typ='R'), - M_TTLT =SIMP(statut='f',typ='R'), - M_LTLT =SIMP(statut='f',typ='R'), - F_LLLL =SIMP(statut='f',typ='R'), - F_LLTT =SIMP(statut='f',typ='R'), - F_LLLT =SIMP(statut='f',typ='R'), - F_TTTT =SIMP(statut='f',typ='R'), - F_TTLT =SIMP(statut='f',typ='R'), - F_LTLT =SIMP(statut='f',typ='R'), - MF_LLLL =SIMP(statut='f',typ='R'), - MF_LLTT =SIMP(statut='f',typ='R'), - MF_LLLT =SIMP(statut='f',typ='R'), - MF_TTTT =SIMP(statut='f',typ='R'), - MF_TTLT =SIMP(statut='f',typ='R'), - MF_LTLT =SIMP(statut='f',typ='R'), - MC_LLLZ =SIMP(statut='f',typ='R'), - MC_LLTZ =SIMP(statut='f',typ='R'), - MC_TTLZ =SIMP(statut='f',typ='R'), - MC_TTTZ =SIMP(statut='f',typ='R'), - MC_LTLZ =SIMP(statut='f',typ='R'), - MC_LTTZ =SIMP(statut='f',typ='R'), - FC_LLLZ =SIMP(statut='f',typ='R'), - FC_LLTZ =SIMP(statut='f',typ='R'), - FC_TTLZ =SIMP(statut='f',typ='R'), - FC_TTTZ =SIMP(statut='f',typ='R'), - FC_LTLZ =SIMP(statut='f',typ='R'), - FC_LTTZ =SIMP(statut='f',typ='R'), - C_LZLZ =SIMP(statut='f',typ='R'), - C_LZTZ =SIMP(statut='f',typ='R'), - C_TZTZ =SIMP(statut='f',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - ), - ELAS_COQUE_FO =FACT(statut='f',min=00,max=01, - regles=(EXCLUS('MEMB_L','M_LLLL',), - PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', - 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), - PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', - 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT', - 'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ', - 'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ', - 'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),), - MEMB_L =SIMP(statut='f',typ=fonction), - MEMB_LT =SIMP(statut='f',typ=fonction), - MEMB_T =SIMP(statut='f',typ=fonction), - MEMB_G_LT =SIMP(statut='f',typ=fonction), - FLEX_L =SIMP(statut='f',typ=fonction), - FLEX_LT =SIMP(statut='f',typ=fonction), - FLEX_T =SIMP(statut='f',typ=fonction), - FLEX_G_LT =SIMP(statut='f',typ=fonction), - CISA_L =SIMP(statut='f',typ=fonction), - CISA_T =SIMP(statut='f',typ=fonction), - M_LLLL =SIMP(statut='f',typ=fonction), - M_LLTT =SIMP(statut='f',typ=fonction), - M_LLLT =SIMP(statut='f',typ=fonction), - M_TTTT =SIMP(statut='f',typ=fonction), - M_TTLT =SIMP(statut='f',typ=fonction), - M_LTLT =SIMP(statut='f',typ=fonction), - F_LLLL =SIMP(statut='f',typ=fonction), - F_LLTT =SIMP(statut='f',typ=fonction), - F_LLLT =SIMP(statut='f',typ=fonction), - F_TTTT =SIMP(statut='f',typ=fonction), - F_TTLT =SIMP(statut='f',typ=fonction), - F_LTLT =SIMP(statut='f',typ=fonction), - MF_LLLL =SIMP(statut='f',typ=fonction), - MF_LLTT =SIMP(statut='f',typ=fonction), - MF_LLLT =SIMP(statut='f',typ=fonction), - MF_TTTT =SIMP(statut='f',typ=fonction), - MF_TTLT =SIMP(statut='f',typ=fonction), - MF_LTLT =SIMP(statut='f',typ=fonction), - MC_LLLZ =SIMP(statut='f',typ=fonction), - MC_LLTZ =SIMP(statut='f',typ=fonction), - MC_TTLZ =SIMP(statut='f',typ=fonction), - MC_TTTZ =SIMP(statut='f',typ=fonction), - MC_LTLZ =SIMP(statut='f',typ=fonction), - MC_LTTZ =SIMP(statut='f',typ=fonction), - FC_LLLZ =SIMP(statut='f',typ=fonction), - FC_LLTZ =SIMP(statut='f',typ=fonction), - FC_TTLZ =SIMP(statut='f',typ=fonction), - FC_TTTZ =SIMP(statut='f',typ=fonction), - FC_LTLZ =SIMP(statut='f',typ=fonction), - FC_LTTZ =SIMP(statut='f',typ=fonction), - C_LZLZ =SIMP(statut='f',typ=fonction), - C_LZTZ =SIMP(statut='f',typ=fonction), - C_TZTZ =SIMP(statut='f',typ=fonction), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST") ), - ), - APPUI_ELAS =FACT(statut='f',min=00,max=01, - E_N =SIMP(statut='o',typ='R'), - E_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0), - ), - CABLE =FACT(statut='f',min=00,max=01, - E =SIMP(statut='o',typ='R'), - EC_SUR_E =SIMP(statut='f',typ='R',defaut= 1.E-4 ), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - AMOR_ALPHA =SIMP(statut='f',typ='R'), - AMOR_BETA =SIMP(statut='f',typ='R'), - ), -# -# comportement mécanique non linéaire -# - TRACTION =FACT(statut='f',min=00,max=01, - SIGM =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="EPSI",into=("EPSI",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - VERI_P3 =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ), - VERI_P4 =SIMP(statut='c',typ='TXM',defaut="SECH",into=("SECH",) ), - ), - ECRO_LINE =FACT(statut='f',min=00,max=01, - D_SIGM_EPSI =SIMP(statut='o',typ='R'), - SY =SIMP(statut='o',typ='R'), - ), - ECRO_LINE_FO =FACT(statut='f',min=00,max=01, - D_SIGM_EPSI =SIMP(statut='o',typ=fonction), - SY =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - PRAGER =FACT(statut='f',min=00,max=01, - C =SIMP(statut='o',typ='R'), - ), - PRAGER_FO =FACT(statut='f',min=00,max=01, - C =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - ECRO_FLEJOU =FACT(statut='f',min=00,max=01, - EP =SIMP(statut='o',typ='R'), - SY =SIMP(statut='o',typ='R'), - SU =SIMP(statut='o',typ='R'), - PUISS =SIMP(statut='o',typ='R'), - ), - TAHERI =FACT(statut='f',min=00,max=01, - R_0 =SIMP(statut='o',typ='R'), - ALPHA =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - C_INF =SIMP(statut='o',typ='R'), - S =SIMP(statut='o',typ='R'), - ), - TAHERI_FO =FACT(statut='f',min=00,max=01, - R_0 =SIMP(statut='o',typ=fonction), - ALPHA =SIMP(statut='o',typ=fonction), - M =SIMP(statut='o',typ=fonction), - A =SIMP(statut='o',typ=fonction), - B =SIMP(statut='o',typ=fonction), - C1 =SIMP(statut='o',typ=fonction), - C_INF =SIMP(statut='o',typ=fonction), - S =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - ROUSSELIER =FACT(statut='f',min=00,max=01, - D =SIMP(statut='o',typ='R'), - SIGM_1 =SIMP(statut='o',typ='R'), - PORO_INIT =SIMP(statut='o',typ='R'), - PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_LIMI =SIMP(statut='f',typ='R',defaut= 1. ), - D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ), - ), - ROUSSELIER_FO =FACT(statut='f',min=00,max=01, - D =SIMP(statut='o',typ=fonction), - SIGM_1 =SIMP(statut='o',typ=fonction), - PORO_INIT =SIMP(statut='o',typ=fonction), - PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_LIMI =SIMP(statut='f',typ='R',defaut= 1. ), - D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - CHABOCHE =FACT(statut='f',min=00,max=01, - R_I =SIMP(statut='o',typ='R'), - R_0 =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - W =SIMP(statut='o',typ='R'), - A1 =SIMP(statut='o',typ='R'), - A2 =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - C2 =SIMP(statut='o',typ='R'), - ), - VMIS_CIN1_CHAB =FACT(statut='f',min=00,max=01, - R_0 =SIMP(statut='o',typ='R'), - R_I =SIMP(statut='f',typ='R'), - B =SIMP(statut='f',typ='R',defaut= 0.0E+0), - C_I =SIMP(statut='o',typ='R'), - K =SIMP(statut='f',typ='R',defaut= 1.0E+0), - W =SIMP(statut='f',typ='R',defaut= 0.0E+0), - G_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='f',typ='R',defaut= 0.0E+0), - ), - VMIS_CIN1_CHAB_F =FACT(statut='f',min=00,max=01, - R_0 =SIMP(statut='o',typ=fonction), - R_I =SIMP(statut='o',typ=fonction), - B =SIMP(statut='o',typ=fonction), - C_I =SIMP(statut='o',typ=fonction), - K =SIMP(statut='o',typ=fonction), - W =SIMP(statut='o',typ=fonction), - G_0 =SIMP(statut='o',typ=fonction), - A_I =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)), - ), - VMIS_CIN2_CHAB =FACT(statut='f',min=00,max=01, - R_0 =SIMP(statut='o',typ='R'), - R_I =SIMP(statut='f',typ='R'), - B =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - C1_I =SIMP(statut='o',typ='R'), - C2_I =SIMP(statut='o',typ='R'), - K =SIMP(statut='f',typ='R',defaut= 1.), - W =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - G1_0 =SIMP(statut='o',typ='R'), - G2_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - ), - VMIS_CIN2_CHAB_F =FACT(statut='f',min=00,max=01, - R_0 =SIMP(statut='o',typ=fonction), - R_I =SIMP(statut='o',typ=fonction), - B =SIMP(statut='o',typ=fonction), - C1_I =SIMP(statut='o',typ=fonction), - C2_I =SIMP(statut='o',typ=fonction), - K =SIMP(statut='o',typ=fonction), - W =SIMP(statut='o',typ=fonction), - G1_0 =SIMP(statut='o',typ=fonction), - G2_0 =SIMP(statut='o',typ=fonction), - A_I =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - VISCOCHAB =FACT(statut='f',min=00,max=01, - K_0 =SIMP(statut='o',typ='R'), - A_K =SIMP(statut='o',typ='R'), - A_R =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - ALP =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - M_R =SIMP(statut='o',typ='R'), - G_R =SIMP(statut='o',typ='R'), - MU =SIMP(statut='o',typ='R'), - Q_M =SIMP(statut='o',typ='R'), - Q_0 =SIMP(statut='o',typ='R'), - QR_0 =SIMP(statut='o',typ='R'), - ETA =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - M_1 =SIMP(statut='o',typ='R'), - D1 =SIMP(statut='o',typ='R'), - G_X1 =SIMP(statut='o',typ='R'), - G1_0 =SIMP(statut='o',typ='R'), - C2 =SIMP(statut='o',typ='R'), - M_2 =SIMP(statut='o',typ='R'), - D2 =SIMP(statut='o',typ='R'), - G_X2 =SIMP(statut='o',typ='R'), - G2_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='o',typ='R'), - ), - VISCOCHAB_FO =FACT(statut='f',min=00,max=01, - K_0 =SIMP(statut='o',typ=fonction), - A_K =SIMP(statut='o',typ=fonction), - A_R =SIMP(statut='o',typ=fonction), - K =SIMP(statut='o',typ=fonction), - N =SIMP(statut='o',typ=fonction), - ALP =SIMP(statut='o',typ=fonction), - B =SIMP(statut='o',typ=fonction), - M_R =SIMP(statut='o',typ=fonction), - G_R =SIMP(statut='o',typ=fonction), - MU =SIMP(statut='o',typ=fonction), - Q_M =SIMP(statut='o',typ=fonction), - Q_0 =SIMP(statut='o',typ=fonction), - QR_0 =SIMP(statut='o',typ=fonction), - ETA =SIMP(statut='o',typ=fonction), - C1 =SIMP(statut='o',typ=fonction), - M_1 =SIMP(statut='o',typ=fonction), - D1 =SIMP(statut='o',typ=fonction), - G_X1 =SIMP(statut='o',typ=fonction), - G1_0 =SIMP(statut='o',typ=fonction), - C2 =SIMP(statut='o',typ=fonction), - M_2 =SIMP(statut='o',typ=fonction), - D2 =SIMP(statut='o',typ=fonction), - G_X2 =SIMP(statut='o',typ=fonction), - G2_0 =SIMP(statut='o',typ=fonction), - A_I =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - POLY_CFC =FACT(statut='f',min=00,max=01, - TEXTURE =SIMP(statut='o',typ=(tabl_texture) ), - DL =SIMP(statut='f',typ='R'), - DA =SIMP(statut='f',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - TAU_0 =SIMP(statut='o',typ='R'), - Q1 =SIMP(statut='o',typ='R'), - B1 =SIMP(statut='o',typ='R'), - HL =SIMP(statut='o',typ='R'), - Q2 =SIMP(statut='o',typ='R'), - B2 =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - D1 =SIMP(statut='o',typ='R'), - C2 =SIMP(statut='o',typ='R'), - ), - POLY_CFC_FO =FACT(statut='f',min=00,max=01, - TEXTURE =SIMP(statut='o',typ=(tabl_texture) ), - DL =SIMP(statut='o',typ=fonction), - DA =SIMP(statut='o',typ=fonction), - N =SIMP(statut='o',typ=fonction), - K =SIMP(statut='o',typ=fonction), - TAU_0 =SIMP(statut='o',typ=fonction), - Q1 =SIMP(statut='o',typ=fonction), - B1 =SIMP(statut='o',typ=fonction), - HL =SIMP(statut='o',typ=fonction), - Q2 =SIMP(statut='o',typ=fonction), - B2 =SIMP(statut='o',typ=fonction), - C1 =SIMP(statut='o',typ=fonction), - D1 =SIMP(statut='o',typ=fonction), - C2 =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - NORTON_HOFF =FACT(statut='f',min=00,max=01, - N =SIMP(statut='o',typ='R'), - SY =SIMP(statut='o',typ='R'), - ), - LEMAITRE =FACT(statut='f',min=00,max=01, - N =SIMP(statut='o',typ='R'), - UN_SUR_K =SIMP(statut='o',typ='R'), - UN_SUR_M =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - QSR_K =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ZIRC_CYRA2 =FACT(statut='f',min=00,max=01, - EPSI_FAB =SIMP(statut='o',typ=fonction), - TEMP_RECUIT =SIMP(statut='o',typ=fonction), - FLUX_PHI =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ), - ), - ZIRC_EPRI =FACT(statut='f',min=00,max=01, - FLUX_PHI =SIMP(statut='o',typ='R'), - R_P =SIMP(statut='o',typ='R'), - THETA_MAX =SIMP(statut='o',typ='R'), - ), - LEMAITRE_FO =FACT(statut='f',min=00,max=01, - N =SIMP(statut='o',typ=fonction), - UN_SUR_K =SIMP(statut='o',typ=fonction), - UN_SUR_M =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - GRAN_IRRA =FACT(statut='f',min=00,max=01, - FLUX_L =SIMP(statut='o',typ=fonction), - FLUX_TN =SIMP(statut='o',typ=fonction), - FONC_MULT =SIMP(statut='f',typ=fonction), - A =SIMP(statut='o',typ='R'), - S =SIMP(statut='f',typ='R'), - VERI_P1 =SIMP(statut='f',typ='TXM',defaut="X",into=("X",) ), - VERI_P2 =SIMP(statut='f',typ='TXM',defaut="Y",into=("Y",) ), - VERI_P3 =SIMP(statut='f',typ='TXM',defaut="Z",into=("Z",) ), - VERI_P4 =SIMP(statut='f',typ='TXM',defaut="INST",into=("INST",) ), - ), - OHNO =FACT(statut='f',min=00,max=01, - R_I =SIMP(statut='o',typ='R'), - R_0 =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - PHI =SIMP(statut='o',typ='R'), - A1 =SIMP(statut='o',typ='R'), - A2 =SIMP(statut='o',typ='R'), - A3 =SIMP(statut='o',typ='R'), - A4 =SIMP(statut='o',typ='R'), - A5 =SIMP(statut='o',typ='R'), - GAMMA1 =SIMP(statut='o',typ='R'), - GAMMA2 =SIMP(statut='o',typ='R'), - GAMMA3 =SIMP(statut='o',typ='R'), - GAMMA4 =SIMP(statut='o',typ='R'), - GAMMA5 =SIMP(statut='o',typ='R'), - M1 =SIMP(statut='o',typ='R'), - M2 =SIMP(statut='o',typ='R'), - M3 =SIMP(statut='o',typ='R'), - M4 =SIMP(statut='o',typ='R'), - M5 =SIMP(statut='o',typ='R'), - ), - OHNO_FO =FACT(statut='f',min=00,max=01, - R_I =SIMP(statut='o',typ=fonction), - R_0 =SIMP(statut='o',typ=fonction), - B =SIMP(statut='o',typ=fonction), - PHI =SIMP(statut='o',typ=fonction), - A1 =SIMP(statut='o',typ=fonction), - A2 =SIMP(statut='o',typ=fonction), - A3 =SIMP(statut='o',typ=fonction), - A4 =SIMP(statut='o',typ=fonction), - A5 =SIMP(statut='o',typ=fonction), - GAMMA1 =SIMP(statut='o',typ=fonction), - GAMMA2 =SIMP(statut='o',typ=fonction), - GAMMA3 =SIMP(statut='o',typ=fonction), - GAMMA4 =SIMP(statut='o',typ=fonction), - GAMMA5 =SIMP(statut='o',typ=fonction), - M1 =SIMP(statut='o',typ=fonction), - M2 =SIMP(statut='o',typ=fonction), - M3 =SIMP(statut='o',typ=fonction), - M4 =SIMP(statut='o',typ=fonction), - M5 =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - LMARC =FACT(statut='f',min=00,max=01, - DE_0 =SIMP(statut='o',typ='R'), - R_0 =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - Y_I =SIMP(statut='o',typ='R'), - Y_0 =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - A_0 =SIMP(statut='o',typ='R'), - RM =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - P =SIMP(statut='o',typ='R'), - P1 =SIMP(statut='o',typ='R'), - P2 =SIMP(statut='o',typ='R'), - M11 =SIMP(statut='o',typ='R'), - M22 =SIMP(statut='o',typ='R'), - M33 =SIMP(statut='o',typ='R'), - M66 =SIMP(statut='o',typ='R'), - N11 =SIMP(statut='o',typ='R'), - N22 =SIMP(statut='o',typ='R'), - N33 =SIMP(statut='o',typ='R'), - N66 =SIMP(statut='o',typ='R'), - Q11 =SIMP(statut='o',typ='R'), - Q22 =SIMP(statut='o',typ='R'), - Q33 =SIMP(statut='o',typ='R'), - Q66 =SIMP(statut='o',typ='R'), - R11 =SIMP(statut='o',typ='R'), - R22 =SIMP(statut='o',typ='R'), - R33 =SIMP(statut='o',typ='R'), - R66 =SIMP(statut='o',typ='R'), - ), - LMARC_FO =FACT(statut='f',min=00,max=01, - DE_0 =SIMP(statut='o',typ=fonction), - R_0 =SIMP(statut='o',typ=fonction), - N =SIMP(statut='o',typ=fonction), - K =SIMP(statut='o',typ=fonction), - Y_I =SIMP(statut='o',typ=fonction), - Y_0 =SIMP(statut='o',typ=fonction), - B =SIMP(statut='o',typ=fonction), - A_0 =SIMP(statut='o',typ=fonction), - RM =SIMP(statut='o',typ=fonction), - M =SIMP(statut='o',typ=fonction), - P =SIMP(statut='o',typ=fonction), - P1 =SIMP(statut='o',typ=fonction), - P2 =SIMP(statut='o',typ=fonction), - M11 =SIMP(statut='o',typ=fonction), - M22 =SIMP(statut='o',typ=fonction), - M33 =SIMP(statut='o',typ=fonction), - M66 =SIMP(statut='o',typ=fonction), - N11 =SIMP(statut='o',typ=fonction), - N22 =SIMP(statut='o',typ=fonction), - N33 =SIMP(statut='o',typ=fonction), - N66 =SIMP(statut='o',typ=fonction), - Q11 =SIMP(statut='o',typ=fonction), - Q22 =SIMP(statut='o',typ=fonction), - Q33 =SIMP(statut='o',typ=fonction), - Q66 =SIMP(statut='o',typ=fonction), - R11 =SIMP(statut='o',typ=fonction), - R22 =SIMP(statut='o',typ=fonction), - R33 =SIMP(statut='o',typ=fonction), - R66 =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - VMIS_POUTRE =FACT(statut='f',min=00,max=01, - NP =SIMP(statut='o',typ='R'), - MEY =SIMP(statut='o',typ='R'), - MPY =SIMP(statut='o',typ='R'), - CAY =SIMP(statut='o',typ='R'), - CBY =SIMP(statut='o',typ='R'), - MEZ =SIMP(statut='o',typ='R'), - MPZ =SIMP(statut='o',typ='R'), - CAZ =SIMP(statut='o',typ='R'), - CBZ =SIMP(statut='o',typ='R'), - MPX =SIMP(statut='o',typ='R'), - ), - VMIS_POUTRE_FO =FACT(statut='f',min=00,max=01, - NP =SIMP(statut='o',typ=fonction), - MEY =SIMP(statut='o',typ=fonction), - MPY =SIMP(statut='o',typ=fonction), - CAY =SIMP(statut='o',typ=fonction), - CBY =SIMP(statut='o',typ=fonction), - MEZ =SIMP(statut='o',typ=fonction), - MPZ =SIMP(statut='o',typ=fonction), - CAZ =SIMP(statut='o',typ=fonction), - CBZ =SIMP(statut='o',typ=fonction), - MPX =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - ARME =FACT(statut='f',min=00,max=01, - KYE =SIMP(statut='o',typ='R'), - DLE =SIMP(statut='o',typ='R'), - KYP =SIMP(statut='o',typ='R'), - DLP =SIMP(statut='o',typ='R'), - KYG =SIMP(statut='o',typ='R'), - ), - ASSE_CORN =FACT(statut='f',min=00,max=01, - NU_1 =SIMP(statut='o',typ='R'), - MU_1 =SIMP(statut='o',typ='R'), - DXU_1 =SIMP(statut='o',typ='R'), - DRYU_1 =SIMP(statut='o',typ='R'), - C_1 =SIMP(statut='o',typ='R'), - NU_2 =SIMP(statut='o',typ='R'), - MU_2 =SIMP(statut='o',typ='R'), - DXU_2 =SIMP(statut='o',typ='R'), - DRYU_2 =SIMP(statut='o',typ='R'), - C_2 =SIMP(statut='o',typ='R'), - KY =SIMP(statut='o',typ='R'), - KZ =SIMP(statut='o',typ='R'), - KRX =SIMP(statut='o',typ='R'), - KRZ =SIMP(statut='o',typ='R'), - ), - DIS_CONTACT =FACT(statut='f',min=00,max=01, - regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA'),), - RIGI_NOR =SIMP(statut='f',typ='R' ), - DIST_1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DIST_2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - JEU =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - KT_ULTM =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - EFFO_N_INIT =SIMP(statut='f',typ='R'), - RIGI_N_FO =SIMP(statut='f',typ=fonction), - RIGI_N_IRRA =SIMP(statut='f',typ=fonction), - RELA_MZ =SIMP(statut='f',typ=fonction), - C_PRAGER_MZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="DRZ",into=("DRZ",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ), - ), - NADAI_B =FACT(statut='f',min=00,max=01, - F_C =SIMP(statut='o',typ='R'), - F_T =SIMP(statut='o',typ='R'), - CRIT_E_C =SIMP(statut='o',typ='R'), - EPSP_P_C =SIMP(statut='o',typ='R'), - EPSP_R_C =SIMP(statut='o',typ='R'), - EPSI_R_T =SIMP(statut='o',typ='R'), - FAC_T_C =SIMP(statut='o',typ='R'), - ), - BETON_DOUBLE_DP =FACT(statut='f',min=00,max=01, - F_C =SIMP(statut='o',typ=fonction), - F_T =SIMP(statut='o',typ=fonction), - COEF_BIAX =SIMP(statut='o',typ=fonction), - ENER_COMP_RUPT =SIMP(statut='o',typ=fonction), - ENER_TRAC_RUPT =SIMP(statut='o',typ=fonction), - COEF_ELAS_COMP =SIMP(statut='o',typ='R'), - ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ), - ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ), - VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ), - VERI_P2 =SIMP(statut='f',typ='TXM',defaut="INST",into=("TEMP","INST",) ), - VERI_P3 =SIMP(statut='f',typ='TXM',defaut="HYDR",into=("HYDR",) ), - VERI_P4 =SIMP(statut='f',typ='TXM',defaut="SECH",into=("SECH",) ), - ), - VENDOCHAB =FACT(statut='f',min=00,max=01, - S_VP =SIMP(statut='o',typ='R'), - SEDVP1 =SIMP(statut='o',typ='R'), - SEDVP2 =SIMP(statut='o',typ='R'), - N_VP =SIMP(statut='o',typ='R'), - M_VP =SIMP(statut='o',typ='R'), - K_VP =SIMP(statut='o',typ='R'), - R_D =SIMP(statut='o',typ='R'), - A_D =SIMP(statut='o',typ='R'), - K_D =SIMP(statut='o',typ='R'), - ), - VENDOCHAB_FO =FACT(statut='f',min=00,max=01, - S_VP =SIMP(statut='o',typ=fonction), - SEDVP1 =SIMP(statut='o',typ=fonction), - SEDVP2 =SIMP(statut='o',typ=fonction), - N_VP =SIMP(statut='o',typ=fonction), - M_VP =SIMP(statut='o',typ=fonction), - K_VP =SIMP(statut='o',typ=fonction), - R_D =SIMP(statut='o',typ=fonction), - A_D =SIMP(statut='o',typ=fonction), - K_D =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",) ), - VERI_P2 =SIMP(statut='f',typ='TXM',defaut="X",into=("X",) ), - ), - PINTO_MENEGOTTO =FACT(statut='f',min=00,max=01, - SY =SIMP(statut='o',typ='R'), - EPSI_ULTM =SIMP(statut='o',typ='R'), - SIGM_ULTM =SIMP(statut='o',typ='R'), - ELAN =SIMP(statut='f',typ='R',defaut= 4. ), - EPSP_HARD =SIMP(statut='o',typ='R'), - R_PM =SIMP(statut='f',typ='R',defaut= 20. ), - EP_SUR_E =SIMP(statut='f',typ='R'), - A1_PM =SIMP(statut='f',typ='R',defaut= 18.5 ), - A2_PM =SIMP(statut='f',typ='R',defaut= 0.15 ), - A6_PM =SIMP(statut='f',typ='R',defaut= 620. ), - C_PM =SIMP(statut='f',typ='R',defaut= 0.5 ), - A_PM =SIMP(statut='f',typ='R',defaut= 6.0E-3 ), - ), - BPEL_BETON =FACT(statut='f',min=00,max=01, - PERT_FLUA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PERT_RETR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - BPEL_ACIER =FACT(statut='f',min=00,max=01, - RELAX_1000 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - MU0_RELAX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SY =SIMP(statut='o',typ='R'), - FROT_COURB =SIMP(statut='o',typ='R'), - FROT_LINE =SIMP(statut='o',typ='R'), - ), - CJS =FACT(statut='f',min=00,max=01, - regles=(ENSEMBLE('B_CJS','C_CJS','MU_CJS','PCO',), - ENSEMBLE('N_CJS','KP','RC',), - PRESENT_ABSENT('A_CJS','B_CJS',), - PRESENT_PRESENT('A_CJS','N_CJS',), - PRESENT_PRESENT('B_CJS','N_CJS', ),), - BETA_CJS =SIMP(statut='o',typ='R'), - RM =SIMP(statut='o',typ='R'), - N_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - KP =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - A_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - B_CJS =SIMP(statut='f',typ='R',defaut= 1.0E+25 ), - C_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GAMMA_CJS =SIMP(statut='o',typ='R'), - MU_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PCO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PA =SIMP(statut='o',typ='R'), - Q_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - R_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ECRO_ASYM_LINE =FACT(statut='f',min=00,max=01, - DC_SIGM_EPSI =SIMP(statut='o',typ='R'), - SY_C =SIMP(statut='o',typ='R'), - DT_SIGM_EPSI =SIMP(statut='o',typ='R'), - SY_T =SIMP(statut='o',typ='R'), - ), - GRANGER_FP =FACT(statut='f',min=00,max=01, - J1 =SIMP(statut='f',typ='R'), - J2 =SIMP(statut='f',typ='R'), - J3 =SIMP(statut='f',typ='R'), - J4 =SIMP(statut='f',typ='R'), - J5 =SIMP(statut='f',typ='R'), - J6 =SIMP(statut='f',typ='R'), - J7 =SIMP(statut='f',typ='R'), - J8 =SIMP(statut='f',typ='R'), - TAUX_1 =SIMP(statut='f',typ='R'), - TAUX_2 =SIMP(statut='f',typ='R'), - TAUX_3 =SIMP(statut='f',typ='R'), - TAUX_4 =SIMP(statut='f',typ='R'), - TAUX_5 =SIMP(statut='f',typ='R'), - TAUX_6 =SIMP(statut='f',typ='R'), - TAUX_7 =SIMP(statut='f',typ='R'), - TAUX_8 =SIMP(statut='f',typ='R'), - FONC_DESORP =SIMP(statut='f',typ=fonction), - QSR_K =SIMP(statut='f',typ='R'), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="SECH",into=("SECH",) ), - ), - V_GRANGER_FP =FACT(statut='f',min=00,max=01, - QSR_VEIL =SIMP(statut='f',typ='R'), - FONC_V =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ), - ), -# -# comportement thermique -# - THER_NL =FACT(statut='f',min=00,max=01, - regles=(UN_PARMI('BETA','RHO_CP', ),), - LAMBDA =SIMP(statut='o',typ=fonction), - BETA =SIMP(statut='f',typ=fonction), - RHO_CP =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - THER_HYDR =FACT(statut='f',min=00,max=01, - LAMBDA =SIMP(statut='o',typ=fonction), - BETA =SIMP(statut='f',typ=fonction), - AFFINITE =SIMP(statut='o',typ=fonction), - CHALHYDR =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='o',typ='R'), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("HYDR",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ), - ), - THER =FACT(statut='f',min=00,max=01, - LAMBDA =SIMP(statut='o',typ='R'), - RHO_CP =SIMP(statut='f',typ='R'), - ), - THER_FO =FACT(statut='f',min=00,max=01, - LAMBDA =SIMP(statut='o',typ=fonction), - RHO_CP =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ), - ), - THER_ORTH =FACT(statut='f',min=00,max=01, - LAMBDA_L =SIMP(statut='o',typ='R'), - LAMBDA_T =SIMP(statut='o',typ='R'), - LAMBDA_N =SIMP(statut='f',typ='R'), - RHO_CP =SIMP(statut='f',typ='R'), - ), - THER_COQUE =FACT(statut='f',min=00,max=01, - COND_LMM =SIMP(statut='o',typ='R'), - COND_TMM =SIMP(statut='o',typ='R'), - COND_LMP =SIMP(statut='o',typ='R'), - COND_TMP =SIMP(statut='o',typ='R'), - COND_LPP =SIMP(statut='o',typ='R'), - COND_TPP =SIMP(statut='o',typ='R'), - COND_LSI =SIMP(statut='o',typ='R'), - COND_TSI =SIMP(statut='o',typ='R'), - COND_NMM =SIMP(statut='o',typ='R'), - COND_NMP =SIMP(statut='o',typ='R'), - COND_NPP =SIMP(statut='o',typ='R'), - COND_NSI =SIMP(statut='o',typ='R'), - CMAS_MM =SIMP(statut='f',typ='R'), - CMAS_MP =SIMP(statut='f',typ='R'), - CMAS_PP =SIMP(statut='f',typ='R'), - CMAS_SI =SIMP(statut='f',typ='R'), - ), - THER_COQUE_FO =FACT(statut='f',min=00,max=01, - COND_LMM =SIMP(statut='o',typ=fonction), - COND_TMM =SIMP(statut='o',typ=fonction), - COND_LMP =SIMP(statut='o',typ=fonction), - COND_TMP =SIMP(statut='o',typ=fonction), - COND_LPP =SIMP(statut='o',typ=fonction), - COND_TPP =SIMP(statut='o',typ=fonction), - COND_LSI =SIMP(statut='o',typ=fonction), - COND_TSI =SIMP(statut='o',typ=fonction), - COND_NMM =SIMP(statut='o',typ=fonction), - COND_NMP =SIMP(statut='o',typ=fonction), - COND_NPP =SIMP(statut='o',typ=fonction), - COND_NSI =SIMP(statut='o',typ=fonction), - CMAS_MM =SIMP(statut='f',typ=fonction), - CMAS_MP =SIMP(statut='f',typ=fonction), - CMAS_PP =SIMP(statut='f',typ=fonction), - CMAS_SI =SIMP(statut='f',typ=fonction), - ), - SECH_GRANGER =FACT(statut='f',min=00,max=01, - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='o',typ='R'), - TEMP_0_C =SIMP(statut='o',typ='R'), - ), - SECH_MENSI =FACT(statut='f',min=00,max=01, - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - ), - SECH_BAZANT =FACT(statut='f',min=00,max=01, - D1 =SIMP(statut='o',typ='R'), - ALPHA_BAZANT =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - FONC_DESORP =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - SECH_NAPPE =FACT(statut='f',min=00,max=01, - FONCTION =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="TSEC",into=("TSEC",) ), - ), -# -# comportement métallurgique -# - META_ACIER =FACT(statut='f',min=00,max=01, - TRC =SIMP(statut='o',typ=(tabl_trc) ), - AR3 =SIMP(statut='o',typ='R'), - ALPHA =SIMP(statut='o',typ='R'), - MS0 =SIMP(statut='o',typ='R'), - AC1 =SIMP(statut='o',typ='R'), - AC3 =SIMP(statut='o',typ='R'), - TAUX_1 =SIMP(statut='o',typ='R'), - TAUX_3 =SIMP(statut='o',typ='R'), - LAMBDA0 =SIMP(statut='f',typ='R'), - QSR_K =SIMP(statut='f',typ='R'), - D10 =SIMP(statut='f',typ='R'), - WSR_K =SIMP(statut='f',typ='R'), - ), - META_ZIRC =FACT(statut='f',min=00,max=01, - TDEQ =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - TDC =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='f',typ='R'), - TDR =SIMP(statut='o',typ='R'), - AR =SIMP(statut='o',typ='R'), - BR =SIMP(statut='o',typ='R'), - ), - DURT_META =FACT(statut='f',min=00,max=01, - F1_DURT =SIMP(statut='o',typ='R'), - F2_DURT =SIMP(statut='o',typ='R'), - F3_DURT =SIMP(statut='o',typ='R'), - F4_DURT =SIMP(statut='o',typ='R'), - C_DURT =SIMP(statut='o',typ='R'), - ), - ELAS_META =FACT(statut='f',min=00,max=01, - E =SIMP(statut='o',typ='R'), - NU =SIMP(statut='o',typ='R'), - F_ALPHA =SIMP(statut='o',typ='R'), - C_ALPHA =SIMP(statut='o',typ='R'), - PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), - EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), - F1_SY =SIMP(statut='f',typ='R'), - F2_SY =SIMP(statut='f',typ='R'), - F3_SY =SIMP(statut='f',typ='R'), - F4_SY =SIMP(statut='f',typ='R'), - C_SY =SIMP(statut='f',typ='R'), - SY_MELANGE =SIMP(statut='f',typ=fonction), - F1_S_VP =SIMP(statut='f',typ='R'), - F2_S_VP =SIMP(statut='f',typ='R'), - F3_S_VP =SIMP(statut='f',typ='R'), - F4_S_VP =SIMP(statut='f',typ='R'), - C_S_VP =SIMP(statut='f',typ='R' ), - S_VP_MELANGE =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="META",into=("META",)), - ), - ELAS_META_FO =FACT(statut='f',min=00,max=01, - E =SIMP(statut='o',typ=fonction), - NU =SIMP(statut='o',typ=fonction), - F_ALPHA =SIMP(statut='o',typ=fonction), - C_ALPHA =SIMP(statut='o',typ=fonction), - PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), - EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), - F1_SY =SIMP(statut='f',typ=fonction), - F2_SY =SIMP(statut='f',typ=fonction), - F3_SY =SIMP(statut='f',typ=fonction), - F4_SY =SIMP(statut='f',typ=fonction), - C_SY =SIMP(statut='f',typ=fonction), - SY_MELANGE =SIMP(statut='f',typ=fonction), - F1_S_VP =SIMP(statut='f',typ=fonction), - F2_S_VP =SIMP(statut='f',typ=fonction), - F3_S_VP =SIMP(statut='f',typ=fonction), - F4_S_VP =SIMP(statut='f',typ=fonction), - C_S_VP =SIMP(statut='f',typ=fonction), - S_VP_MELANGE =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="META",into=("META",)), - ), - META_ECRO_LINE =FACT(statut='f',min=00,max=01, - F1_D_SIGM_EPSI =SIMP(statut='f',typ=fonction), - F2_D_SIGM_EPSI =SIMP(statut='f',typ=fonction), - F3_D_SIGM_EPSI =SIMP(statut='f',typ=fonction), - F4_D_SIGM_EPSI =SIMP(statut='f',typ=fonction), - C_D_SIGM_EPSI =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)), - ), - META_TRACTION =FACT(statut='f',min=00,max=01, - SIGM_F1 =SIMP(statut='f',typ=fonction), - SIGM_F2 =SIMP(statut='f',typ=fonction), - SIGM_F3 =SIMP(statut='f',typ=fonction), - SIGM_F4 =SIMP(statut='f',typ=fonction), - SIGM_C =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="EPSI",into=("EPSI",)), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)), - ), - META_VISC_FO =FACT(statut='f',min=00,max=01, - F1_ETA =SIMP(statut='f',typ=fonction), - F1_N =SIMP(statut='f',typ=fonction), - F1_C =SIMP(statut='f',typ=fonction), - F1_M =SIMP(statut='f',typ=fonction), - F2_ETA =SIMP(statut='f',typ=fonction), - F2_N =SIMP(statut='f',typ=fonction), - F2_C =SIMP(statut='f',typ=fonction), - F2_M =SIMP(statut='f',typ=fonction), - F3_ETA =SIMP(statut='f',typ=fonction), - F3_N =SIMP(statut='f',typ=fonction), - F3_C =SIMP(statut='f',typ=fonction), - F3_M =SIMP(statut='f',typ=fonction), - F4_ETA =SIMP(statut='f',typ=fonction), - F4_N =SIMP(statut='f',typ=fonction), - F4_C =SIMP(statut='f',typ=fonction), - F4_M =SIMP(statut='f',typ=fonction), - C_ETA =SIMP(statut='f',typ=fonction), - C_N =SIMP(statut='f',typ=fonction), - C_C =SIMP(statut='f',typ=fonction), - C_M =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - META_PT =FACT(statut='f',min=00,max=01, - F1_K =SIMP(statut='f',typ='R'), - F2_K =SIMP(statut='f',typ='R'), - F3_K =SIMP(statut='f',typ='R'), - F4_K =SIMP(statut='f',typ='R'), - F1_D_F_META =SIMP(statut='f',typ=fonction), - F2_D_F_META =SIMP(statut='f',typ=fonction), - F3_D_F_META =SIMP(statut='f',typ=fonction), - F4_D_F_META =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="META",into=("META",) ), - ), - META_RE =FACT(statut='f',min=00,max=01, - C_F1_THETA =SIMP(statut='f',typ='R'), - C_F2_THETA =SIMP(statut='f',typ='R'), - C_F3_THETA =SIMP(statut='f',typ='R'), - C_F4_THETA =SIMP(statut='f',typ='R'), - F1_C_THETA =SIMP(statut='f',typ='R'), - F2_C_THETA =SIMP(statut='f',typ='R'), - F3_C_THETA =SIMP(statut='f',typ='R'), - F4_C_THETA =SIMP(statut='f',typ='R'), - ), -# -# comportement fluide -# - FLUIDE =FACT(statut='f',min=00,max=01, - regles=(EXCLUS('CELE_C','CELE_R'),), - RHO =SIMP(statut='o',typ='R'), - CELE_C =SIMP(statut='f',typ='C'), - CELE_R =SIMP(statut='f',typ='R'), - ), - PORO_JOINT =FACT(statut='f',min=00,max=01, - RHO_FLUI =SIMP(statut='o',typ='R'), - ENTRO_FLUI =SIMP(statut='o',typ='R'), - BIOT_M =SIMP(statut='o',typ='R'), - C_0 =SIMP(statut='o',typ='R'), - T_R =SIMP(statut='o',typ='R'), - ALPHA_M =SIMP(statut='o',typ='R'), - LAMBDA_T =SIMP(statut='o',typ='R'), - LAMBDA_H =SIMP(statut='o',typ='R'), - SOURCE_INIT =SIMP(statut='o',typ='R'), - OMEGA_0 =SIMP(statut='o',typ='R'), - ), - THM_LIQU =FACT(statut='f',min=00,max=01, - RHO =SIMP(statut='o',typ='R'), - UN_SUR_K =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=fonction), - D_VISC_TEMP =SIMP(statut='f',typ=fonction), - LAMBDA =SIMP(statut='f',typ=fonction), - D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction), - COEF_HENRY =SIMP(statut='f',typ='R'), - VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",)), - ), - THM_GAZ =FACT(statut='f',min=00,max=01, - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=fonction), - D_VISC_TEMP =SIMP(statut='f',typ=fonction), - LAMBDA =SIMP(statut='f',typ=fonction), - D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",)), - ), - THM_VAPE_GAZ =FACT(statut='f',min=00,max=01, - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=fonction), - D_VISC_TEMP =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",)), - ), - THM_INIT =FACT(statut='f',min=00,max=01, - TEMP =SIMP(statut='o',typ='R'), - PRE1 =SIMP(statut='o',typ='R'), - PRE2 =SIMP(statut='o',typ='R'), - PORO =SIMP(statut='o',typ='R'), - PRES_VAPE =SIMP(statut='o',typ='R'), - DEGR_SATU =SIMP(statut='f',typ='R'), - PRES_ATMO =SIMP(statut='f',typ='R'), - ), - THM_DIFFU =FACT(statut='f',min=00,max=01, - R_GAZ =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - BIOT_COEF =SIMP(statut='f',typ='R'), - SATU_PRES =SIMP(statut='f',typ=fonction), - D_SATU_PRES =SIMP(statut='f',typ=fonction), - PESA_X =SIMP(statut='f',typ='R'), - PESA_Y =SIMP(statut='f',typ='R'), - PESA_Z =SIMP(statut='f',typ='R'), - PERM_IN =SIMP(statut='f',typ=fonction), - PERM_LIQU =SIMP(statut='f',typ=fonction), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=fonction), - PERM_GAZ =SIMP(statut='f',typ=fonction), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=fonction), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=fonction), - FICK =SIMP(statut='f',typ=fonction), - D_FICK_TEMP =SIMP(statut='f',typ=fonction), - D_FICK_GAZ_PRES =SIMP(statut='f',typ=fonction), - LAMBDA =SIMP(statut='f',typ=fonction), - D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction), - SIGMA_T =SIMP(statut='f',typ=fonction), - D_SIGMA_T =SIMP(statut='f',typ=fonction), - PERM_G_INTR =SIMP(statut='f',typ=fonction), - CHAL_VAPO =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",) ), - VERI_P2 =SIMP(statut='f',typ='TXM',defaut="SAT",into=("SAT",) ), - VERI_P3 =SIMP(statut='f',typ='TXM',defaut="PORO",into=("PORO",) ), - VERI_P4 =SIMP(statut='f',typ='TXM',defaut="PGAZ",into=("PGAZ",) ), - VERI_P5 =SIMP(statut='f',typ='TXM',defaut="PGAP",into=("PGAP",) ), - ), -# -# courbes et coefficients associés à la fatigue et au dommage -# - FATIGUE =FACT(statut='f',min=00,max=01, - regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'), - PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'), - PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'), - ENSEMBLE('A_BASQUIN','BETA_BASQUIN'), - ENSEMBLE('A0','A1','A2','A3','SL'), - PRESENT_PRESENT('A0','E_REFE'), - ENSEMBLE('D0','TAU0'),), - WOHLER =SIMP(statut='f',typ=fonction), - A_BASQUIN =SIMP(statut='f',typ='R'), - BETA_BASQUIN =SIMP(statut='f',typ='R'), - A0 =SIMP(statut='f',typ='R'), - A1 =SIMP(statut='f',typ='R'), - A2 =SIMP(statut='f',typ='R'), - A3 =SIMP(statut='f',typ='R'), - SL =SIMP(statut='f',typ='R'), - MANSON_COFFIN =SIMP(statut='f',typ=fonction), - E_REFE =SIMP(statut='f',typ='R'), - D0 =SIMP(statut='f',typ='R'), - TAU0 =SIMP(statut='f',typ='R'), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="SIGM",into=("SIGM",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="EPSI",into=("EPSI",) ), - ), - DOMMA_LEMAITRE =FACT(statut='f',min=00,max=01, - S =SIMP(statut='o',typ=fonction), - EPSP_SEUIL =SIMP(statut='o',typ='R'), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), -# -# autres comportements ... -# - WEIBULL =FACT(statut='f',min=00,max=01, - M =SIMP(statut='o',typ='R'), - VOLU_REFE =SIMP(statut='o',typ='R'), - SIGM_REFE =SIMP(statut='o',typ='R'), - SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ), - CONTACT =FACT(statut='f',min=00,max=01, - E_N =SIMP(statut='o',typ='R'), - E_T =SIMP(statut='f',typ='R',defaut= 0.E+0), - COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0), - ), - NON_LOCAL =FACT(statut='f',min=00,max=01, - LONG_CARA =SIMP(statut='o',typ='R'), - COEF_RIGI_MINI =SIMP(statut='f',typ='R'), - ), - RUPT_FRAG =FACT(statut='f',min=00,max=01, - GC =SIMP(statut='o',typ='R'), - ), - RCCM =FACT(statut='f',min=00,max=01, - SY_02 =SIMP(statut='f',typ='R'), - SM =SIMP(statut='f',typ='R'), - SU =SIMP(statut='f',typ='R'), - SC =SIMP(statut='f',typ='R'), - SH =SIMP(statut='f',typ='R'), - N_KE =SIMP(statut='f',typ='R'), - M_KE =SIMP(statut='f',typ='R'), - ), - RCCM_FO =FACT(statut='f',min=00,max=01, - SY_02 =SIMP(statut='f',typ=fonction), - SM =SIMP(statut='f',typ=fonction), - SU =SIMP(statut='f',typ=fonction), - S =SIMP(statut='f',typ=fonction), - N_KE =SIMP(statut='f',typ=fonction), - M_KE =SIMP(statut='f',typ=fonction), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN -DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene, - fr="Définition d un modèle structure global à partir de macro éléments pour analyse modale ou harmonique par sous structuration", - docu="U4.65.02-D",reentrant='n', - SOUS_STRUC =FACT(statut='o',min=01,max='**', - NOM =SIMP(statut='o',typ='TXM' ), - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=03), - TRANS =SIMP(statut='f',typ='R',max=03), - ), - LIAISON =FACT(statut='o',min=01,max='**', - SOUS_STRUC_1 =SIMP(statut='o',typ='TXM' ), - INTERFACE_1 =SIMP(statut='o',typ='TXM' ), - SOUS_STRUC_2 =SIMP(statut='o',typ='TXM' ), - INTERFACE_2 =SIMP(statut='o',typ='TXM' ), - ), - VERIF =FACT(statut='f',min=01,max='**', -# dans la doc U stop_erreur est obligatoire - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), -) ; -#& MODIF COMMANDE DATE 18/01/99 AUTEUR CIBHHBC B.CIREE -DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op= 4,sd_prod=fonction, - fr="Définition des valeurs d une fonction de deux variables réelles", - docu="U4.31.03-F",reentrant='n', - regles=(UN_PARMI('FONCTION','DEFI_FONCTION'), - EXCLUS('FONCTION','NOM_PARA_FONC',), - ENSEMBLE('NOM_PARA_FONC','DEFI_FONCTION'),), - NOM_PARA =SIMP(statut='o',typ='TXM',into=("TEMP","INST","X","Y","Z","FREQ","PULS", - "AMOR","EPAIS","TSEC","HYDR","SECH") ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - PARA =SIMP(statut='o',typ='R',max='**'), - FONCTION =SIMP(statut='f',typ=fonction,max='**' ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("TEMP","INST","X","Y","Z","EPSI","FREQ", - "PULS","AMOR","EPAIS") ), - DEFI_FONCTION =FACT(statut='f',min=00,max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - INTERPOL =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROIT =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - INTERPOL =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROIT =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 06/10/1999 AUTEUR SABJLMA P.LATRUBESSE -DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op= 73,sd_prod=obstacle - ,fr="Définition d un obstacle plan perpendiculaire à une structure filaire", - docu="U4.44.21-E",reentrant='n', - TYPE =SIMP(statut='o',typ='TXM',defaut="CERCLE", - into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET", - "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT", - "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900", - "GUID_B_CARTE_900","GUID_C_CARTE_900", - "GUID_D_CARTE_900","GUID_E_CARTE_900", - "GUID_F_CARTE_900","GUID_A_CARTE_1300", - "GUID_B_CARTE_1300","GUID_C_CARTE_1300", - "GUID_D_CARTE_1300","GUID_E_CARTE_1300", - "GUID_F_CARTE_1300","GUID_A_CARSP_900", - "GUID_B_CARSP_900","GUID_C_CARSP_900", - "GUID_D_CARSP_900","GUID_E_CARSP_900", - "GUID_F_CARSP_900","GUID_A_CARSP_1300", - "GUID_B_CARSP_1300","GUID_C_CARSP_1300", - "GUID_D_CARSP_1300","GUID_E_CARSP_1300", - "GUID_F_CARSP_1300","GUID_A_GCONT_900", - "GUID_B_GCONT_900","GUID_C_GCONT_900", - "GUID_D_GCONT_900","GUID_E_GCONT_900", - "GUID_F_GCONT_900","GUID_A_GCONT_1300", - "GUID_B_GCONT_1300","GUID_C_GCONT_1300", - "GUID_D_GCONT_1300","GUID_E_GCONT_1300", - "GUID_F_GCONT_1300","GUID_A_GCOMB_900", - "GUID_B_GCOMB_900","GUID_C_GCOMB_900", - "GUID_D_GCOMB_900","GUID_E_GCOMB_900", - "GUID_F_GCOMB_900","GUID_A_GCOMB_1300", - "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300", - "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300", - "GUID_F_GCOMB_1300",) ), - VALE =SIMP(statut='f',typ='R',max='**'), - VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"), -) ; -#& MODIF COMMANDE DATE 04/03/98 AUTEUR BIBERON G.ROUSSEAU -DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre, - fr="Définition d'un spectre d'excitation turbulente", - docu="U4.44.31-C",reentrant='n', - regles=(UN_PARMI('SPEC_LONG_COR_1','SPEC_LONG_COR_2','SPEC_LONG_COR_3', - 'SPEC_LONG_COR_4','SPEC_CORR_CONV_1','SPEC_CORR_CONV_2', - 'SPEC_FONC_FORME','SPEC_EXCI_POINT'),), - SPEC_LONG_COR_1 =FACT(statut='f',min=00,max=01, - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ), - VISC_CINE =SIMP(statut='o',typ='R' ), - ), - SPEC_LONG_COR_2 =FACT(statut='f',min=00,max=01, - regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ), - FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.1 ), - PHI0 =SIMP(statut='f',typ='R',defaut= 1.5E-3 ), - BETA =SIMP(statut='f',typ='R',defaut= 2.7 ), - ), - SPEC_LONG_COR_3 =FACT(statut='f',min=00,max=01, - regles=(ENSEMBLE('PHI0_1','BETA_1','PHI0_2','BETA_2','FREQ_COUP'),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ), - FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.2 ), - PHI0_1 =SIMP(statut='f',typ='R',defaut= 5.E-3 ), - BETA_1 =SIMP(statut='f',typ='R',defaut= 0.5 ), - PHI0_2 =SIMP(statut='f',typ='R',defaut= 4.0E-5 ), - BETA_2 =SIMP(statut='f',typ='R',defaut= 3.5 ), - ), - SPEC_LONG_COR_4 =FACT(statut='f',min=00,max=01, - regles=(ENSEMBLE('BETA','GAMMA'),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ), - TAUX_VIDE =SIMP(statut='o',typ='R' ), - BETA =SIMP(statut='f',typ='R',defaut= 2. ), - GAMMA =SIMP(statut='f',typ='R',defaut= 4. ), - ), - SPEC_CORR_CONV_1=FACT(statut='f',min=00,max=01, - LONG_COR_1 =SIMP(statut='o',typ='R' ), - LONG_COR_2 =SIMP(statut='f',typ='R' ), - VITE_FLUI =SIMP(statut='o',typ='R' ), - RHO_FLUI =SIMP(statut='o',typ='R' ), - FREQ_COUP =SIMP(statut='f',typ='R' ), - K =SIMP(statut='f',typ='R',defaut= 5.8E-3 ), - D_FLUI =SIMP(statut='o',typ='R' ), - COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), - COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), - METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", - into=("AU_YANG","GENERALE","CORCOS") ), - ), - SPEC_CORR_CONV_2=FACT(statut='f',min=00,max=01, - FONCTION =SIMP(statut='o',typ=fonction ), - VITE_FLUI =SIMP(statut='o',typ='R' ), - FREQ_COUP =SIMP(statut='f',typ='R' ), - METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", - into=("AU_YANG","GENERALE","CORCOS",) ), - COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), - COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), - ), - SPEC_FONC_FORME =FACT(statut='f',min=00,max=01, - regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'), - ENSEMBLE('INTE_SPEC','FONCTION'),), - INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ), - FONCTION =SIMP(statut='f',typ=fonction,max='**'), - GRAPPE_1 =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ), - NOEUD =SIMP(statut='o',typ=no), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - MODELE =SIMP(statut='o',typ=modele ), - ), - SPEC_EXCI_POINT =FACT(statut='f',min=00,max=01, - regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),), - INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ), - GRAPPE_2 =SIMP(statut='f',typ='TXM', - into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ), -# Quels sont les statuts des mots cles à l interieur des deux blocs qui suivent - b_inte_spec =BLOC(condition = "INTE_SPEC != None", - NATURE =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ), - ANGL =SIMP(statut='o',typ='R',max='**'), - NOEUD =SIMP(statut='o',typ=no,max='**'), - ), - b_grappe_2 =BLOC(condition = "GRAPPE_2 != None", - RHO_FLUI =SIMP(statut='o',typ='R' ), - NOEUD =SIMP(statut='o',typ=no), - ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - MODELE =SIMP(statut='o',typ=modele ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 02/03/99 AUTEUR SABJLMA P.LATRUBESSE -DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette, - fr="Définition d un maillage de visualisation", - docu="U4.24.01-E",reentrant='n', - regles=(UN_PARMI('MODE_CYCL','MODELE_GENE','MAILLAGE'), - PRESENT_PRESENT('MODE_CYCL','SECTEUR'), - EXCLUS('SOUS_STRUC','SECTEUR'), - PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'), - PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),), - MODE_CYCL =SIMP(statut='f',typ=mode_cycl ), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - SQUELETTE =SIMP(statut='f',typ=squelette ), - RECO_GLOBAL =FACT(statut='f',min=01,max='**', - regles=(EXCLUS('TOUT','GROUP_NO_1'), - PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'), - PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'), - PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'), - PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),), - TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - DIST_REFE =SIMP(statut='f',typ='R' ), - ), - NOM_GROUP_MA =FACT(statut='f',min=01,max='**', - NOM =SIMP(statut='o',typ='TXM' ), - SOUS_STRUC =SIMP(statut='o',typ='TXM' ), - GROUP_MA =SIMP(statut='o',typ=grma), - ), - EXCLUSIF =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - MAILLAGE =SIMP(statut='f',typ=maillage ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRANS =SIMP(statut='f',typ='R',max='**'), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), - SOUS_STRUC =FACT(statut='f',min=01,max='**', - NOM =SIMP(statut='f',typ='TXM' ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - SECTEUR =FACT(statut='f',min=01,max='**', - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 09/06/98 AUTEUR CIBHHLV L.VIVAN -DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture, - fr=" ",docu="U4.43.05-A",reentrant='n', - SYST_GLISSEMENT =FACT(statut='o',min=01,max='**', - N =SIMP(statut='o',typ='R',max='**' ), - L =SIMP(statut='o',typ='R',max='**' ), - ), - PLAN =FACT(statut='o',min=01,max='**', - ANGL_NAUT =SIMP(statut='o',typ='R',max='**' ), - PROPORTION =SIMP(statut='o',typ='R' ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 16/07/96 AUTEUR CIBHHRA R.MEDDOURI -DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction,docu="U4.MK.20-A",reentrant='n', - fr="Calculer la fonction d évolution temporelle de la température due à l effet JOULE dans un câble", - LIST_INST =SIMP(statut='o',typ=listr8), - INST_CC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0 ), - INST_CC_FIN =SIMP(statut='f',typ='R',defaut= 1.0E+10), - INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 1.0E+10), - INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 1.0E+10), - TEMP_EXT_POSE =SIMP(statut='f',typ='R',defaut= 15.0E+0), - TEMP_EXT =SIMP(statut='f',typ='R',defaut= 15.0E+0), - TEMP_RESI_REF =SIMP(statut='f',typ='R',defaut= 20.0E+0), - PARA_COND_1D =FACT(statut='f',min=01,max='**', - INTE_CC =SIMP(statut='f',typ='R',defaut= 0.0E+0), - INTE_RENC =SIMP(statut='f',typ='R',defaut= 0.0E+0), - A =SIMP(statut='f',typ='R',defaut= 1.0E+0), - SECTION =SIMP(statut='f',typ='TXM',defaut="CERCLE",into=("CERCLE",) ), - RESI_R0 =SIMP(statut='f',typ='R',defaut= 0.0E+0), - RESI_R1 =SIMP(statut='f',typ='R',defaut= 0.E+0), - RHO_CP =SIMP(statut='f',typ='R',defaut= 1.0E+0), - COEF_H =SIMP(statut='f',typ='R',defaut= 40.0E+0), - TEMP_INIT =SIMP(statut='f',typ='R',defaut= 15.0E+0), - ), -) ; - -#& MODIF COMMANDE DATE 04/07/2000 AUTEUR JMBHH01 J.M.PROIX -DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,docu="U4.43.04-E",reentrant='n', - fr="Définition d un diagramme de transformations en refroidissement continu d un acier", - HIST_EXP =FACT(statut='o',min=01,max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - ), - TEMP_MS =FACT(statut='o',min=01,max='**', - SEUIL =SIMP(statut='o',typ='R'), - AKM =SIMP(statut='o',typ='R'), - BKM =SIMP(statut='o',typ='R'), - TPLM =SIMP(statut='o',typ='R'), - ), - GRAIN_AUST =FACT(statut='f',min=01,max='**', - DREF =SIMP(statut='f',typ='R'), - A =SIMP(statut='f',typ='R'), - ), -) ; -#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND -def defi_valeur_prod(self,IS=None,R8=None,TX=None,C8=None,LS=None): - if IS != None : return entier - if R8 != None : return reel - if TX != None : return chaine - if C8 != None : return complexe - if LS != None : return liste - raise AsException("type de concept resultat non prevu") - -DEFI_VALEUR=MACRO(nom="DEFI_VALEUR",op=-4,sd_prod=defi_valeur_prod, - fr="Affectation d une valeur à une variable Superviseur", - docu="U4.31.04-e",reentrant='f', - regles=(UN_PARMI('IS','R8','TX','C8','LS'),), - IS =SIMP(statut='f',typ='I',max='**'), - R8 =SIMP(statut='f',typ='R',max='**'), - TX =SIMP(statut='f',typ='TXM',max='**'), - C8 =SIMP(statut='f',typ='C',max='**'), - LS =SIMP(statut='f',typ='L',max='**'), -) ; -#& MODIF COMMANDE DATE 04/10/90 AUTEUR INCONNU INCONNU -DEFUFI=PROC(nom="DEFUFI",op=21,docu="U4.12.01-D", - fr="Modification / ajoût d une unité logique en sortie en complément de celles définies dans DEBUT", - IMPRESSION =FACT(statut='o',min=01,max='**', - NOM =SIMP(statut='o',typ='TXM',max='**'), - UNITE =SIMP(statut='o',typ='I' ), - ), -) ; -#& MODIF COMMANDE DATE 16/01/92 AUTEUR INCONNU INCONNU -DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,docu="U4.62.02-E",reentrant='n', - fr="Récupération du champ de déplacement interne à une sous-structure", - DEPL_GLOBAL =SIMP(statut='o',typ=cham_no_depl_r), - MAILLE =SIMP(statut='o',typ=ma,max=1), - NOM_CAS =SIMP(statut='f',typ='TXM',defaut=" "), -) ; -#& MODIF COMMANDE DATE 23/03/93 AUTEUR GJBHHDU G.DUMONT -DETRUIRE=PROC(nom="DETRUIRE",op=-7,docu="U4.14.01-D", - fr="Destruction d un concept utilisateur dans la base GLOBALE", - op_init=ops.detruire, - CONCEPT =FACT(statut='o',min=01, - NOM =SIMP(statut='o',typ=assd,max='**'), - ), -); -#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHLV L.VIVAN -DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction,docu="U4.MK.30-A",reentrant='n', - fr="Calcul sous forme d une fonction du temps de la distance minimale entre deux structures filaires", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'), - UN_PARMI('GROUP_MA_2','POIN_FIXE'),), - MODELE =SIMP(statut='o',typ=modele), - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,evol_noli) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - LIST_ORDRE =SIMP(statut='f',typ=listis), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - POIN_FIXE =SIMP(statut='f',typ='R',min=3,max=3), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHAB N.RAHNI -DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp - ,fr="Calcule la réponse spectrale d une structure linéaire sous une excitation connue par sa DSP", - docu="U4.53.22-D",reentrant='n', - BASE_MODALE =FACT(statut='o',min=01,max=01, - regles=(UN_PARMI('NUME_ORDRE','BANDE'),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - BANDE =SIMP(statut='f',typ='R',max=02), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - b_bande =BLOC(condition = "BANDE != None", - AMOR_UNIF =SIMP(statut='o',typ='R' ), - ), - b_nume_ordre =BLOC(condition = "NUME_ORDRE != None", - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - ), - ), - MODE_STAT =SIMP(statut='f',typ=mode_stat ), - EXCIT =FACT(statut='o',min=01,max=01, - regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'), - EXCLUS('CHAM_NO','NOEUD'),), - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), - MODAL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), -# dans la doc U il y a plus de choix pour GRANDEUR - GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", - into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ), -# Toutes les regles ne semblent pas avoir été ecrites dans la doc U - NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**'), - NOEUD_I =SIMP(statut='f',typ=no,max='**'), - b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None", - NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'), - ), - b_noeud_i =BLOC(condition = "NOEUD_I != None", - NOEUD_J =SIMP(statut='o',typ=no,max='**'), - NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**'), - NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**'), - ), - CHAM_NO =SIMP(statut='f',typ=cham_no), - NOEUD =SIMP(statut='f',typ=no,max='**'), - b_noeud =BLOC(condition = "NOEUD != None", - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - ), - ), - REPONSE =FACT(statut='f',min=01,max=01, - regles=(EXCLUS('FREQ_MIN','NB_POIN_MODE'), - EXCLUS('FREQ_MIN','FREQ_EXCIT'), - ENSEMBLE('FREQ_MIN','FREQ_MAX'),), -# Toutes les regles ne semblent pas avoir été ecrites dans la doc U - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ,) ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), - FREQ_MIN =SIMP(statut='f',typ='R' ), - FREQ_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - FREQ_EXCIT =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ), - NB_POIN_MODE =SIMP(statut='f',typ='I',defaut= 50 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 08/03/2000 AUTEUR CIBHHPD P.DAVID -def dyna_line_harm_prod(MATR_MASS,**args): - if AsType(MATR_MASS) == matr_asse_depl_r : return dyna_harmo - if AsType(MATR_MASS) == matr_asse_depl_c : return dyna_harmo - if AsType(MATR_MASS) == matr_asse_pres_c : return acou_harmo - if AsType(MATR_MASS) == matr_asse_gene_r : return harm_gene - raise AsException("type de concept resultat non prevu") - -DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, - fr="Réponse dynamique complexe d un système à une excitation harmonique", - docu="U4.53.11-E",reentrant='n', - regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'), - PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'), - PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'), - UN_PARMI('FREQ','LIST_FREQ'),), - MODELE =SIMP(statut='f',typ=modele ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r, - matr_asse_pres_c, - matr_asse_gene_r ) ), - MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r, - matr_asse_depl_c, - matr_asse_pres_c, - matr_asse_gene_r, - matr_asse_gene_c ) ), - MATR_AMOR =SIMP(statut='f',typ=(matr_asse_depl_r, - matr_asse_pres_c, - matr_asse_gene_r ) ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8 ), - MATR_IMPE_PHI =SIMP(statut='f',typ=(matr_asse_depl_r, - matr_asse_gene_r) ), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOM_CHAM =SIMP(statut='f',typ='TXM',max=03,into=("DEPL","VITE","ACCE") ), - EXCIT =FACT(statut='o',min=01,max='**', - regles=(UN_PARMI('VECT_ASSE','CHARGE'), - UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - VECT_ASSE =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_pres_c,vect_asse_gene ) ), - CHARGE =SIMP(statut='f',typ=char_meca ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c ), - COEF_MULT_C =SIMP(statut='f',typ='C' ), - FONC_MULT =SIMP(statut='f',typ=fonction ), - COEF_MULT =SIMP(statut='f',typ='R' ), - PHAS_DEG =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PUIS_PULS =SIMP(statut='f',typ='I',defaut= 0 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 08/06/99 AUTEUR ACBHHCD G.DEVESA -DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, - fr="Réponse temporelle d un système à une excitation transitoire", - docu="U4.53.02-F",reentrant='f', - regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),), - MODELE =SIMP(statut='f',typ=modele ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ), - MODE_STAT =SIMP(statut='f',typ=mode_stat ), - NEWMARK =FACT(statut='f',min=01,max=01, - ALPHA =SIMP(statut='f',typ='R',defaut= 0.25 ), - DELTA =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - WILSON =FACT(statut='f',min=01,max=01, - THETA =SIMP(statut='f',typ='R',defaut= 1.4 ), - ), - DIFF_CENTRE =FACT(statut='f',min=01,max=01, - ), - ADAPT =FACT(statut='f',min=01,max=01, - ), - ETAT_INIT =FACT(statut='f',min=01,max=01, - regles=(EXCLUS('DYNA_TRANS','DEPL_INIT'), - EXCLUS('DYNA_TRANS','VITE_INIT'),), - DYNA_TRANS =SIMP(statut='f',typ=dyna_trans ), -# j ai interprete la doc U : est-ce bon - b_dyna_trans =BLOC(condition = "DYNA_TRANS != None", - regles=(EXCLUS('NUME_INIT','INST_INIT' ),), - NUME_INIT =SIMP(statut='f',typ='I' ), - INST_INIT =SIMP(statut='f',typ='R' ), - b_inst_init =BLOC(condition = "INST_INIT != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - DEPL_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ), - VITE_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ), - ), - EXCIT =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('CHARGE','VECT_ASSE'), - EXCLUS('CHARGE','COEF_MULT'), - EXCLUS('FONC_MULT','COEF_MULT'), - EXCLUS('ACCE','COEF_MULT'), - PRESENT_ABSENT('ACCE','FONC_MULT'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), - CHARGE =SIMP(statut='f',typ=char_meca ), - FONC_MULT =SIMP(statut='f',typ=fonction ), - COEF_MULT =SIMP(statut='f',typ='R' ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ACCE =SIMP(statut='f',typ=fonction ), - VITE =SIMP(statut='f',typ=fonction ), - DEPL =SIMP(statut='f',typ=fonction ), - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - ), - AMOR_MODAL =FACT(statut='f',min=01,max=01, - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - REAC_VITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -# ce n est pas le mot clesolveur standard - SOLVEUR =FACT(statut='d',min=01,max=01, - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - INCREMENT =FACT(statut='o',min=01,max='**', - regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),), - LIST_INST =SIMP(statut='f',typ=listr8 ), - FONC_INST =SIMP(statut='f',typ=fonction ), - PAS =SIMP(statut='f',typ='R' ), - b_pas =BLOC(condition = "PAS != None", - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - b_list_fonc =BLOC(condition = "LIST_INST != None or FONC_INST != None", - regles=(EXCLUS('INST_FIN','NUME_FIN'),), - NUME_FIN =SIMP(statut='f',typ='I' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), - COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), - COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.33334 ), - PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), - NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), - PAS_CALCUL =SIMP(statut='f',typ='I',defaut= 1 ), - ), - ARCHIVAGE =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),), - LIST_ARCH =SIMP(statut='f',typ=listis ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**',into=("DEPL","VITE","ACCE") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 03/10/2000 AUTEUR VABHHTS J.PELLET -DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 95,sd_prod=evol_noli,reentrant='f', - fr="Analyse mécanique dynamique non linéaire",docu="U4.53.01-E", - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',), - UN_PARMI('NEWMARK','HHT', ),), - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - MODE_STAT =SIMP(statut='f',typ=mode_stat), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - EXCIT =FACT(statut='o',min=01,max='**', - regles=(PRESENT_ABSENT('FONC_MULT','ACCE'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("SUIV","FIXE") ), - CHARGE =SIMP(statut='o',typ=char_meca), - FONC_MULT =SIMP(statut='f',typ=fonction), - DEPL =SIMP(statut='f',typ=fonction), - ACCE =SIMP(statut='f',typ=fonction), - VITE =SIMP(statut='f',typ=fonction), - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - ), - AMOR_MODAL =FACT(statut='f',min=01,max=01, - MODE_MECA =SIMP(statut='f',typ=mode_meca), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**' ), - NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - REAC_VITE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - COMP_INCR =FACT(statut='f',min=01,max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_LINE", - into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_ISOT_META", - "VMIS_ECMI_TRAC","VMIS_ECMI_LINE","ENDO_FRAGILE","META_EP", - "META_EP_PT","META_EP_RE","META_EP_PT_RE","META_EVP", - "META_EVP_PT","META_EVP_RE","META_EVP_PT_RE","VMIS_CINE_LINE", - "TAHERI","VISC_TAHERI","CHABOCHE","VISCOCHAB", - "VMIS_CIN1_CHAB","VMIS_CIN2_CHAB","POLY_CFC", - "LMARC","ROUSSELIER","VMIS_POU_LINE","VMIS_POU_FLEJOU", - "COULOMB","ARME","ASSE_CORN","NORTON_HOFF","LEMAITRE", - "ZIRC_CYRA2","ZIRC_EPRI","ASSE_COMBU","VENDOCHAB","NADAI_B", - "DIS_CONTACT","DIS_CHOC","DIS_GOUJ2E_PLAS","DIS_GOUJ2E_ELAS", - "GRILLE_ISOT_LINE","GRILLE_CINE_LINE","GRILLE_PINTO_MEN", - "PINTO_MENEGOTTO","CJS","OHNO","GRANGER_FP","GRANGER_FP_V", - "BETON_DOUBLE_DP","VMIS_ASYM_LINE") ), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,) ), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=2,into=(2,) ), - VMIS_ISOT_LINE =SIMP(statut='c',typ='I',defaut=2,into=(2,) ), - VMIS_ISOT_META =SIMP(statut='c',typ='I',defaut=2,into=(2,) ), - VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - VMIS_ECMI_TRAC =SIMP(statut='c',typ='I',defaut=8,into=(8,) ), - VMIS_ECMI_LINE =SIMP(statut='c',typ='I',defaut=8,into=(8,) ), - ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=4,into=(4,) ), - META_EP =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - META_EP_PT =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - META_EP_RE =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - META_EP_PT_RE =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - META_EVP =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - META_EVP_PT =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - META_EVP_RE =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - META_EVP_PT_RE =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - CHABOCHE =SIMP(statut='c',typ='I',defaut=14,into=(14,) ), - VISCOCHAB =SIMP(statut='c',typ='I',defaut=28,into=(28,) ), - VMIS_CIN1_CHAB =SIMP(statut='c',typ='I',defaut=8,into=(8,) ), - VMIS_CIN2_CHAB =SIMP(statut='c',typ='I',defaut=14,into=(14,) ), - POLY_CFC =SIMP(statut='c',typ='I',defaut=1688,into=(1688,) ), - LMARC =SIMP(statut='c',typ='I',defaut=20,into=(20,) ), - TAHERI =SIMP(statut='c',typ='I',defaut=15,into=(15,) ), - VISC_TAHERI =SIMP(statut='c',typ='I',defaut=9,into=(9,) ), - ROUSSELIER =SIMP(statut='c',typ='I',defaut=3,into=(3,) ), - VMIS_POU_LINE =SIMP(statut='c',typ='I',defaut=9,into=(9,) ), - VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9,into=(9,) ), - COULOMB =SIMP(statut='c',typ='I',defaut=4,into=(4,) ), - ASSE_CORN =SIMP(statut='c',typ='I',defaut=4,into=(4,) ), - ARME =SIMP(statut='c',typ='I',defaut=1,into=(1,) ), - NORTON_HOFF =SIMP(statut='c',typ='I',defaut=1,into=(1,) ), - LEMAITRE =SIMP(statut='c',typ='I',defaut=2,into=(2,) ), - ZIRC_CYRA2 =SIMP(statut='c',typ='I',defaut=2,into=(2,) ), - ZIRC_EPRI =SIMP(statut='c',typ='I',defaut=2,into=(2,) ), - ASSE_COMBU =SIMP(statut='c',typ='I',defaut=5,into=(5,) ), - NADAI_B =SIMP(statut='c',typ='I',defaut=34,into=(34,) ), - VENDOCHAB =SIMP(statut='c',typ='I',defaut=10,into=(10,) ), - GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,) ), - GRILLE_CINE_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,) ), - GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,) ), - DIS_CONTACT =SIMP(statut='c',typ='I',defaut=6,into=(6,) ), - DIS_CHOC =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - DIS_GOUJ2E_PLAS =SIMP(statut='c',typ='I',defaut=2,into=(2,) ), - DIS_GOUJ2E_ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,) ), - PINTO_MENEGOTTO =SIMP(statut='c',typ='I',defaut=8,into=(8,) ), - CJS =SIMP(statut='c',typ='I',defaut=16,into=(16,) ), - OHNO =SIMP(statut='c',typ='I',defaut=32,into=(32,) ), - GRANGER_FP =SIMP(statut='c',typ='I',defaut=55,into=(55,) ), - GRANGER_FP_V =SIMP(statut='c',typ='I',defaut=55,into=(55,) ), - BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,) ), - VMIS_ASYM_LINE =SIMP(statut='c',typ='I',defaut=4,into=(4,) ), -# - COQUE_NCOU =SIMP(statut='f',typ='I'), - TUYAU_NCOU =SIMP(statut='f',typ='I'), - TUYAU_NSEC =SIMP(statut='f',typ='I'), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC",) ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - COMP_ELAS =FACT(statut='f',min=01,max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC","ELAS_POUTRE_GR","CABLE") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_POUTRE_GR =SIMP(statut='f',typ='I',defaut=3,into=(3,) ), - CABLE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), -# - COQUE_NCOU =SIMP(statut='f',typ='I'), - TUYAU_NCOU =SIMP(statut='f',typ='I'), - TUYAU_NSEC =SIMP(statut='f',typ='I'), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN","GREEN_GR") ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - ETAT_INIT =FACT(statut='f',min=01,max=01, - regles=(EXCLUS('EVOL_NOLI','DEPL_INIT',), - EXCLUS('EVOL_NOLI','VITE_INIT', ),), - INST_INIT =SIMP(statut='f',typ='R' ), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - DEPL_INIT =SIMP(statut='f',typ=cham_no_depl_r), - VITE_INIT =SIMP(statut='f',typ=cham_no_depl_r), - ), - INCREMENT =FACT(statut='o',min=01,max=01, - LIST_INST =SIMP(statut='o',typ=listr8), - INST_INIT =SIMP(statut='f',typ='R'), - ), - NEWMARK =FACT(statut='f',min=01,max=01, - ALPHA =SIMP(statut='f',typ='R',defaut= 0.25), - DELTA =SIMP(statut='f',typ='R',defaut= 0.5), - ), - HHT =FACT(statut='f',min=01,max=01, - ALPHA =SIMP(statut='f',typ='R' - ,defaut= -0.29999999999999999 ), - ), - NEWTON =FACT(statut='d',min=01,max=01, - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), - ), - SOLVEUR =FACT(statut='d',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - ), - b_ldlt_mult =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - CONVERGENCE =FACT(statut='d',min=01,max=01, - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - INCO_GLOB_RELA =SIMP(statut='f',typ='R'), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10), - TYPE_MATR_COMP =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT","TANG_INC") ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE") ), - ), - OPTION =SIMP(statut='f',typ='TXM',max='**',defaut="ELNO", - into=("SIEF_ELNO_ELGA","VARI_ELNO_ELGA","EFGE_ELNO_CART","ELNO","SANS") ), - ARCHIVAGE =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),), - LIST_ARCH =SIMP(statut='f',typ=(listis) ), - LIST_INST =SIMP(statut='f',typ=(listr8) ), - INST =SIMP(statut='f',typ='R',max='**' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PAS_ARCH =SIMP(statut='f',typ='I'), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**',into=("DEPL","VITE","ACCE") ), - ), - OBSERVATION =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), - PRESENT_PRESENT('MAILLE','POINT'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',max='**', - into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA") ), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - LIST_ARCH =SIMP(statut='f',typ=listis), - LIST_INST =SIMP(statut='f',typ=listr8), - INST =SIMP(statut='f',typ='R',max='**' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PAS_OBSE =SIMP(statut='f',typ='I'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - POINT =SIMP(statut='f',typ='I',max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 16/12/97 AUTEUR CIBHHLV L.VIVAN -DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=tabl_intsp, - fr="Calcul de la réponse par recombinaison modale d'une structure linéaire pour une excitation aléatoire", - docu="U4.53.23-C",reentrant='n', - BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu ), - EXCIT =FACT(statut='o',min=00,max=01, - INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 29/08/2000 AUTEUR ACBHHCD G.DEVESA -DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, - fr="Réponse dynamique transitoire en coordonnées généralisées par recombinaison modale", - docu="U4.53.21-E",reentrant='f', - regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'), - PRESENT_ABSENT('MODE_STAT','MODE_CORR'),), - METHODE =SIMP(statut='f',typ='TXM',defaut="EULER", - into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ), - MASS_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), - RIGI_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), - AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8 ), - MODE_STAT =SIMP(statut='f',typ=mode_stat ), - MODE_CORR =SIMP(statut='f',typ=mult_elas ), - - ETAT_INIT =FACT(statut='f',min=01,max=01, - regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'), - EXCLUS('RESU_GENE','VITE_INIT_GENE'),), - RESU_GENE =SIMP(statut='f',typ=tran_gene ), - b_resu_gene =BLOC(condition = "RESU_GENE != None", - INST_INIT =SIMP(statut='f',typ='R' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - ), - INCREMENT =FACT(statut='o',min=01,max='**', - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='o',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - VERI_PAS =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), - COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), - COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.3333334 ), - PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6 ), - NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), - NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), - ), - ARCHIVAGE =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),), - LIST_ARCH =SIMP(statut='f',typ=listis ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - ), - - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 20 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ), - - EXCIT =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'), - PRESENT_ABSENT('NUME_MODE','VECT_GENE','COEF_MULT'), - PRESENT_ABSENT('MULT_APPUI','CORR_STAT'), - PRESENT_ABSENT('MULT_APPUI','COEF_MULT'), - PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),), - VECT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - NUME_MODE =SIMP(statut='f',typ='I' ), - FONC_MULT =SIMP(statut='f',typ=fonction ), - COEF_MULT =SIMP(statut='f',typ='R' ), - ACCE =SIMP(statut='f',typ=fonction ), - VITE =SIMP(statut='f',typ=fonction ), - DEPL =SIMP(statut='f',typ=fonction ), - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - b_loca =BLOC(condition= "DIRECTION != None", - regles=(EXCLUS('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - ), - CORR_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - D_FONC_DT =SIMP(statut='f',typ=fonction ), - D_FONC_DT2 =SIMP(statut='f',typ=fonction ), - ), - CHOC =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1' ), - PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),), - INTITULE =SIMP(statut='f',typ='TXM' ), - NOEUD_1 =SIMP(statut='f',typ=no), - NOEUD_2 =SIMP(statut='f',typ=no), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - OBSTACLE =SIMP(statut='o',typ=obstacle ), - ORIG_OBST =SIMP(statut='f',typ='R',max='**'), - NORM_OBST =SIMP(statut='o',typ='R',max='**'), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - JEU =SIMP(statut='f',typ='R',defaut= 1. ), - DIST_1 =SIMP(statut='f',typ='R' ), - DIST_2 =SIMP(statut='f',typ='R' ), - SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), - SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), - RIGI_NOR =SIMP(statut='f',typ='R' ), - AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - - LAME_FLUIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - b_lame =BLOC(condition="LAME_FLUIDE=='OUI'", - ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - CHI =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ), - VERI_CHOC =FACT(statut='f',min=01,max='**', - STOP_CRITERE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - FLAMBAGE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),), - NOEUD_1 =SIMP(statut='f',typ=no), - NOEUD_2 =SIMP(statut='f',typ=no), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - OBSTACLE =SIMP(statut='o',typ=obstacle ), - ORIG_OBST =SIMP(statut='f',typ='R',max='**'), - NORM_OBST =SIMP(statut='o',typ='R',max='**'), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - JEU =SIMP(statut='f',typ='R',defaut= 1. ), - DIST_1 =SIMP(statut='f',typ='R' ), - DIST_2 =SIMP(statut='f',typ='R' ), - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), - RIGI_NOR =SIMP(statut='f',typ='R' ), - FNOR_CRIT =SIMP(statut='f',typ='R' ), - FNOR_POST_FL =SIMP(statut='f',typ='R' ), - RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ), - ), - ANTI_SISM =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), - UN_PARMI('NOEUD_2','GROUP_NO_2'), - PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),), - NOEUD_1 =SIMP(statut='f',typ=no), - NOEUD_2 =SIMP(statut='f',typ=no), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - RIGI_K1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_K2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SEUIL_FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - C =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PUIS_ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DX_MAX =SIMP(statut='f',typ='R',defaut= 1. ), - ), - RELA_EFFO_DEPL =FACT(statut='f',min=01,max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=fonction ), - ), - RELA_TRANSIS =FACT(statut='f',min=01,max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=fonction ), - ), - RELA_EFFO_VITE =FACT(statut='f',min=01,max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=fonction ), - ), - b_itmi =BLOC(condition = "METHODE=='ITMI'", - regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - ETAT_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - PREC_DUREE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - CHOC_FLUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - NB_MODE =SIMP(statut='f',typ='I' ), - NB_MODE_FLUI =SIMP(statut='f',typ='I' ), - NB_MODE_DIAG =SIMP(statut='f',typ='I' ), - TS_REG_ETAB =SIMP(statut='f',typ='R' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - IMPRESSION =FACT(statut='f',min=01,max='**', - regles=(EXCLUS('TOUT','NIVEAU'),), - TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NIVEAU =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ), - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - ) ; -#& MODIF COMMANDE DATE 30/09/97 AUTEUR VABHHTS J.PELLET -ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,docu="U4.92.11-B", - fr="Ecriture dans le fichier RESULTAT des lignes que l'on peut insérer dans la commande TEST_RESU pour tester la non-régression du contenu des objets JEVEUX composant les concepts créés au cours d'une exécution", - regles=(UN_PARMI('TOUT','CO'),), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - CO =SIMP(statut='f',typ=assd,max='**'), - TYPE_TEST =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME","RESUME") ), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), - PREC_R =SIMP(statut='f',typ='TXM',defaut="1.E-5"), -) ; -#& MODIF COMMANDE DATE 17/06/98 AUTEUR D6BHHJP J.P.LEFEBVRE -EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183,fr="",docu="U7.00.01-A", - LOGICIEL =SIMP(statut='f',typ='TXM' ), - ARGUMENT =FACT(statut='f',min=01,max='**', - NOM_PARA =SIMP(statut='f',typ='TXM' ), - ), -) ; -#& MODIF COMMANDE DATE 02/04/96 AUTEUR ACBHHCD G.DEVESA -#def extr_mode_prod(FILTRE_MODE,TITRE,IMPRESSION ): -# Sait-on faire -def extr_mode_prod(FILTRE_MODE,**args): - vale=FILTRE_MODE[0]['MODE'] - if AsType(vale) == mode_meca : return mode_meca - if AsType(vale) == mode_meca_c : return mode_meca_c - if AsType(vale) == mode_gene : return mode_gene - raise AsException("type de concept resultat non prevu") - -EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod, - fr="Extraction dans une structure de données de type mode_meca_* ou mode_gene des modes qui vérifient un certain critère et concaténation de plusieurs structures de données de même type", - docu="U4.52.12-C",reentrant='n', - FILTRE_MODE =FACT(statut='o',min=01,max='**', - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),), - MODE =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_gene ) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - NUME_MODE_EXCLU =SIMP(statut='f',typ='I',max='**'), - FREQ_MIN =SIMP(statut='f',typ='R' ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN" - ,into=("MASS_EFFE_UN","MASS_GENE") ), - b_freq_min =BLOC(condition = "FREQ_MIN != None", - FREQ_MAX =SIMP(statut='o',typ='R' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - b_crit_extr =BLOC(condition = "CRIT_EXTR != None", - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - IMPRESSION =FACT(statut='f',min=01,max=01, - CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ), - ), -) ; -#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHLV L.VIVAN -def extr_resu_prod(RESULTAT,**args): - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == evol_ther : return evol_ther - if AsType(RESULTAT) == dyna_trans : return dyna_trans - if AsType(RESULTAT) == dyna_harmo : return dyna_harmo - if AsType(RESULTAT) == acou_harmo : return acou_harmo - if AsType(RESULTAT) == mode_meca : return mode_meca - if AsType(RESULTAT) == mode_acou : return mode_acou - if AsType(RESULTAT) == mode_stat : return mode_stat - if AsType(RESULTAT) == mult_elas : return mult_elas - if AsType(RESULTAT) == fourier_elas : return fourier_elas - raise AsException("type de concept resultat non prevu") - -EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,docu="U4.71.04-B",reentrant='f', - fr="Extraction de champs pour des numéros d ordre donnés et réduction de l encombrement d une Structure de Données de type resultat", - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, - mode_acou,mode_stat,evol_ther,evol_noli, - mult_elas,fourier_elas ) ), - ARCHIVAGE =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),), - LIST_ARCH =SIMP(statut='f',typ=listis), - PAS_ARCH =SIMP(statut='f',typ='I'), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**',into=("VARI",) ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 03/05/2000 AUTEUR VABHHTS J.PELLET -def fact_grad_prod(MATR_ASSE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r - if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r - if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r - raise AsException("type de concept resultat non prevu") - -FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,docu="U4.55.03-E", - fr="Préconditionnement pour résolution par gradient conjugué", - reentrant='n', - MATR_ASSE =SIMP(statut='o', - typ=(matr_asse_depl_r,matr_asse_temp_r, - matr_asse_pres_r) ), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="LDLT_INC",into=("LDLT_INC",) ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 16/12/97 AUTEUR CIBHHLV L.VIVAN -FACT_INTE_SPEC=OPER(nom="FACT_INTE_SPEC",op= 117,sd_prod=interspfact, - fr="Factorisation d une matrice interspectrale hermitienne", - docu="U4.36.04-E",reentrant='n', - regles=(ENSEMBLE('FREQ_FIN','NB_POIN'),), -# regle non indiquée dans la doc U - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - FREQ_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FREQ_FIN =SIMP(statut='f',typ='R' ), - NB_POIN =SIMP(statut='f',typ='I',defaut= 0 ), - SUR_ECHAN =SIMP(statut='f',typ='R',defaut= 1. ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 25/11/97 AUTEUR VABHHTS J.PELLET -def fact_ldlt_prod(MATR_ASSE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r - if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c - if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r - if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c - if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r - if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c - raise AsException("type de concept resultat non prevu") - -FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en place ou hors place", - docu="U4.55.01-F",reentrant='f', - regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'), - EXCLUS('BLOC_FIN','DDL_FIN'),), - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r, - matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NPREC =SIMP(statut='f',typ='I',defaut=8), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ), - BLOC_DEBUT =SIMP(statut='f',typ='I'), - DDL_DEBUT =SIMP(statut='f',typ='I'), - BLOC_FIN =SIMP(statut='f',typ='I'), - DDL_FIN =SIMP(statut='f',typ='I'), -# - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), -# - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 23/02/99 AUTEUR D6BHHJP J.P.LEFEBVRE -# NEW 5.3.23 -FERMER=PROC(nom="FERMER",op= 10,fr=" ", - docu="U4.12.02-A", - UNITE =SIMP(statut='o',typ='I',max='**' ), -) ; -#& MODIF COMMANDE DATE 17/11/97 AUTEUR CIBHHLV L.VIVAN -FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude", - docu="U4.11.02-F", - RETASSAGE =SIMP(fr="provoque le retassage de la base GLOBALE", - statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - PERFORMANCE =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ", - statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données", - statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - FICHIER =SIMP(statut='f',typ='TXM',defaut="MESSAGE"), -) ; -#& MODIF COMMANDE DATE 06/05/96 AUTEUR KXBADNG T.FRIOU -FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction, - fr="Création d'une fonction constante (concept de type fonction), paramétrée par l'abscisse curviligne et donnant la valeur du coefficient de masse ajoutée pour une configuration du type faisceau de tubes sous écoulement transverse", - docu="U4.35.02-C",reentrant='n', - TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ), -) ; -#& MODIF COMMANDE DATE 12/09/2001 AUTEUR MCOURTOI M.COURTOIS -FORMULE = FORM( nom='FORMULE',op=-5,sd_prod=fonction, - fr="Définition d une fonction",reentrant = 'n', - regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),), - REEL = SIMP(typ = 'shell',max=1), - ENTIER = SIMP(typ = 'shell',max=1), - COMPLEXE = SIMP(typ = 'shell',max=1), -) ; -#& MODIF COMMANDE DATE 04/02/98 AUTEUR CIBHHLV L.VIVAN -GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=tabl_fonc, - fr="Génération de la fonction temporelle à partir d une matrice interspectrale factorisée", - docu="U4.36.05-E",reentrant='n', - INTE_SPEC_FACT =SIMP(statut='o',typ=interspfact ), - INIT_ALEA =SIMP(statut='f',typ='I',defaut= 12312745 ), - NB_TIRAGE =SIMP(statut='f',typ='I',defaut= 1 ), - NB_POIN =SIMP(statut='f',typ='I' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 17/10/95 AUTEUR ACBHHLB L.VIVAN -IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158, - fr="Impression des charges mécaniques de type degrés de liberté imposés et relations linéaires entre les degrés de liberté au format fichier universel IDEAS", - docu="U7.04.31-C", - FICHIER =SIMP(statut='f',typ='TXM' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",) ), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - CHARGE =SIMP(statut='o',typ=char_meca,max='**', ), -) ; -#& MODIF COMMANDE DATE 30/09/98 AUTEUR SABJLMA P.LATRUBESSE -IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,docu="U7.04.21-A", - fr="Ecriture sur fichier, du rèsultat d une analyse modale au format du code CLASSI (interaction sol structure) utilisè au SEPTEN", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ', - 'LIST_ORDRE' ),), - UNITE_CLASSI =SIMP(statut='o',typ='I' ), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - b_prec_crit =BLOC(condition = "LIST_FREQ != None or FREQ != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - ), - IMPRESSION =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO', ),), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - AMOR =SIMP(statut='o',typ='R',max='**'), -) ; -#& MODIF COMMANDE DATE 12/05/98 AUTEUR CIBHHLV L.VIVAN -IMPR_CO=PROC(nom="IMPR_CO",op=17,docu="U4.91.11-F", - fr="Impression du contenu d un concept utilisateur (pour développeur)", - regles=(UN_PARMI('CO','CHAINE', ),), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - NIVEAU =SIMP(statut='f',typ='I',defaut=2,into=(0,1,2) ), - ATTRIBUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ), - CONTENU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ), - BASE =SIMP(statut='f',typ='TXM',defaut="G",into=("","G","V","L") ), - CO =SIMP(statut='f',typ=assd), - CHAINE =SIMP(statut='f',typ='TXM'), - POSITION =SIMP(statut='f',typ='I',defaut=1), -) ; -#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHLV L.VIVAN -IMPR_COURBE=PROC(nom="IMPR_COURBE",op= 141,fr="Impression, sur fichiers, sous formats appropriés, de concepts de type fonction ou de fonctions extraites de listes, de tables et de concepts résultats", - docu="U4.33.01-D", - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - FORMAT =SIMP(statut='f',typ='TXM',position='global' - ,into=("AGRAF","POSTSCRIPT","RESULTAT","COMMANDE","SEISME") ), - b_agraf_post =BLOC(condition = "(FORMAT=='AGRAF') or (FORMAT=='POSTSCRIPT')",fr="Mots-clés communs AGRAF et POSTCRIPT", - BORNE_X =SIMP(statut='f',typ='R',max=02,fr="Intervalles de variation des abcisses"), - ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),fr="Type d'échelle pour les abcisses" ), - BORNE_Y =SIMP(statut='f',typ='R',max=02,fr="Intervalles de variation des ordonnées"), - ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),fr="Type d'échelle pour les ordonnées" ), - ), - b_agraf =BLOC(condition = "(FORMAT=='AGRAF')",fr="Mots-clés propres à AGRAF", - TITRE_GRAPHIQUE =SIMP(statut='f',typ='TXM',fr="Titre associé au graphique" ), - COMMENTAIRE =SIMP(statut='f',typ='TXM',max='**',fr="Commentaires associés au graphique"), - LEGENDE_X =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des abcisses" ), - LEGENDE_Y =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des ordonnées" ), - FREQ_GRILLE_X =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence de tracage du quadrillage vertical" ), - FREQ_GRILLE_Y =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence de tracage du quadrillage horizontal" ), - ), - b_post = BLOC ( condition = "(FORMAT=='POSTSCRIPT')",fr="Mots-clés propres à POSTCRIPT", - TITRE =SIMP(statut='f',typ='TXM',fr="Titre associé au graphique" ), - LABEL_X =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des abcisses" ), - LABEL_Y =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des ordonnées" ), - SORTIE =SIMP(statut='f',typ='TXM',defaut="COULEUR",into=("MONOCHROME","COULEUR"),fr="Type d impression" ), - DATE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de la date" ), - GRILLE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression du quadrillage" ), - AXE_ZERO_X =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de l axe x égal zéro" ), - AXE_ZERO_Y =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de l axe y égal zéro" ), - PRESENTATION =SIMP(statut='f',typ='TXM',defaut="PAYSAGE",into=("PAYSAGE","PORTRAIT"),fr="Disposition du graphique sur la feuille" ), - FENETRE =SIMP(statut='f',typ='TXM',defaut="RECTANGLE",into=("CARREE","RECTANGLE"),fr="Forme de la fenêtre contenant le graphique" ), - ), - COURBE =FACT(statut='o',min=01,max='**',fr="Définition de la courbe à tracer", - regles=(UN_PARMI('FONCTION','LIST_RESU','TABLE','FONC_X','RESU_GENE'),), - FONCTION =SIMP(statut='f',typ=(fonction, fonction_c), - fr="Fonction réelle ou complexe", ), - LIST_RESU =SIMP(statut='f',typ=listr8, - fr="Liste des ordonnees d une fonction réelle définie par deux listes", ), -# creer le type table - TABLE =SIMP(statut='f',typ=table, - fr="Nom de la table dont 2 colonnes définissent la fonction",), - FONC_X =SIMP(statut='f',typ=fonction, - fr="Fonction abscisses d une fonction paramétrique",), - RESU_GENE =SIMP(statut='f',typ=tran_gene, - fr="Nom du RESU_GENE qui contient les informations liées à des noeuds de choc et qui seront tracées sous forme de fonction", ), - b_fonction =BLOC(condition = "FONCTION != None", - LIST_PARA =SIMP(statut='f',typ=listr8 ), - b_fonction_c =BLOC(condition = "AsType(FONCTION) == fonction_c", - fr="Fonction complexe définie par le mot-clé fonction", - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), - ), - ), - b_list_resu =BLOC(condition = "LIST_RESU != None", - LIST_PARA =SIMP(statut='o',typ=listr8 ), - ), - b_table =BLOC(condition = "TABLE != None", - PARA_X =SIMP(statut='o',typ='TXM',fr="Paramètre de la table associé aux abcisses de la fonction à tracer" ), - PARA_Y =SIMP(statut='o',typ='TXM',fr="Paramètre de la table associé aux ordonnées de la fonction à tracer" ), - ), - b_fonc_x =BLOC(condition = "FONC_X != None", - FONC_Y =SIMP(statut='o',typ=fonction,fr="Fonction ordonnées d une fonction paramétrique" ), - PARA =SIMP(statut='f',typ='TXM',defaut="FONC_X",into=("FONC_X","FONC_Y"),fr="Permutation des rôles des deux fonctions" ), - LIST_PARA =SIMP(statut='f',typ=listr8 ), - ), - b_resu_gene =BLOC(condition = "RESU_GENE != None", - regles=(UN_PARMI('NOEUD_CHOC','GROUP_NO_CHOC'),), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), - PARA_X =SIMP(statut='o',typ='TXM',fr="Paramètre associé aux abcisses de la fonction à tracer de la table information sur les chocs " ), - PARA_Y =SIMP(statut='o',typ='TXM',fr="Paramètre associé aux ordonnées de la fonction à tracer de la table information sur les chocs " ), - LIST_PARA =SIMP(statut='f',typ=listr8 ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - INTITULE =SIMP(statut='f',typ='TXM' ), - ), - - - LEGENDE =SIMP(statut='f',typ='TXM',fr="Légende associée à la courbe" ), - STYLE =SIMP(statut='f',typ='TXM',defaut="LIGNE",fr="Style de la ligne représentant la courbe", - into=("LIGNE","POINTILLE","POINT","POINT_RELIE") ), - COULEUR =SIMP(statut='f',typ='TXM',fr="Couleur associée à la courbe", - into=("NOIR","ROUGE","VERT_FONCE","BLEU", - "MAGENTA","CYAN","VERT","SIENNE","ORANGE", - "POURPRE","JAUNE","DAIM","TURQUOISE","VIOLET", - "BRUN","CORAIL","MARRON","MAUVE","MARRON_CLAIR") ), - MARQUEUR =SIMP(statut='f',typ='TXM',fr="Type du marqueur associé à la courbe", - into=("POINT_F","CARRE_F","TRIANGLE_F", - "LOSANGE_F","ETOILE_F","FUSEE_F","POINT", - "CARRE","TRIANGLE","LOSANGE","ETOILE","FUSEE", - "PLUS","X","CERCLE","CERCLE_P","CARRE_P", - "LOSANGE_P","CERCLE_P_X","LOSANGE_P_X", - "CERCLE_X","CARRE_X","LOSANGE_X") ), - b_agraf =BLOC(condition = "(FORMAT=='AGRAF')",fr="Mots-clés propres à AGRAF", - TRI =SIMP(statut='f',typ='TXM',defaut="N",fr="Choix du tri effectué sur les abcisses ou sur les ordonnées", - into=("N","X","Y","XY","YX") ), - FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence d impression du marqueur associé à la courbe", ), - ), - ), -) ; -#& MODIF COMMANDE DATE 02/02/2000 AUTEUR UFBHHGN G.NICOLAS -IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-A", - fr="Imprimer le fichier de configurations de HOMARD", - TRAITEMENT =FACT(statut='o',min=01,max=01, - regles=( UN_PARMI('ADAPTATION','UNIFORME','MAJSOLUTION','INFORMATION'),), - ADAPTATION =SIMP(statut='f',typ='TXM', - fr="Adaptation libre", - into=("RAFFINEMENT","DERAFFINEMENT","RAFF_DERA") ), - UNIFORME =SIMP(statut='f',typ='TXM', - into=("RAFFINEMENT","DERAFFINEMENT","RIEN") ), - MAJSOLUTION =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INFORMATION =SIMP(statut='f',typ='TXM',into=("OUI",) ), - b_adaptation =BLOC(condition = "( UNIFORME != None ) or ( ADAPTATION != None ) or ( MAJSOLUTION != None ) ", - fr="Adaptation", - NITER =SIMP(statut='o',typ='I' ), - MAJ_CHAMP =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ) , - b_adaptation_libre =BLOC(condition = "ADAPTATION != None", - fr="Adaptation libre", - NOM_MED_INDICA =SIMP(statut='o',typ='TXM' ), - NOM_CMP_INDICA =SIMP(statut='f',typ='TXM',defaut="ERREST", - into=("ERREST","NUEST") ), - NOM_MED_SUPPOR =SIMP(statut='o',typ='TXM' ), - ) , - b_raffinement_libre =BLOC( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' )" , - fr="Critère de raffinement.", - regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),), - CRIT_RAFF_ABS =SIMP(statut='f',typ='R' ), - CRIT_RAFF_REL =SIMP(statut='f',typ='R' ), - CRIT_RAFF_PE =SIMP(statut='f',typ='R' ), - ) , - b_deraffinement_libre =BLOC ( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' )" , - fr="Critère de déraffinement.", - regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),), - CRIT_DERA_ABS =SIMP(statut='f',typ='R' ), - CRIT_DERA_REL =SIMP(statut='f',typ='R' ), - CRIT_DERA_PE =SIMP(statut='f',typ='R' ), - ) , - b_raffinement =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' ) or ( UNIFORME == 'RAFFINEMENT' )" , - NIVE_MAX =SIMP(statut='f',typ='I' ), - ) , - b_deraffinement =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' ) or ( UNIFORME == 'DERAFFINEMENT' )" , - NIVE_MIN =SIMP(statut='f',typ='I' ), - ) , - ), - ANALYSE =FACT(statut='f',min=01,max=01, - regles=(AU_MOINS_UN('QUALITE','INTERPENETRATION'),), - QUALITE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - INTERPENETRATION=SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - ), - UNITE =SIMP(statut='f',typ='I',defaut= 71 ), - REP =SIMP(statut='f',typ='TXM' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 27/04/98 AUTEUR CIBHHLV L.VIVAN -IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,fr="Calcul du dommage subi par une structure soumise à une sollicitation de type aléatoire fichier, au format 'RESULTAT'", - docu="U4.91.02-C", - GENE =FACT(statut='o',min=01,max='**', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'), - EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'), - EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'), - EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'), - EXCLUS('TOUT_CHAM','NOM_CHAM'), - EXCLUS('TOUT_PARA','NOM_PARA'),), -# faut-il faire des blocs selon le type de RESU_GENE - RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)), - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ), - FICHIER =SIMP(statut='f',typ='TXM' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8 ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - b_prec_crit =BLOC(condition = "LIST_FREQ != None or FREQ != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - ), - TOUT_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NUME_CMP_GENE =SIMP(statut='f',typ='I',max='**'), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 16/10/90 AUTEUR INCONNU INCONNU -IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,docu="U4.91.21-F", - fr="Impression de caractéristiques d'objets JEVEUX (pour développeur)", - ENTITE =SIMP(fr="choix de l'observation",statut='o',typ='TXM', - into=("DISQUE","MEMOIRE","REPERTOIRE", - "OBJET","ATTRIBUT","SYSTEME") ), - b_objet =BLOC(condition = "(ENTITE=='OBJET')", - NOMOBJ =SIMP(fr="nom d'objet",statut='f',typ='TXM' ), - NUMOC =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ), - NOMOC =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ), - ), - b_attribut =BLOC(condition = "(ENTITE=='ATTRIBUT')", - NOMOBJ =SIMP(fr="nom de collection",statut='f',typ='TXM' ), - NOMATR =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM', - into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG', - '$$LONO','$$LUTI','$$NUM') ), - ), - b_systeme =BLOC(condition = "(ENTITE=='SYSTEME')", - CLASSE =SIMP(statut='o',typ='TXM',into=('G','V','L') ), - NOMATR =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM', - into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$ETAT', - '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG', - '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX', - '$$TLEC','$$TECR','$$IADM','$$ACCE') ), - ), - b_repertoire =BLOC(condition = "(ENTITE=='REPERTOIRE')", - CLASSE =SIMP(statut='f',typ='TXM',into=('G','V','L',' '),defaut=' '), - ), - b_disque =BLOC(condition = "(ENTITE=='DISQUE')", - CLASSE =SIMP(statut='f',typ='TXM' ,into=('G','V','L',' '),defaut=' '), - ), - IMPRESSION =FACT(statut='f',min=01,max=01, - NOM =SIMP(statut='f',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I'), - ), - COMMENTAIRE =SIMP(statut='f',typ='TXM' ), -) ; -#& MODIF COMMANDE DATE 09/09/98 AUTEUR ACBHHCD G.DEVESA -IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,fr="Impression au format fichier universel IDEAS ou au format MISS3D ou au format RESULTAT d un concept de type macr_elem_dyna", - docu="U7.04.33-C", - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - FICHIER =SIMP(statut='f',typ='TXM' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", - into=("MISS_3D","IDEAS","CADYRO",) ), - b_ideas =BLOC(condition = "FORMAT == 'IDEAS'", - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - ), - b_miss_3d =BLOC(condition = "FORMAT == 'MISS_3D'", - UNITE =SIMP(statut='f',typ='I',defaut= 26 ), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - GROUP_MA_INTERF =SIMP(statut='o',typ=grma,max='**'), -# Ces trois mots cles sont-ils dans le bon bloc et avec le bon statut - GROUP_MA_FLU_STR=SIMP(statut='f',typ=grma,max='**'), - GROUP_MA_FLU_SOL=SIMP(statut='f',typ=grma,max='**'), - GROUP_MA_SOL_SOL=SIMP(statut='f',typ=grma,max='**'), - IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_cadyro =BLOC(condition = "FORMAT == 'CADYRO'", - SQUELETTE =SIMP(statut='f',typ=squelette ), - UNITE_MODE_MECA =SIMP(statut='f',typ='I',defaut= 26 ), - UNITE_MODE_STAT =SIMP(statut='f',typ='I',defaut= 27 ), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 28 ), - IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - -) ; -#& MODIF COMMANDE DATE 07/04/98 AUTEUR CIBHHGB G.BERTRAND -IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,fr="Impression au format universel IDEAS ou au format RESULTAT des matrices élémentaires et des matrices assemblées", - docu="U7.04.32-C", - regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),), - - MATR_ELEM =FACT(statut='f',min=01,max='**', - FICHIER =SIMP(statut='f',typ='TXM' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", - into=("IDEAS","RESULTAT") ), - b_format =BLOC(condition = "FORMAT == 'IDEAS'", - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - ), -# créer les types matr_elem et vect_elem - MATRICE =SIMP(statut='o',typ=(matr_elem, vect_elem)), -# Quelle regle pour TOUT, NOEUD, GROUP_NO, MAILLE, GROUP_MA - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR", - into=("VALEUR","NOEUD","MAILLE") ), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ), - ), - MATR_ASSE =FACT(statut='f',min=01,max='**', - FICHIER =SIMP(statut='f',typ='TXM' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", - into=("IDEAS","RESULTAT") ), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), -# créer le type matr_elem - MATRICE =SIMP(statut='o',typ=matr_asse), -# Quelle regle pour TOUT, NOEUD, GROUP_NO, MAILLE, GROUP_MA - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="SOUS_MATRICE", - into=("SOUS_MATRICE","LIGNE","COLONNE") ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR", - into=("VALEUR","NOEUD") ), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ), - VALE_ZERO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,fr="Permet de transmettre au format MISS3D la contribution des charges internes à une superstructure sous forme d un second membre projeté sur la base modale (modes propres ou contraints), les signaux d excitation harmonique ou transitoire", - docu="U7.04.11-C", - regles=(UN_PARMI('INST_INIT','FREQ_INIT'), - PRESENT_PRESENT('INST_INIT','INST_FIN'), - PRESENT_PRESENT('FREQ_INIT','FREQ_FIN'),), - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - EXCIT =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), - FONC_MULT =SIMP(statut='f',typ=fonction ), - COEF_MULT =SIMP(statut='f',typ='R' ), - ), - EXCIT_SOL =FACT(statut='f',min=01,max='**', - DIRECTION =SIMP(statut='o',typ='R',max='**'), - FONC_SIGNAL =SIMP(statut='f',typ=fonction ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL", - into=("DEPL","VITE","ACCE","FORC",) ), - ), - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - FREQ_INIT =SIMP(statut='f',typ='R' ), - FREQ_FIN =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='o',typ='R' ), - UNITE =SIMP(statut='f',typ='I',defaut= 26 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 19/06/2000 AUTEUR DURAND C.DURAND -IMPR_RESU=PROC(nom="IMPR_RESU",op=39,docu="U4.91.01-E", - fr="Impression du résultat d un calcul (différents formats)", - MODELE =SIMP(statut='f',typ=modele), - RESU =FACT(statut='o',min=01,max='**', - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED") ), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - - regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'), - EXCLUS('CHAM_GD','RESULTAT'),), - MAILLAGE =SIMP(statut='f',typ=(maillage,squelette)), - INFO_MAILLAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CHAM_GD =SIMP(statut='f',typ=cham_gd), - RESULTAT =SIMP(statut='f',typ=resultat),# CO() sd a creer !!! - - b_extrac =BLOC(condition="RESULTAT != None", - fr="extraction d un champ de grandeur", - regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP', - 'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM',max='**'), - ANGL =SIMP(statut='f',typ='R',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - - b_acce_reel =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - - b_parametres =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""", - regles=(EXCLUS('TOUT_PARA','NOM_PARA'),), - INFO_RESU =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - FORM_TABL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - b_cmp =BLOC(condition="""(RESULTAT != None)and((FORMAT == 'RESULTAT')or(FORMAT == 'ENSIGHT'))""", - fr="sélection des composantes", - regles=(EXCLUS('TOUT_CMP','NOM_CMP'),), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - - b_topologie =BLOC(condition="""(RESULTAT != None)and((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS'))""", - fr="sélection des entités toplogiques", - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - - b_valeurs =BLOC(condition="(FORMAT == 'RESULTAT')", - fr="sélection sur les valeurs", - VALE_MAX =SIMP(statut='f',typ='TXM',into=("OUI",) ), - VALE_MIN =SIMP(statut='f',typ='TXM',into=("OUI",) ), - BORNE_SUP =SIMP(statut='f',typ='R'), - BORNE_INF =SIMP(statut='f',typ='R'), - IMPR_COOR =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), - ), - - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - FICHIER =SIMP(statut='f',typ='TXM'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 18/04/2000 AUTEUR D6BHHBQ B.QUINNEZ -IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de valeurs propres dans un intervalle donné", - docu="U4.52.01-F", - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"), - fr="Type d analyse" ), - b_dynamique =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - fr="Recheche du nombre de fréquences propres", - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ), - FREQ_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), - ), - b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - fr="Recherche du nombre de charges critiques", - CHAR_CRIT_MIN =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ), - CHAR_CRIT_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), - ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ), -) ; -#& MODIF COMMANDE DATE 22/07/99 AUTEUR CIBHHLV L.VIVAN -IMPR_TABLE=PROC(nom="IMPR_TABLE",op=155,docu="U4.91.03-C", - fr="Impression d un concept de type table", - TABLE =SIMP(statut='o',typ=table), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT", ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL", - into=("EXCEL","AGRAF","MOT_CLE","TABLEAU") ), - FILTRE =FACT(statut='f',min=01,max='**', - NOM_PARA =SIMP(statut='o',typ='TXM'), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_K =SIMP(statut='f',typ='TXM'), - VALE_CO =SIMP(statut='f',typ=geom), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - TRI =FACT(statut='f',min=01,max=01, - NOM_PARA =SIMP(statut='o',typ='TXM',max='**'), - ORDRE =SIMP(statut='f',typ='TXM',max='**',defaut="CROISSANT", - into=("CROISSANT","DECROISSANT") ), - ), - PAGINATION =SIMP(statut='f',typ='TXM',max='**'), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), - FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE", - into=("MODULE_PHASE","REEL_IMAG") ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",)), - IMPR_FONCTION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -INCLUDE=MACRO(nom="INCLUDE",op=-1,docu="U4.13.01-e", - fr="Débranchement vers un fichier de commandes secondaires", - sd_prod=ops.INCLUDE,op_init=ops.INCLUDE_context,fichier_ini=1, - UNITE = SIMP(statut='o',typ='I'), - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -); -#& MODIF COMMANDE DATE 07/02/2001 AUTEUR DURAND C.DURAND -INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,docu="U4.43.02-a", - fr=" ", - sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0, - NOM_AFNOR =SIMP(statut='o',typ='TXM' ), - TYPE_MODELE =SIMP(statut='o',typ='TXM',into=("REF","PAR") ), - VARIANTE =SIMP(statut='o',typ='TXM', - into=("A","B","C","D","E","F","G","H","I","J", - "K","L","M","N","O","P","Q","R","S","T","U","V", - "W","X","Y","Z",) ), - TYPE_VALE =SIMP(statut='o',typ='TXM',into=("NOMI","MINI","MAXI") ), - NOM_MATER =SIMP(statut='o',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I',defaut= 32 ), - EXTRACTION =FACT(statut='f',min=01,max=99, - COMPOR =SIMP(statut='o',typ='TXM' ), - TEMP_EVAL =SIMP(statut='o',typ='R' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 08/03/2000 AUTEUR CIBHHPD P.DAVID -INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe,docu="U4.81.11-E", - fr="Définition d une courbe sur un maillage 2D",reentrant='n', - regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'), - EXCLUS('DEFI_CHEMIN','DEFI_ARC'),), - MAILLAGE =SIMP(statut='o',typ=(maillage) ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DEFI_SEGMENT =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=2 ), - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - EXTREMITE =SIMP(statut='f',typ='R',max='**'), - NOEUD_EXTR =SIMP(statut='f',typ=no,max=1), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1), - ), - DEFI_ARC =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('RAYON','ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('RAYON','EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'), - PRESENT_PRESENT('RAYON','SECTEUR'),), - CENTRE =SIMP(statut='f',typ='R',max='**' ), - NOEUD_CENTRE =SIMP(statut='f',typ=no,max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,max=1), - RAYON =SIMP(statut='f',typ='R',max=1), - SECTEUR =SIMP(statut='f',typ='R',min=2,max=2), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - EXTREMITE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_EXTR =SIMP(statut='f',typ=no,max=1), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU",) ), - ), - DEFI_CHEMIN =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 08/03/2000 AUTEUR CIBHHPD P.DAVID -INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface,docu="U4.81.12-E", - fr="Définition d un chemin sur un maillage 3D",reentrant='n', - MAILLAGE =SIMP(statut='o',typ=maillage), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DEFI_SEGMENT =FACT(statut='o',min=01,max='**', - regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), - ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - EXTREMITE =SIMP(statut='f',typ='R',min=3,max=3), - NOEUD_EXTR =SIMP(statut='f',typ=no,max=1), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1), - ), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 02/02/2000 AUTEUR UFBHHGN G.NICOLAS -def lire_champ_prod(TYPE=None,**args): - if TYPE == "CHAM_NO_TEMP_R" : return cham_no_temp_r - if TYPE == "CHAM_NO_DEPL_R" : return cham_no_depl_r - raise AsException("type de concept resultat non prevu") - -LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod, - fr="Lire un champ dans un fichier et le stocker dans un concept.", - docu="U7.02.02-A",reentrant='n', -# -# 1. Le maillage support du champ -# - MAILLAGE =SIMP(statut='o',typ=maillage ), -# -# 2. Format de lecture -# Remarque : seul MED est operationnel dans cette version. -# - FORMAT =SIMP(statut='o',typ='TXM',defaut="MED",into=("MED",) ), -# -# 3. L'unite logique du fichier. -# - UNITE =SIMP(statut='f',typ='I',defaut= 81 ), - # -# 3. Pour le format MED, il faut preciser le nom sous lequel le champ est connu dans le fichier -# - b_format =BLOC(condition = "FORMAT == 'MED'", - fr="Nom du champ dans le fichier MED", - NOM_MED =SIMP(statut='o',typ='TXM' ),), -# -# 4. Le type du concept lu -# - TYPE =SIMP(statut='o',typ='TXM',into=("CHAM_NO_TEMP_R","CHAM_NO_DEPL_R") ), -# -# 5. Le niveau d'information -# - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -LIRE_FONCTION=OPER(nom="LIRE_FONCTION",op= 83,sd_prod=fonction, - fr="Lecture d une fonction dans un fichier ", - docu="U4.32.02-E",reentrant='n', - UNITE =SIMP(statut='o',typ='I' ), - NOM_PARA =SIMP(statut='f',typ='TXM', - into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ), - PROL_DROIT =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM', - into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ), - INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ), - PROL_DROIT_FONC =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 2,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR SABJLMA P.LATRUBESSE -LIRE_INTE_SPEC=OPER(nom="LIRE_INTE_SPEC",op= 116,sd_prod=tabl_intsp, - fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale", - docu="U4.36.01-E",reentrant='n', - UNITE =SIMP(statut='o',typ='I' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ), - NOM_PARA =SIMP(statut='f',typ='TXM', - into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ), - PROL_DROIT =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 19/06/2000 AUTEUR DURAND C.DURAND -LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage, - fr="Lecture d un fichier de maillage", - docu="U4.21.01-F",reentrant='n', - UNITE =SIMP(statut='f',typ='I',defaut= 20 ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED") ), - ABSC_CURV =FACT(statut='f',min=00,max=01, - TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - VERI_MAIL =FACT(statut='d',min=01,max=01, - APLAT =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - INFO_MED =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN -def lire_miss_3d_prod(TYPE_RESU,**args): - if TYPE_RESU == "TRANS" : return dyna_trans - if TYPE_RESU == "HARMO" : return dyna_harmo - raise AsException("type de concept resultat non prevu") - -LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod, - fr="Restitution au format MISS3D d une évolution harmonique ou transitoire", - docu="U7.02.31-C",reentrant='n', - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - UNITE =SIMP(statut='f',typ='I',defaut= 27 ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 08/09/98 AUTEUR CIBHHLV L.VIVAN -LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char, - fr=" ", - docu="U7.02.11-A",reentrant='n', - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - UNITE =SIMP(statut='f',typ='I',defaut= 19 ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)), - MAIL_PLEXUS =SIMP(statut='o',typ=maillage ), - MAILLAGE =SIMP(statut='o',typ=maillage ), - MODELE =SIMP(statut='o',typ=modele ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8 ), - b_prec_crit =BLOC(condition = "LIST_INST != None or INST != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHLV L.VIVAN -def lire_resu_prod(TYPE_RESU,**args): - if TYPE_RESU == "EVOL_CHAR" : return evol_char - if TYPE_RESU == "EVOL_THER" : return evol_ther - if TYPE_RESU == "EVOL_ELAS" : return evol_elas - if TYPE_RESU == "EVOL_NOLI" : return evol_noli - if TYPE_RESU == "DYNA_TRANS" : return dyna_trans - if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo - if TYPE_RESU == "HARM_GENE" : return harm_gene - raise AsException("type de concept resultat non prevu") - -LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,docu="U7.02.01-C",reentrant='n', - fr="Lecture de champs aux noeuds ou par éléments aux noeuds sur un fichier au format universel DEAS ou au format EnSight", - regles=(UN_PARMI('MAILLAGE','MODELE'),), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS","ENSIGHT","MED") ), - b_unite =BLOC(condition="FORMAT=='IDEAS'", - UNITE =SIMP(statut='f',typ='I',defaut= 19 ), - ), - b_nom_fichier =BLOC(condition="FORMAT=='ENSIGHT'", - NOM_FICHIER =SIMP(statut='f',typ='TXM'), - ), - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI", - "DYNA_TRANS","DYNA_HARMO","HARM_GENE","EVOL_CHAR") ), - b_evol_elas =BLOC(condition="TYPE_RESU=='EVOL_ELAS'", - NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',into=("DEPL",) ), - ), - b_evol_ther =BLOC(condition="TYPE_RESU=='EVOL_THER'", - NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',into=("TEMP","TEMP_PEAU") ), - ), - b_evol_char =BLOC(condition="TYPE_RESU=='EVOL_CHAR'", - NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',into=("PRES",) ), - ), - b_evol_noli =BLOC(condition="TYPE_RESU=='EVOL_NOLI'", - NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',into=("DEPL","VITE","ACCE","VARI_ELNO","SIEF_ELNO","EPSA_ELNO") ), - ), - b_dyna =BLOC(condition="(TYPE_RESU=='DYNA_TRANS') or (TYPE_RESU=='DYNA_HARMO') or(TYPE_RESU=='HARM_GENE')", - NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',into=("DEPL","VITE","ACCE",) ), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - MAILLAGE =SIMP(statut='f',typ=maillage), - MODELE =SIMP(statut='f',typ=modele), - NB_VARI =SIMP(statut='f',typ='I' ), - FORMAT_IDEAS =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('POSI_INST','POSI_FREQ'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',into=("TEMP","DEPL","VITE","ACCE","PRES","VARI_ELNO", - "SIEF_ELNO","EPSA_ELNO","TEMP_PEAU") ), - NUME_DATASET =SIMP(statut='f',typ='I',into=(55,57,2414) ), - RECORD_3 =SIMP(statut='f',typ='I',max='**'), - RECORD_6 =SIMP(statut='f',typ='I',max='**'), - RECORD_9 =SIMP(statut='f',typ='I',max='**'), - POSI_ORDRE =SIMP(statut='o',typ='I',max='**'), - POSI_INST =SIMP(statut='f',typ='I',max='**'), - POSI_FREQ =SIMP(statut='f',typ='I',max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - ), - b_extrac =BLOC(condition="1",fr="accès à un champ dans la structure de données résultat", - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST','FREQ','LIST_FREQ'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - LIST_ORDRE =SIMP(statut='f',typ=listis), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 19/06/2000 AUTEUR DURAND C.DURAND -def macr_adap_mail_prod(self,MAJ_CHAMP,ADAPTATION,**args): - mail1=ADAPTATION['MAILLAGE_N'] - self.type_sdprod(mail1,maillage) - mail2=ADAPTATION['MAILLAGE_NP1'] - self.type_sdprod(mail2,maillage) - if MAJ_CHAMP == None:return None - for ch in MAJ_CHAMP: - t=ch['TYPE_CHAMP'] - if t == 'CHAM_NO_TEMP_R':self.type_sdprod(ch['CHAMP_MAJ'],cham_no_temp_r) - if t == 'CHAM_NO_DEPL_R':self.type_sdprod(ch['CHAMP_MAJ'],cham_no_depl_r) - return None - -MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=-24,sd_prod=macr_adap_mail_prod, - fr="Adapter un maillage avec le logiciel HOMARD.", - docu="U7.03.01-A", - VERSION_HOMARD =SIMP(statut='f',typ='TXM',defaut="V3_15", - into=("V3_15","V3_N","V3_N_PERSO",) ), - ADAPTATION =FACT(statut='o',min=01,max=01, - regles=( - UN_PARMI('LIBRE','UNIFORME'), - ), - LIBRE =SIMP(statut='f',typ='TXM', - into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT") ), - UNIFORME =SIMP(statut='f',typ='TXM', - into=("RAFFINEMENT","DERAFFINEMENT","RIEN") ), - MAILLAGE_N =SIMP(statut='o',typ=(CO,maillage) ), - MAILLAGE_NP1 =SIMP(statut='o',typ=(CO,maillage) ), - b_adaptation_libre =BLOC( condition = " LIBRE != None " , - fr="Indicateur d erreur", - RESULTAT_N =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther ) ), - INDICATEUR =SIMP(statut='o',typ='TXM', - into=("ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2","ERRE_ELGA_NORE") ), - NOM_CMP_INDICA =SIMP(statut='f',typ='TXM',defaut="ERREST", - into=("ERREST","NUEST") ), - NUME_ORDRE =SIMP(statut='f',typ='I' ), - ) , - b_raffinement_libre =BLOC( condition = "( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' )" , - fr="Critère de raffinement.", - regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),), - CRIT_RAFF_ABS =SIMP(statut='f',typ='R' ), - CRIT_RAFF_REL =SIMP(statut='f',typ='R' ), - CRIT_RAFF_PE =SIMP(statut='f',typ='R' ), - ) , - b_deraffinement_libre =BLOC ( condition = "( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' )" , - fr="Crit\350re de déraffinement.", - regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),), - CRIT_DERA_ABS =SIMP(statut='f',typ='R' ), - CRIT_DERA_REL =SIMP(statut='f',typ='R' ), - CRIT_DERA_PE =SIMP(statut='f',typ='R' ), - ) , - b_raffinement =BLOC ( condition = " ( ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' ) ) or ( ( UNIFORME != None ) and ( UNIFORME == 'RAFFINEMENT' ) ) " , - NIVE_MAX =SIMP(statut='f',typ='I' ), - ) , - b_deraffinement =BLOC ( condition = " ( ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' ) ) or ( ( UNIFORME != None ) and ( UNIFORME == 'DERAFFINEMENT' ) ) " , - NIVE_MIN =SIMP(statut='f',typ='I' ), - ) , - ), - MAJ_CHAMP =FACT(statut='f',min=01,max='**', - RESULTAT =SIMP(statut='o', - typ=(evol_elas,evol_noli,evol_ther) ), - NOM_CHAM =SIMP(statut='o',typ='TXM' ), - NUME_ORDRE =SIMP(statut='f',typ='I' ), - CHAMP_MAJ =SIMP(statut='o',typ=(CO,cham_gd)), - TYPE_CHAMP =SIMP(statut='o',typ='TXM', - into=("CHAM_NO_TEMP_R","CHAM_NO_DEPL_R") ), - ), - QUALITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - MENAGE =SIMP(statut='f',typ='TXM',into=("MAILLAGE","SOLUTION","TOUT") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 20/10/2000 AUTEUR F1BHHAJ J.ANGLES -def macr_ascouf_calc_prod(self,MODELE,**args): - self.type_sdprod(MODELE,modele) - return evol_noli - -MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op= -20,sd_prod=macr_ascouf_calc_prod, - fr=" ", - docu="U4.CF.20-A",reentrant='n', - regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), - TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', - into=("SAIN", - "FISS_COUDE", - "SOUS_EPAIS_COUDE" - ) ), - CL_BOL_P2_GV =FACT(statut='f',min=01,max=01, - ANGLE =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - ), - MAILLAGE =SIMP(statut='o',typ=maillage ), - MODELE =SIMP(statut='o',typ=(CO,modele)), - AFFE_MATERIAU =FACT(statut='o',min=01,max=03, - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ='TXM',into=("COUDE","BOL") ), - MATER =SIMP(statut='o',typ=mater ), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - PRES_REP =FACT(statut='f',min=01,max=01, - PRES =SIMP(statut='o',typ='R' ), - EFFE_FOND_P1 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - FONC_MULT =SIMP(statut='f',typ=fonction ), - ), - ECHANGE =FACT(statut='f',min=01,max=01, - COEF_H =SIMP(statut='f',typ=fonction ), - TEMP_EXT =SIMP(statut='f',typ=fonction ), - ), - TORS_P1 =FACT(statut='f',min=01,max=06, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - FONC_MULT =SIMP(statut='f',typ=fonction ), - ), - COMP_INCR =FACT(statut='f',min=01,max=01, - RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ), - ), - COMP_ELAS =FACT(statut='f',min=01,max=01, - RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ), - SOLVEUR =FACT(statut='d',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - CONVERGENCE =FACT(statut='d',min=01,max=01, - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - TYPE_MATR_COMP =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT",)), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - NEWTON =FACT(statut='d',min=01,max=01, - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - RECH_LINEAIRE =FACT(statut='f',min=01,max=01, - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ), - INCREMENT =FACT(statut='o',min=01,max=01, - LIST_INST =SIMP(statut='o',typ=listr8 ), - NUME_INST_INIT =SIMP(statut='f',typ='I' ), - NUME_INST_FIN =SIMP(statut='f',typ='I' ), - ), - THETA_3D =FACT(statut='f',min=01,max='**', - R_INF =SIMP(statut='o',typ='R' ), - R_SUP =SIMP(statut='o',typ='R' ), - ), - IMPR_TABLE =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ), - PRESENT_PRESENT('TOUT_PARA','ANGLE', ), - UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),), - NOM_PARA =SIMP(statut='f',typ='TXM',max=04, - into=("TRESCA_MEMBRANE", - "TRESCA_MFLE", - "TRESCA", - "SI_LONG" - ) ), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ANGLE =SIMP(statut='f',typ='R',max='**' ), - R_CINTR =SIMP(statut='f',typ='R',max='**' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ), - POSI_ANGUL =SIMP(statut='f',typ='R',max='**' ), - ), - IMPRESSION =FACT(statut='f',min=01,max=01, - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","ASTER","IDEAS","CASTEM") ), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=(4,5) ), - ), - TITRE =SIMP(statut='f',typ='TXM' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 02/10/2000 AUTEUR F1BHHAJ J.ANGLES -MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op= -19,sd_prod=maillage, - fr=" ",docu="U4.CF.10-A",reentrant='n', - regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),), - EXEC_MAILLAGE =FACT(statut='o',min=01,max=01, - LOGICIEL =SIMP(statut='o',typ='TXM',into=("GIBI",) ), - UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), - UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)), - ), - TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ), - COUDE =FACT(statut='o',min=01,max=01, - regles=( UN_PARMI('DEXT', 'DEXT_T1'), - ENSEMBLE('DEXT', 'EPAIS'), - ENSEMBLE('DEXT_T1', 'EPAIS_T1', 'EPAIS_T2', - 'ANGL_TETA1'), - ENSEMBLE('EPAIS_TI', 'ANGL_TETA2'), - PRESENT_ABSENT('ABSC_CURV_TRAN', 'POSI_ANGU_TRAN'), - PRESENT_PRESENT('ABSC_CURV_TRAN', 'DEXT_T1'), - PRESENT_PRESENT('POSI_ANGU_TRAN', 'DEXT_T1'), - PRESENT_PRESENT('EPAIS_TI', 'DEXT_T1'), - PRESENT_ABSENT('DEXT_T1', 'SUR_EPAIS'), - PRESENT_ABSENT('DEXT_T1', 'BOL_P2'),), - ANGLE =SIMP(statut='o',typ='R' ), - R_CINTR =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - L_TUBE_P2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ), - NB_ELEM_EPAIS =SIMP(statut='f',typ='I',defaut= 3 ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - TRANSFORMEE =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), - TRAN_EPAIS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DEXT =SIMP(statut='f',typ='R' ), - EPAIS =SIMP(statut='f',typ='R' ), - DEXT_T1 =SIMP(statut='f',typ='R' ), - EPAIS_T1 =SIMP(statut='f',typ='R' ), - EPAIS_T2 =SIMP(statut='f',typ='R' ), - EPAIS_TI =SIMP(statut='f',typ='R' ), - ANGL_TETA1 =SIMP(statut='f',typ='R' ), - ANGL_TETA2 =SIMP(statut='f',typ='R' ), - ABSC_CURV_TRAN =SIMP(statut='f',typ='R' ), - POSI_ANGU_TRAN =SIMP(statut='f',typ='R' ), - ), - SOUS_EPAIS_COUDE=FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), - UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), - TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), - AXE_CIRC =SIMP(statut='f',typ='R' ), - AXE_LONGI =SIMP(statut='o',typ='R' ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R' ), - SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), - NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), - NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), - NB_ELEM_RADI =SIMP(statut='f',typ='I',defaut= 3 ), - EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - SOUS_EPAIS_MULTI=FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), - UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), - TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), - AXE_CIRC =SIMP(statut='f',typ='R' ), - AXE_LONGI =SIMP(statut='o',typ='R' ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R' ), - SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), - NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), - NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), - EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - FISS_COUDE =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),), - AXIS =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - LONGUEUR =SIMP(statut='o',typ='R' ), - ABSC_CURV =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - ORIEN =SIMP(statut='o',typ='R', - into=(45.,-45.,90.,0.E+0) ), - NB_TRANCHE =SIMP(statut='o',typ='I' ), - NB_SECTEUR =SIMP(statut='o',typ='I' ), - NB_COURONNE =SIMP(statut='o',typ='I' ), - RAYON_TORE =SIMP(statut='f',typ='R' ), - COEF_MULT_RC2 =SIMP(statut='f',typ='R',defaut= 1. ), - COEF_MULT_RC3 =SIMP(statut='f',typ='R' ), - ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - IMPRESSION =FACT(statut='f',min=01,max='**', - regles=(PRESENT_PRESENT('FICHIER','UNITE'),), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER", - into=("ASTER","IDEAS","CASTEM") ), - FICHIER =SIMP(statut='f',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I' ), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=(4,5) ), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut= 10,into=(3,10) ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 20/10/2000 AUTEUR F1BHHAJ J.ANGLES -def macr_aspic_calc_prod(self,RESU_THER,MODELE,**args): - if MODELE != None:self.type_sdprod(MODELE,modele) - if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther) - return evol_noli - -MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=-17,sd_prod=macr_aspic_calc_prod, - fr=" ",docu="U4.PC.20-A",reentrant='n', - TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', - into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB", - "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ), - TUBULURE =FACT(statut='f',min=01,max=01, - TYPE =SIMP(statut='f',typ='TXM',defaut="TYPE_1",into=("TYPE_1","TYPE_2") ), - ), - MAILLAGE =SIMP(statut='o',typ=maillage), - MODELE =SIMP(statut='f',typ=(CO,modele)), - RESU_THER =SIMP(statut='f',typ=(CO,evol_ther)), - AFFE_MATERIAU =FACT(statut='o',min=01,max=03, - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - GROUP_MA =SIMP(statut='f',typ='TXM',into=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ), - MATER =SIMP(statut='o',typ=mater), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - EQUILIBRE =FACT(statut='o',min=01,max=01, - NOEUD =SIMP(statut='o',typ=no), - ), - PRES_REP =FACT(statut='o',min=01,max=01, - PRES =SIMP(statut='o',typ='R'), - NOEUD =SIMP(statut='f',typ=no), - EFFE_FOND =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - FONC_MULT =SIMP(statut='f',typ=fonction), - ), - ECHANGE =FACT(statut='f',min=01,max=01, - COEF_H_TUBU =SIMP(statut='o',typ=fonction), - COEF_H_CORP =SIMP(statut='o',typ=fonction), - TEMP_EXT =SIMP(statut='o',typ=fonction), - ), - TORS_CORP =FACT(statut='f',min=01,max=06, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - NOEUD =SIMP(statut='o',typ=no), - FX =SIMP(statut='f',typ='R'), - FY =SIMP(statut='f',typ='R'), - FZ =SIMP(statut='f',typ='R'), - MX =SIMP(statut='f',typ='R'), - MY =SIMP(statut='f',typ='R'), - MZ =SIMP(statut='f',typ='R'), - FONC_MULT =SIMP(statut='f',typ=fonction), - ), - TORS_TUBU =FACT(statut='f',min=01,max=06, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - FX =SIMP(statut='f',typ='R'), - FY =SIMP(statut='f',typ='R'), - FZ =SIMP(statut='f',typ='R'), - MX =SIMP(statut='f',typ='R'), - MY =SIMP(statut='f',typ='R'), - MZ =SIMP(statut='f',typ='R'), - FONC_MULT =SIMP(statut='f',typ=fonction), - ), - COMP_ELAS =FACT(statut='o',min=01,max=01, - RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC")), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ), - THETA_3D =FACT(statut='f',min=01,max='**', - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - OPTION =SIMP(statut='f',typ='TXM',into=("CALC_G_MAX",) ), - BORNES =FACT(statut='f',min=01,max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - SOLVEUR =FACT(statut='d',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - ), - CONVERGENCE =FACT(statut='d',min=01,max=01, - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut=0), - TYPE_MATR_COMP =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT",)), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - NEWTON =FACT(statut='d',min=01,max=01, - REAC_INCR =SIMP(statut='f',typ='I',defaut=1), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL","DEPL_CALCULE")), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE")), - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), - ), - RECH_LINEAIRE =FACT(statut='d',min=01,max=01, - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-3), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut=3), - ), - INCREMENT =FACT(statut='o',min=01,max=01, - LIST_INST =SIMP(statut='o',typ=listr8), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - ), - PAS_AZIMUT =SIMP(statut='f',typ='I',defaut=1), - IMPRESSION =FACT(statut='f',min=01,max=01, - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT","ASTER","CASTEM","IDEAS")), - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM'), -) ; -#& MODIF COMMANDE DATE 01/02/2000 AUTEUR CIBHHBC B.CIREE -MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= -16,sd_prod=maillage,reentrant='n', - fr=" ",docu="U4.PC.10-A", - TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")), - RAFF_MAIL =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")), - EXEC_MAILLAGE =FACT(statut='o',min=01,max=01, - LOGICIEL =SIMP(statut='o',typ='TXM',into=("GIBI",)), - UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), - UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)), - ), - TUBULURE =FACT(statut='o',min=01,max=01, - E_BASE =SIMP(statut='o',typ='R'), - DEXT_BASE =SIMP(statut='o',typ='R'), - L_BASE =SIMP(statut='o',typ='R'), - L_CHANF =SIMP(statut='o',typ='R'), - E_TUBU =SIMP(statut='o',typ='R'), - DEXT_TUBU =SIMP(statut='o',typ='R'), - Z_MAX =SIMP(statut='o',typ='R'), - TYPE =SIMP(statut='f',typ='TXM',defaut="TYPE_1",into=("TYPE_1","TYPE_2")), - L_PENETR =SIMP(statut='f',typ='R',defaut= 0.0E+0), - ), - SOUDURE =FACT(statut='o',min=01,max=01, - H_SOUD =SIMP(statut='o',typ='R'), - ANGL_SOUD =SIMP(statut='o',typ='R'), - JEU_SOUD =SIMP(statut='o',typ='R'), - ), - CORPS =FACT(statut='o',min=01,max=01, - E_CORP =SIMP(statut='o',typ='R'), - DEXT_CORP =SIMP(statut='o',typ='R'), - X_MAX =SIMP(statut='o',typ='R'), - ), - FISS_SOUDURE =FACT(statut='f',min=01,max=01, - TYPE =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")), - AXIS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - PROFONDEUR =SIMP(statut='o',typ='R'), - LONGUEUR =SIMP(statut='f',typ='R'), - AZIMUT =SIMP(statut='o',typ='R'), - RAYON_TORE =SIMP(statut='f',typ='R'), - POSITION =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")), - FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")), - LIGA_INT =SIMP(statut='f',typ='R'), - ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.0E+0), - COEF_MULT_RC1 =SIMP(statut='f',typ='R'), - COEF_MULT_RC2 =SIMP(statut='f',typ='R'), - COEF_MULT_RC3 =SIMP(statut='f',typ='R'), - NB_TRANCHE =SIMP(statut='f',typ='I'), - NB_SECTEUR =SIMP(statut='f',typ='I'), - NB_COURONNE =SIMP(statut='f',typ='I'), - ), - IMPRESSION =FACT(statut='f',min=01,max='**', - regles=(PRESENT_PRESENT('FICHIER','UNITE'),), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")), - FICHIER =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN -MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op= 81,sd_prod=macr_elem_dyna, - fr="Définition d un macro élément pour analyse modale ou harmonique par sous structuration dynamique", - docu="U4.65.01-D",reentrant='n', - regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),), - BASE_MODALE =SIMP(statut='o',typ=base_modale ), - MATR_RIGI =SIMP(statut='f',typ=matr_asse_depl_r ), - MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ), - MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ") ), -) ; -#& MODIF COMMANDE DATE 08/03/94 AUTEUR VABHHT2 G.BERTRAND -MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,docu="U4.62.01-E",reentrant='f', - fr="Définition d un macro-élément pour l analyse statique par sous structuration", - regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'), - ENSEMBLE('DEFINITION','EXTERIEUR'),), - DEFINITION =FACT(statut='f',min=1,max=1, - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHAR_MACR_ELEM =SIMP(statut='f',typ=char_meca), - INST =SIMP(statut='f',typ='R',defaut=0.0E+0 ), - NMAX_CAS =SIMP(statut='f',typ='I',defaut=10), - NMAX_CHAR =SIMP(statut='f',typ='I',defaut=10), - ), - EXTERIEUR =FACT(statut='f',min=1,max=1, - regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - ), - RIGI_MECA =FACT(statut='f',min=1,max=1, - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - ), - MASS_MECA =FACT(statut='f',min=1,max=1, - BIDO1 =SIMP(statut='f',typ='I',defaut=0), - ), - CAS_CHARGE =FACT(statut='f',min=1,max='**', - NOM_CAS =SIMP(statut='o',typ='TXM'), - SUIV =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - CHARGE =SIMP(statut='f',typ=char_meca,max='**'), - INST =SIMP(statut='f',typ='R',defaut=0.E+0), - ), -) ; -#& MODIF COMMANDE DATE 15/09/1999 AUTEUR F1BHHAJ J.ANGLES -MACR_GOUJ2E_CALC=MACRO(nom="MACR_GOUJ2E_CALC",op=-23,sd_prod=evol_noli, - fr=" ",docu="U4.GJ.20-A",reentrant='n', - MAILLAGE =SIMP(statut='o',typ=maillage), - DEFI_GOUJ =FACT(statut='o',min=01,max=01, - TYPE =SIMP(statut='o',typ='TXM',into=("M33","M64","M90","M115","M155","M180","M186")), - VARIANTE =SIMP(statut='o',typ='TXM',into=("A","B","C","D","E","F","G","H","I","J","K","L","M", - "N","O","P","Q","R","S","T","U","V","W","X","Y","Z")), - FILET_TRONQUE =SIMP(statut='f',typ='I',max='**'), - FILET_TRONQA =SIMP(statut='f',typ='I',max='**'), - FILET_TRONQB =SIMP(statut='f',typ='I',max='**'), - FILET_JEU_HT =SIMP(statut='f',typ='I',max='**'), - FILET_JEU_HTA =SIMP(statut='f',typ='I',max='**'), - FILET_JEU_HTB =SIMP(statut='f',typ='I',max='**'), - ), - EXCIT =FACT(statut='o',min=01,max=01, - TYPE_BLOCAGE =SIMP(statut='o',typ='I',defaut=2,into=(1,2,3)), - FORCE_GOUJ =SIMP(statut='o',typ='R'), - ), - CALCUL =FACT(statut='o',min=01,max=01, - TYPE_CALCUL =SIMP(statut='o',typ='TXM',into=("ELASTIQUE","ELASTOPLASTIQUE")), - NB_INCR =SIMP(statut='o',typ='I'), - ), - IMPRESSION =FACT(statut='f',min=01,max=01, - FORMAT =SIMP(statut='f',typ='TXM',defaut="TABLE", - into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","TABLE")), - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - TITRE =SIMP(statut='f',typ='TXM'), - INFO =SIMP(statut='f',typ='I',defaut=1 ,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 02/02/2000 AUTEUR F1BHHAJ J.ANGLES -MACR_GOUJ2E_MAIL=MACRO(nom="MACR_GOUJ2E_MAIL",op= -22,sd_prod=maillage, - fr=" ",docu="U4.GJ.10-A",reentrant='n', - EXEC_MAILLAGE =FACT(statut='o',min=01,max=01, - LOGICIEL =SIMP(statut='o',typ='TXM',into=("GIBI",) ), - UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), - UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10)), - ), - DEFI_GOUJ =FACT(statut='o',min=01,max=01, - TYPE =SIMP(statut='o',typ='TXM',into=("M33","M64","M90","M115","M155","M180","M186")), - VARIANTE =SIMP(statut='o',typ='TXM',into=("A","B","C","D","E","F","G","H","I","J","K","L","M", - "N","O","P","Q","R","S","T","U","V","W","X","Y","Z")), - ), - GEOM_GOUJ_BRID =FACT(statut='o',min=01,max=01, - NB_FILET =SIMP(statut='o',typ='I'), - H_CORP_BRID =SIMP(statut='o',typ='R'), - R_EXT_BRID =SIMP(statut='o',typ='R'), - H_HAUT_BRID =SIMP(statut='f',typ='R',defaut=0.0E+0), - H_BAS_BRID =SIMP(statut='f',typ='R',defaut= 0.0E+0), - FILET_ABST =SIMP(statut='f',typ='I',max='**'), - ), - IMPRESSION =FACT(statut='f',min=01,max=01, - regles=(PRESENT_PRESENT('FICHIER','UNITE'),), - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED")), - FICHIER =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 19/06/2000 AUTEUR DURAND C.DURAND -MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=-24,docu="U7.03.02-A", - fr="Donner des informations sur un maillage.", -# -# 1. Le nom du maillage a analyser -# - MAILLAGE =SIMP(statut='o',typ=maillage), -# -# 2. Determination de la qualite des elements du maillage -# Par defaut, rien ne se fait -# - QUALITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), -# -# 3. Controle de la non-interpenetration des elements -# Par defaut, rien ne se fait -# - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), -# -# 4. Version homard -# - VERSION_HOMARD =SIMP(statut='f',typ='TXM',defaut="V3_15",into=("V3_15","V3_N","V3_N_PERSO")), -# -# 5. Le niveau d'information -# - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 02/06/99 AUTEUR CIBHHLV L.VIVAN -MACR_PRE_SYRTHES=MACRO(nom="MACR_PRE_SYRTHES",op=-21,fr=" ",docu="U7.02.21-A", - MAILLAGE =FACT(statut='d',min=01,max=01, - UNITE_SYRTHES =SIMP(statut='f',typ='I',defaut=13), - UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19), - ), - RESULTAT =FACT(statut='d',min=01,max=01, - UNITE_SYRTHES =SIMP(statut='f',typ='I',defaut=31), - UNITE_IDEAS =SIMP(statut='f',typ='I',defaut= 91 ), - ), -) ; -#& MODIF COMMANDE DATE 17/11/1999 AUTEUR CIBHHGB G.BERTRAND -MACRO_CARA_POUTRE=MACRO(nom="MACRO_CARA_POUTRE",op=-11,sd_prod=tabl_cara_geom, - docu="U4.42.02-C",reentrant='n', - fr="Détermination des caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section", - regles=(EXCLUS('SYME_X','GROUP_MA_BORD'), - EXCLUS('SYME_Y','GROUP_MA_BORD'), - ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 20 ), - SYME_X =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - SYME_Y =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - GROUP_MA_BORD =SIMP(statut='f',typ=grma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ORIG_INER =SIMP(statut='f',typ='R',max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_INTE =SIMP(statut='f',typ=grma,max='**'), - LONGUEUR =SIMP(statut='f',typ='R'), - MATERIAU =SIMP(statut='f',typ=mater), - LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 30/06/98 AUTEUR CIBHHGB G.BERTRAND -MACRO_CHAR_F_U=MACRO(nom="MACRO_CHAR_F_U",op=-15,sd_prod=char_meca, - fr=" ",docu="U4.72.07-A",reentrant='n', - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CHARGE =SIMP(statut='o',typ=char_meca), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - COEF_IMPO =SIMP(statut='f',typ='R',defaut=1.0E+0), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="APRES",into=("NORMAL","APRES")), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 05/06/2000 AUTEUR CIBHHLV L.VIVAN -def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ): - self.type_sdprod(NUME_DDL,nume_ddl) - if CAS_CHARGE[0]['NOM_CAS'] != None : return mult_elas - if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas - raise AsException("type de concept resultat non prevu") - -MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=-10,sd_prod=macro_elas_mult_prod,docu="U4.51.02-C",reentrant='f', - fr="Permet la réalisation d une analyse statique linéaire multi cas de charges ou la réalisation des calculs de plusieurs modes de Fourier sur un modèle axisymétrique", - regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),), - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - NUME_DDL =SIMP(statut='f',typ=(CO,nume_ddl)),# CO() - CHAR_MECA_GLOBAL=SIMP(statut='f',typ=char_meca,max='**'), - CHAR_CINE_GLOBAL=SIMP(statut='f',typ=char_meca,max='**'), - LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)), - CAS_CHARGE =FACT(statut='o',min=01,max='**', - regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'), - UN_PARMI('CHAR_MECA','CHAR_CINE','VECT_ASSE'),), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - MODE_FOURIER =SIMP(statut='f',typ='I' ), - TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), - CHAR_MECA =SIMP(statut='f',typ=char_meca,max='**'), - CHAR_CINE =SIMP(statut='f',typ=char_meca,max='**'), - OPTION =SIMP(statut='f',typ='TXM',max='**', - into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "SIGM_ELNO_CART","EFGE_ELNO_CART","DEGE_ELNO_DEPL","EPSI_ELNO_DEPL", - "EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO","EPSP_ELGA", - "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC", - "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI", - "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA", - "ERRE_ELEM_NOZ2","VNOR_ELEM_DEPL","ERRE_ELNO_ELGA","SIRE_ELNO_DEPL", - "ERRE_ELGA_NORE","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI", - "EQUI_ELGA_EPSI","FORC_NODA","REAC_NODA","EPSI_NOEU_DEPL","SIGM_NOEU_DEPL", - "EFGE_NOEU_DEPL","EQUI_NOEU_SIGM","EQUI_NOEU_EPSI","FLUX_NOEU_TEMP") ), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r), - ), -# -# attention d après la documentation U4-02-04B (solveur), PRE_COND figure uniquement avec la méthode GCPC -# - SOLVEUR =FACT(statut='d',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -MACRO_MADMACS=MACRO(nom="MACRO_MADMACS",op=-9,docu="U7.03.21-C", - fr="Impression au format fichier universel IDEAS des données nécessaires au chaînage entre Code_Aster et MADMACS", - regles=(UN_PARMI('MATR_ELEM_RIGI','MATR_RIGI'), - UN_PARMI('MATR_ELEM_MASS','MATR_MASS'), - PRESENT_ABSENT('MATR_ELEM_AMOR','MATR_AMOR'),), - FICHIER =SIMP(statut='f',typ='TXM' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)), - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(5,)), - MAILLAGE =SIMP(statut='o',typ=maillage), - NUME_DDL =SIMP(statut='o',typ=nume_ddl), - CHARGE =SIMP(statut='o',typ=char_meca,max='**'), - MATR_ELEM_RIGI =SIMP(statut='f',typ=matr_elem_depl_r), - MATR_RIGI =SIMP(statut='f',typ=matr_asse_depl_r), - MATR_ELEM_MASS =SIMP(statut='f',typ=matr_elem_depl_r), - MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r), - MATR_ELEM_AMOR =SIMP(statut='f',typ=matr_elem_depl_r), - MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r), - MODE_MECA =SIMP(statut='o',typ=mode_meca), - NMAX_MODE =SIMP(statut='f',typ='I',defaut=10), - INTERFACE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO'), - UN_PARMI('DDL_ACTIF','MASQUE'),), - NOM =SIMP(statut='o',typ='TXM'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'), - MASQUE =SIMP(statut='f',typ='TXM',max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 19/05/2000 AUTEUR JFBHHUC C.ROSE -def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,**args): - self.type_sdprod(MATR_AMOR_AJOU,matr_asse_depl_r) - self.type_sdprod(MATR_MASS_AJOU,matr_asse_depl_r) - self.type_sdprod(MATR_RIGI_AJOU,matr_asse_depl_r) - return None - -MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=-13,docu="U4.66.11-B",sd_prod=macro_matr_ajou_prod, - fr="Calcul les matrices de masse, d amortissement ou de rigidité ajoutées qu induit un fluide parfait, incompressible, au repos ou en écoulement potentiel, sur une structure en 2D, 2D axisymétrique ou en 3D", - regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'), - AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'), - EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'),), - MAILLAGE =SIMP(statut='o',typ=maillage), - GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma), - GROUP_MA_INTERF =SIMP(statut='o',typ=grma), - MODELISATION =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")), - FLUIDE =FACT(statut='o',min=01,max='**', - RHO =SIMP(statut='o',typ='R'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma), - ), - DDL_IMPO =FACT(statut='o',min=01,max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO'), - UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - PRES_FLUIDE =SIMP(statut='f',typ='R'), - PRES_SORTIE =SIMP(statut='f',typ='R'), - ), - ECOULEMENT =FACT(statut='f',min=01,max='**', - GROUP_MA_1 =SIMP(statut='o',typ=grma), - GROUP_MA_2 =SIMP(statut='o',typ=grma), - VNOR_1 =SIMP(statut='o',typ='R'), - VNOR_2 =SIMP(statut='f',typ='R'), - POTENTIEL =SIMP(statut='f',typ=evol_ther), - ), - MODE_MECA =SIMP(statut='f',typ=mode_meca), - DEPL_IMPO =SIMP(statut='f',typ=cham_no_depl_r), - MODELE_GENE =SIMP(statut='f',typ=modele_gene), - NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene), - DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.0E-2), - MATR_MASS_AJOU =SIMP(statut='f',typ=(CO,matr_asse)), - MATR_RIGI_AJOU =SIMP(statut='f',typ=(CO,matr_asse)), - MATR_AMOR_AJOU =SIMP(statut='f',typ=(CO,matr_asse)), - SOLVEUR =FACT(statut='d',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), -) ; -#& MODIF COMMANDE DATE 03/10/2000 AUTEUR VABHHTS J.PELLET -def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args): - if not MATR_ASSE: raise AsException("Impossible de typer les concepts resultats") - if not NUME_DDL: raise AsException("Impossible de typer les concepts resultats") - self.type_sdprod(NUME_DDL,nume_ddl) - for m in MATR_ASSE: - opti=m['OPTION'] - if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" , - "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA", - "AMOR_MECA","IMPE_MECA" , - "ONDE_FLUI","MASS_MECA_DIAG" ) : t=matr_asse_depl_r - if opti == "RIGI_MECA_HYST" : t= matr_asse_depl_c - if opti == "RIGI_THER" : t= matr_asse_temp_r - if opti == "MASS_THER" : t= matr_asse_temp_r - if opti == "RIGI_THER_CONV" : t= matr_asse_temp_r - if opti == "RIGI_THER_CONV_D" : t= matr_asse_temp_r - if opti == "RIGI_ACOU" : t= matr_asse_pres_c - if opti == "MASS_ACOU" : t= matr_asse_pres_c - if opti == "AMOR_ACOU" : t= matr_asse_pres_c - self.type_sdprod(m['MATRICE'],t) - return None - -MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=-6,docu="U4.61.21-C", - sd_prod=macro_matr_asse_prod, - fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ", - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou)), - INST =SIMP(statut='f',typ='R'), - NUME_DDL =SIMP(statut='o',typ=(nume_ddl,CO)), - SOLVEUR =FACT(statut='d',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT", - into=("LDLT","MULT_FRONT","GCPC")), - TAILLE_BLOC =SIMP(statut='f',typ='R'), - RENUM =SIMP(statut='f',typ='TXM',into=("SANS","RCMK","MD","MDA","METIS")), - ), - MATR_ASSE =FACT(statut='o',min=01,max='**', - MATRICE =SIMP(statut='o',typ=(matr_asse,CO)), - OPTION =SIMP(statut='o',typ='TXM', - into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG", - "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA", - "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU", - "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR", - "RIGI_THER","MASS_THER","RIGI_ACOU","MASS_ACOU", - "AMOR_ACOU")), - SIEF_ELGA =SIMP(statut='f',typ=cham_elem_sief_r), - MODE_FOURIER =SIMP(statut='f',typ='I'), - THETA =SIMP(statut='f',typ=theta_geom), - PROPAGATION =SIMP(statut='f',typ='R'), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 02/02/99 AUTEUR ACBHHCD G.DEVESA -MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=-18,fr=" ",docu="U7.03.11-A", - OPTION =FACT(statut='o',min=01,max=01, - regles=(UN_PARMI('TOUT','MODULE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - MODULE =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")), - ), - PROJET =SIMP(statut='o',typ='TXM'), - REPERTOIRE =SIMP(statut='f',typ='TXM'), - UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25), - UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26), - UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27), - UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), -) ; -#& MODIF COMMANDE DATE 04/04/2000 AUTEUR D6BHHBQ B.QUINNEZ -def macro_mode_meca_prod(self,MATR_A,MATR_B,**args ): - self.type_sdprod(MATR_A,matr_asse_depl_r) - self.type_sdprod(MATR_B,matr_asse_depl_r) - return mode_meca - -MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op= -12,sd_prod=macro_mode_meca_prod, - fr="Permet d alléger le calcul d une structure de données de type mode_meca par le découpage d un intervalle de fréquences global en sous-intervalles", - docu="U4.52.02-C",reentrant='n', - MATR_A =SIMP(statut='o',typ=(CO,matr_asse_depl_r) ), - MATR_B =SIMP(statut='o',typ=(CO,matr_asse_depl_r) ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# ce mot cle ne devrait il pas etre dans calc_freq - METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", - into=("TRI_DIAG","JACOBI","SORENSEN",) ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SANS", - into=("MODE_RIGIDE","SANS") ), - CALC_FREQ =FACT(statut='d',min=00,max=01, - regles=(UN_PARMI('FREQ','FREQ_MAX'), - PRESENT_PRESENT('FREQ_MIN','FREQ_MAX'), - PRESENT_PRESENT('FREQ_MAX','NB_BLOC_FREQ'),), - FREQ =SIMP(statut='f',typ='R',max='**' ), - FREQ_MIN =SIMP(statut='f',typ='R' ), - FREQ_MAX =SIMP(statut='f',typ='R' ), - NB_BLOC_FREQ =SIMP(statut='f',typ='I' ), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ), - DIM_SOUS_ESPACE =SIMP(statut='f',typ='I',defaut= 0 ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ), - PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-10 ), - PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12 ), - NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5 ), - NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30 ), - PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.4E-10 ), - NMAX_ITER_BATHE =SIMP(statut='f',typ='I' ,defaut= 12 ), - PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12 ), - PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E0 ), - NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20 ), - PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717 ), - SEUIL_FREQ =SIMP(statut='f',typ='R' ,defaut= 1.E-2 ), - STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ), - ), - VERI_MODE =FACT(statut='d',min=00,max=01, - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3 ), - STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - NORM_MODE =FACT(statut='o',min=01,max='**', - MASS_INER =SIMP(statut='o',typ=tabl_mass_iner ), - NORME =SIMP(statut='f',typ='TXM',defaut="TRAN_ROTA", - into=("MASS_GENE","RIGI_GENE","EUCL", - "EUCL_TRAN","TRAN","TRAN_ROTA") ), - INFO =SIMP(statut='f',typ='I',defaut= 1 ,into=(1,2) ), - ), - FILTRE_MODE =FACT(statut='f',min=01,max=01, - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", - into=("MASS_EFFE_UN","MASS_GENE") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - IMPRESSION =FACT(statut='d',min=01,max=01, - TOUT_PARA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - CUMUL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", - into=("MASS_EFFE_UN","MASS_GENE",) ), - ), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,**args ): - if MATR_ASSE_GENE != None: - for m in MATR_ASSE_GENE: - self.type_sdprod(m['MATRICE'],matr_asse_gene_r) - self.type_sdprod(m['MATR_ASSE'],matr_asse_depl_r) - if VECT_ASSE_GENE != None: - for m in VECT_ASSE_GENE: - self.type_sdprod(m['VECTEUR'],vect_asse_gene) - return None - -MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=-8,docu="U4.63.11-C", - sd_prod=macro_proj_base_prod, - fr="Projection des matrices et/ou vecteurs assemblés sur une base de vecteurs", - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene) ), - NB_VECT =SIMP(statut='f',typ='I',defaut= 9999), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - MATR_ASSE_GENE =FACT(statut='f',min=01,max='**', - MATRICE =SIMP(statut='o',typ=(CO,matr_asse)), - MATR_ASSE =SIMP(statut='f',typ=(CO,matr_asse_depl_r)), - MATR_ASSE_GENE =SIMP(statut='f',typ=matr_asse_gene_r), - PROFIL =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ), - ), - VECT_ASSE_GENE =FACT(statut='f',min=01,max='**', - VECTEUR =SIMP(statut='o',typ=(CO,vect_asse)), - TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r), - VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 08/09/97 AUTEUR VABHHTS J.PELLET -MAJ_CATA=PROC(nom="MAJ_CATA",op=20,docu="U4.15.01-D", - fr="Compilation des catalogues de commandes et d éléments", - regles=(UN_PARMI('COMMANDE','ELEMENT','VALIDATION'),), - COMMANDE =FACT(statut='f',min=01,max=01, - UNITE =SIMP(statut='o',typ='I' ), - ), - ELEMENT =FACT(statut='f',min=01,max=01,), - VALIDATION =FACT(statut='f',min=01,max=01, - UNITE =SIMP(statut='o',typ='I' ), - TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ), - ), -) ; -#& MODIF COMMANDE DATE 03/10/2000 AUTEUR VABHHTS J.PELLET -MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas, - fr="Analyse mécanique statique linéaire",docu="U4.51.01-F",reentrant='n', - regles=(EXCLUS("INST","LIST_INST"),), - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - EXCIT =FACT(statut='o',min=1,max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=fonction), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - LIST_INST =SIMP(statut='f',typ=listr8), - OPTION =SIMP(statut='f',typ='TXM',max='**', - into=("SIEF_ELGA_DEPL","SIGM_ELNO_DEPL","SIPO_ELNO_DEPL","EFGE_ELNO_DEPL", - "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPME_ELNO_DEPL","EPME_ELGA_DEPL", - "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI","EQUI_ELGA_EPSI", - "EQUI_ELNO_EPME","EQUI_ELGA_EPME","DEGE_ELNO_DEPL","EPOT_ELEM_DEPL", - "ENEL_ELGA","ENEL_ELNO_ELGA") ), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ), - ANGLE =SIMP(statut='f',typ='I',defaut=0), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ), - SENSIBILITE =FACT(statut='f',min=1,max=1, - THETA =SIMP(statut='o',typ=theta_geom), - ), - SOLVEUR =FACT(statut='d',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 09/09/98 AUTEUR SABJLMA P.LATRUBESSE -MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op= 80,sd_prod=mode_cycl, - fr="Modes propres d une structure à répétitivité cyclique à partir d une base de modes propres réels", - docu="U4.52.05-E",reentrant='n', - BASE_MODALE =SIMP(statut='o',typ=base_modale ), - NB_MODE =SIMP(statut='f',typ='I',defaut= 999 ), - NB_SECTEUR =SIMP(statut='o',typ='I' ), - LIAISON =FACT(statut='o',min=01,max=01, - DROITE =SIMP(statut='o',typ='TXM' ), - GAUCHE =SIMP(statut='o',typ='TXM' ), - AXE =SIMP(statut='f',typ='TXM' ), - ), - VERI_CYCL =FACT(statut='f',min=01,max=01, - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF",) ), - DIST_REFE =SIMP(statut='f',typ='R' ), - ), - CALCUL =FACT(statut='o',min=01,max=01, - TOUT_DIAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NB_DIAM =SIMP(statut='f',typ='I',max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE" - ,into=("PLUS_PETITE","CENTRE","BANDE") ), - b_centre =BLOC(condition = "OPTION == 'CENTRE'", - FREQ =SIMP(statut='o',typ='R',min=01,max=01), - ), - b_bande =BLOC(condition = "OPTION == 'BANDE'", - FREQ =SIMP(statut='o',typ='R',min=02,max=02), - ), -# NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 100. ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 50 ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 24/05/2000 AUTEUR D6BHHBQ B.QUINNEZ -def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ): - if TYPE_RESU == "MODE_FLAMB" : return mode_flamb - if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c - if AsType(MATR_A) == matr_asse_depl_r : return mode_meca - if AsType(MATR_A) == matr_asse_pres_r : return mode_acou - if AsType(MATR_A) == matr_asse_gene_r : return mode_gene - raise AsException("type de concept resultat non prevu") - -MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op= 44,sd_prod=mode_iter_inv_prod - ,fr="Modes propres par itérations inverses ; valeurs propres et modes réels ou complexes", - docu="U4.52.04-F",reentrant='n', - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_C =SIMP(statut='f',typ=matr_asse_depl_r ), - TYPE_RESU =SIMP(statut='f',position='global',typ='TXM',defaut="DYNAMIQUE", - into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ), - b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - CALC_FREQ =FACT(statut='o',min=01,max=01,fr="Choix des paramètres pour le calcul des valeurs propres", - - OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), - fr="Choix de l option pour estimer les valeurs propres" ), - FREQ =SIMP(statut='o',typ='R',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0 ), - NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4 ), - NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4 ), - - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - ), - ), - b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - CALC_FREQ =FACT(statut='o',min=01,max=01,fr="Choix des paramètres pour le calcul des valeurs propres", - - OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), - fr="Choix de l option pour estimer les valeurs propres" ), - CHAR_CRIT =SIMP(statut='o',typ='R',max='**' ), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0 ), - NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4 ), - NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4 ), - - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - ), - ), - CALC_MODE =FACT(statut='d',min=00,max=01,fr="Choix des paramètres pour le calcul des vecteurs propres", - OPTION =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ), - PREC =SIMP(statut='f',typ='R',defaut= 1.E-5,fr="Précision de convergence" ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 30 ), - ), - VERI_MODE =FACT(statut='d',min=00,max=01, - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-2,fr="Valeur limite admise pour l ereur a posteriori des modes" ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 24/05/2000 AUTEUR D6BHHBQ B.QUINNEZ -def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ): - if TYPE_RESU == "MODE_FLAMB" : return mode_flamb - if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c - if AsType(MATR_A) == matr_asse_depl_r : return mode_meca - if AsType(MATR_A) == matr_asse_pres_r : return mode_acou - if AsType(MATR_A) == matr_asse_gene_r : return mode_gene - raise AsException("type de concept resultat non prevu") - -MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op= 45,sd_prod=mode_iter_simult_prod, - fr="Modes propres par itérations simultanées ; valeurs propres et modes propres réels ou complexes", - docu="U4.52.03-E",reentrant='n', - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_C =SIMP(statut='f',position='global',typ=matr_asse_depl_r ), - METHODE =SIMP(statut='f',position='global',typ='TXM',defaut="SORENSEN",into=("TRI_DIAG","JACOBI","SORENSEN") ), - TYPE_RESU =SIMP(statut='f',position='global',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"), - fr="Type d analyse" ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"),fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ), - - b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - CALC_FREQ =FACT(statut='d',min=00,max=01, - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"), - fr="Choix de l option et par conséquent du shift du problème modal" ), - b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres", - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ), - ), - b_centre =BLOC(condition = "OPTION == 'CENTRE'",fr="Recherche des valeurs propres les plus proches d une valeur donnée", - CHAR_CRIT =SIMP(statut='o',typ='R',min=01,max=01,fr="Charge critique autour de laquelle on cherche les charges critiques propres"), - ), - b_bande =BLOC(condition = "(OPTION == 'BANDE')",fr="Recherche des valeurs propres dans une bande donnée", - CHAR_CRIT =SIMP(statut='o',typ='R',min=02,max=02,fr="Valeur des deux charges critiques délimitant la bande de recherche"), - ), - APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ), - DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), - b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'", - PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12 ), - NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5 ), - PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8 ), - NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30 ), - ), - b_jacobi =BLOC(condition = "METHODE == 'JACOBI'", - PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10 ), - NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40 ), - PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12 ), - ), - b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'", - PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20 ), - PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717 ), - ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - ), - ), - - b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - CALC_FREQ =FACT(statut='d',min=00,max=01, - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"), - fr="Choix de l option et par conséquent du shift du problème modal" ), - b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres", - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ), - ), - b_centre =BLOC(condition = "OPTION == 'CENTRE'",fr="Recherche des valeurs propres les plus proches d une valeur donnée", - FREQ =SIMP(statut='o',typ='R',min=01,max=01,fr="Fréquence autour de laquelle on cherche les fréquences propres"), - AMOR_REDUIT =SIMP(statut='f',typ='R',max=01), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ), - ), - b_bande =BLOC(condition = "(OPTION == 'BANDE')",fr="Recherche des valeurs propres dans une bande donnée", - FREQ =SIMP(statut='o',typ='R',min=02,max=02,fr="Valeur des deux fréquences délimitant la bande de recherche"), - ), - APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ), - DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), - b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'", - PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12 ), - NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5 ), - PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8 ), - NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30 ), - ), - b_jacobi =BLOC(condition = "METHODE == 'JACOBI'", - PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10 ), - NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40 ), - PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12 ), - ), - b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'", - PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20 ), - PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717 ), - ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - ), - ), - - VERI_MODE =FACT(statut='d',min=00,max=01, - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3 ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6,fr="Valeur limite admise pour l ereur a posteriori des modes" ), - STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat, - fr="Calcul de modes statiques", - docu="U4.52.14-E",reentrant='n', - MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ), - DDL_IMPO =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'), - UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), - AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - FORCE_NODALE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'), - UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), - AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - ACCE_UNIF =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('AXE','DIRECTION', ),), - AXE =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=03), - DIRECTION =SIMP(statut='f',typ='R',max=03), - b_dir =BLOC(condition = "DIRECTION != None", - NOM_DIR =SIMP(statut='f',typ='TXM' ), - ), - ), - ACCE_IMPO =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'), - UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), - AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), -) ; -#& MODIF COMMANDE DATE 03/05/2000 AUTEUR CIBHHAB N.RAHNI -MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca, - fr="Modélisation d une base modale pour tenir compte du couplage fluidélastique (mêmes déformées modales, modification des valeurs des fréquences et amortissements)", - docu="U4.66.21-C",reentrant='f', -# la commande modi_base _modale : reentrant = f ou o - regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),), - BASE =SIMP(statut='o',typ=mode_meca ), - BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu ), - NUME_VITE_FLUI =SIMP(statut='o',typ='I' ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - AMOR_UNIF =SIMP(statut='f',typ='R' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/05/2000 AUTEUR AUBHHMB M.BONNAMY -MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage, - fr="Modification de la connectivité de groupes de mailles 2D ou 3D affectées à la modélisation de contact", - docu="U4.23.04-C",reentrant='o', - regles=(UN_PARMI('ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE'), - EXCLUS('EQUE_PIQUA','PLAQ_TUBE'), - EXCLUS('EQUE_PIQUA','TUBE_COUDE'),), - MAILLAGE =SIMP(statut='o',typ=maillage ), - - ORIE_CONTACT =FACT(statut='f',min=01,max=01, - GROUP_MA =SIMP(statut='o',typ=grma,max='**'), - ), - - DEFORME =FACT(statut='f',min=01,max=01, - OPTION =SIMP(statut='o',typ='TXM',into=("TRAN",) ), - DEPL =SIMP(statut='o',typ=cham_no_depl_r ), - ), - - EQUE_PIQUA =FACT(statut='f',min=01,max=01, - GROUP_NO =SIMP(statut='o',typ=grno), - E_BASE =SIMP(statut='o',typ='R' ), - DEXT_BASE =SIMP(statut='o',typ='R' ), - L_BASE =SIMP(statut='o',typ='R' ), - L_CHANF =SIMP(statut='o',typ='R' ), - H_SOUD =SIMP(statut='o',typ='R' ), - ANGL_SOUD =SIMP(statut='o',typ='R' ), - JEU_SOUD =SIMP(statut='o',typ='R' ), - E_CORP =SIMP(statut='o',typ='R' ), - DEXT_CORP =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='o',typ='R' ), - RAFF_MAIL =SIMP(statut='o',typ='TXM' ), - X_MAX =SIMP(statut='o',typ='R' ), - ), - ORIE_PEAU_2D =FACT(statut='f',min=01,max='**', - GROUP_MA =SIMP(statut='o',typ=grma,max='**'), - ), - ORIE_PEAU_3D =FACT(statut='f',min=01,max='**', - GROUP_MA =SIMP(statut='o',typ=grma,max='**'), - ), - ORIE_NORM_COQUE =FACT(statut='f',min=01,max='**', - regles=(EXCLUS('NOEUD','GROUP_NO'), - PRESENT_PRESENT('NOEUD','VECT_NORM'), - PRESENT_PRESENT('GROUP_NO','VECT_NORM'),), - GROUP_MA =SIMP(statut='o',typ=grma,max='**'), - VECT_NORM =SIMP(statut='f',typ='R',max=03), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - ), - b_modele =BLOC(condition = "(ORIE_PEAU_2D != None) or (ORIE_PEAU_3D != None) or(ORIE_NORM_COQUE != None)", - MODELE =SIMP(statut='o',typ=modele ), - ), - PLAQ_TUBE =FACT(statut='f',min=01,max=01, - DEXT =SIMP(statut='o',typ='R' ), - EPAIS =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - COUTURE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - ), - TUBE_COUDE =FACT(statut='f',min=01,max=01, - ANGLE =SIMP(statut='o',typ='R' ), - R_CINTR =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - ), - MODI_MAILLE =FACT(statut='f',min=01,max=01, - regles=(AU_MOINS_UN('GROUP_MA_FOND','MAILLE_FOND','GROUP_NO_FOND','NOEUD_FOND'),), - OPTION =SIMP(statut='o',typ='TXM',into=("NOEUD_QUART",) ), - GROUP_MA_FOND =SIMP(statut='f',typ=grma,max='**'), - MAILLE_FOND =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_FOND =SIMP(statut='f',typ=grno,max='**'), - NOEUD_FOND =SIMP(statut='f',typ=no,max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 07/04/98 AUTEUR ACBHHCD G.DEVESA -MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle, - fr=" ",docu="U4.44.22-A",reentrant='f', - regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'),), - TABL_USURE =SIMP(statut='f',typ=tabl_post_usur), - INST =SIMP(statut='f',typ='R'), - OBSTACLE =SIMP(statut='f',typ=obstacle), - GUIDE =SIMP(statut='o',typ=obstacle), - CRAYON =SIMP(statut='f',typ=obstacle), - R_MOBILE =SIMP(statut='f',typ='R'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 05/09/2000 AUTEUR CIBHHLV L.VIVAN -def norm_mode_prod(MODE,**args ): - if AsType(MODE) == mode_meca : return mode_meca - if AsType(MODE) == mode_meca_c : return mode_meca_c - if AsType(MODE) == mode_flamb : return mode_flamb - raise AsException("type de concept resultat non prevu") - -NORM_MODE=OPER(nom="NORM_MODE",op= 37,sd_prod=norm_mode_prod, - fr="Normalisation de modes propres", - docu="U4.52.11-E",reentrant='f', - regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),), - MODE =SIMP(statut='o',typ=(mode_meca,mode_flamb) ), - NORME =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...", - into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ), - NOEUD =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"), - b_noeud =BLOC(condition = "NOEUD != None", - NOM_CMP =SIMP(statut='o',typ='TXM' ), - ), - AVEC_CMP =SIMP(statut='f',typ='TXM',fr="Norme plus grande composante = 1 en prenant seulement en compte les degrés de libertés suivant",max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',fr="Norme plus grande composante = 1 en ne prenant pas en compte les degrés de libertés suivant",max='**'), - MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ), - MODE_SIGNE =FACT(statut='f',min=00,max=01,fr="Imposer un signe sur une des composantes des modes", - NOEUD =SIMP(statut='o',typ=no,fr="Noeud où sera imposé le signe"), - NOM_CMP =SIMP(statut='o',typ='TXM',fr="Composante du noeud où sera imposé le signe" ), - SIGNE =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"),fr="Choix du signe" ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 19/05/2000 AUTEUR JFBHHUC C.ROSE -NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl,docu="U4.61.11-F",reentrant='n', - fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice", - MATR_RIGI =SIMP(statut='o',typ=(matr_elem_depl_r ,matr_elem_depl_c, - matr_elem_temp_r,matr_elem_pres_c),max='**' ), - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition="METHODE=='MULT_FRONT'",fr="paramètres associés à la méthode multifrontale", - RENUM =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - ), - b_gcpc =BLOC(condition="METHODE=='GCPC'",fr="paramètres associés à la méthode gradient conjugué", - RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS") ), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2)), -) ; -#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN -NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene, - fr="Etablissement de la numérotation des ddl d un modèle établi en coordonnées généralisées", - docu="U4.65.03-D",reentrant='n', - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - BASE =SIMP(statut='f',typ=(mode_meca,base_modale,mode_gene ) ), - NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ), - STOCKAGE =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("PLEIN","DIAG","LIGN_CIEL") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), -) ; -#& MODIF COMMANDE DATE 04/08/98 AUTEUR SABJLMA P.LATRUBESSE -POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=tabl_post_alea, - fr="Traitements statistiques de résultats de type interspectre et impression sur fichiers", - docu="U4.84.04-D",reentrant='n', - regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),), - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**' ), - NOEUD_I =SIMP(statut='f',typ=no,max='**'), - OPTION =SIMP(statut='f',typ='TXM',into=("DIAG",) ), - b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None", - NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**' ), - ), - b_noeud_i =BLOC(condition = "NOEUD_I != None", - NOEUD_J =SIMP(statut='o',typ=no,max='**'), - NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**' ), - NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**' ), - ), - DEPASSEMENT =FACT(statut='f',min=01,max='**', - fr="Loi de dépassement d un seuil pendant une durée donnée", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - DUREE =SIMP(statut='f',typ='R',defaut= 1. ), - ), - RAYLEIGH =FACT(statut='f',min=01,max='**', - fr="Densité de probabilité de pic positif, loi adaptée à des signaux à bande étroite", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - ), - GAUSS =FACT(statut='f',min=01,max='**', - fr="Densité de probabilité de pic positif, loi normale adaptée à des signaux large bande", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - ), - VANMARCKE =FACT(statut='f',min=01,max='**', - fr="Probabilité de non dépassement de seuil pendant une durée donnée (analyse sismique)", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - DUREE =SIMP(statut='f',typ='R',defaut= 10. ), - ), - MOMENT =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR CIBHHLV L.VIVAN -POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=tabl_post_dyna, - fr="Post-traitements en coordonnées généralisées issus de DYNA_TRAN_MODAL", - docu="U4.84.02-D",reentrant='n', - regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),), - RESU_GENE =SIMP(statut='o',typ=tran_gene ), - CHOC =FACT(statut='f',min=01,max='**', - fr="Analyse des non linéarités de choc", - INST_INIT =SIMP(statut='f',typ='R',defaut= -1. ), - INST_FIN =SIMP(statut='f',typ='R',defaut= 999. ), - NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), - SEUIL_FORCE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DUREE_REPOS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - OPTION =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ), - NB_CLASSE =SIMP(statut='f',typ='I',defaut= 10 ), - ), - RELA_EFFO_DEPL =FACT(statut='f',min=01,max=01, - fr="Analyse des relationsnon linéaires effort-déplacement", - NOEUD =SIMP(statut='o',typ=no), - NOM_CMP =SIMP(statut='o',typ='TXM' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 05/12/2000 AUTEUR G8BHHXD X.DESROCHES -def post_elem_prod( MASS_INER,ENER_POT,ENER_CIN,INDU_MUTU,WEIBULL, - CARA_GEOM,CARA_POUTRE,RICE_TRACEY,CHAR_LIMITE, - INDIC_ENER,INDIC_SEUIL,ENER_ELAS,ENER_TOTALE, - AIRE_INTERNE,**args ): - if MASS_INER != None : return tabl_mass_iner - if ENER_POT != None : return tabl_ener_pot - if ENER_CIN != None : return tabl_ener_cin - if INDU_MUTU != None : return tabl_indu_mutu - if WEIBULL != None : return tabl_weibull - if CARA_GEOM != None : return tabl_cara_geom - if CARA_POUTRE != None : return tabl_cara_geom - if RICE_TRACEY != None : return tabl_rice_tracey - if CHAR_LIMITE != None : return tabl_char_limite - if INDIC_ENER != None : return tabl_indic_ener - if INDIC_SEUIL != None : return tabl_indic_seuil - if ENER_ELAS != None : return tabl_ener_elas - if ENER_TOTALE != None : return tabl_ener_totale - if AIRE_INTERNE != None : return tabl_aire_int - raise AsException("type de concept resultat non prevu") - -POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,docu="U4.81.22-D",reentrant='f', - fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'), - EXCLUS('CHAM_GD','RESULTAT'), - UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN', 'INDU_MUTU', - 'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE', - 'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL', - 'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE'), - PRESENT_PRESENT( 'MASS_INER', 'MODELE' ), - PRESENT_PRESENT( 'CARA_GEOM', 'MODELE' ), - PRESENT_PRESENT( 'AIRE_INTERNE', 'MODELE' ), - PRESENT_PRESENT( 'CARA_POUTRE', 'MODELE' ), - PRESENT_PRESENT( 'ENER_POT', 'MODELE', 'CHAM_MATER' ), - PRESENT_PRESENT( 'ENER_CIN', 'MODELE', 'CHAM_MATER' ), - PRESENT_PRESENT( 'INDU_MUTU', 'MODELE','CHARGE' ), - PRESENT_PRESENT( 'WEIBULL', 'MODELE', 'CHAM_MATER' ), - PRESENT_PRESENT( 'RICE_TRACEY', 'MODELE', 'CHAM_MATER' ), - PRESENT_PRESENT( 'INDIC_ENER', 'MODELE', 'CHAM_MATER' ), - PRESENT_PRESENT( 'INDIC_SEUIL', 'MODELE', 'CHAM_MATER' ), - PRESENT_PRESENT( 'ENER_ELAS', 'MODELE', 'CHAM_MATER' ), - PRESENT_PRESENT( 'ENER_TOTALE', 'MODELE', 'CHAM_MATER' ), - PRESENT_PRESENT( 'CHAR_LIMITE', 'MODELE', 'CHAM_MATER' ), - ), - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut=0), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',into=("INF","SUP","MOY"),defaut="MOY"), - ANGLE =SIMP(statut='f',typ='I',defaut=0), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - GEOMETRIE =SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")), - CHAM_GD =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ), - RESULTAT =SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,mult_elas,fourier_elas) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - - MASS_INER =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ORIG_INER =SIMP(statut='f',typ='R',min=3,max=3 ), - ), - - ENER_POT =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - - ENER_CIN =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - - INDU_MUTU =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - - WEIBULL =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY")), - CORR_PLAST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - COEF_MULT =SIMP(statut='f',typ='R',defaut=1.), - ), - - RICE_TRACEY =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY")), - LOCAL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - ), - - INDIC_ENER =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - - ENER_ELAS =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - - ENER_TOTALE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - - CHAR_LIMITE =FACT(statut='f',min=00,max=01, - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - TOUT =SIMP(statut='o',typ='TXM',into=("OUI",)), - N =SIMP(statut='f',typ='R',max=1), - ), - - INDIC_SEUIL =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - - CARA_GEOM =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - SYME_X =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - SYME_Y =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ORIG_INER =SIMP(statut='f',typ='R',min=2,max=2), - ), - - CARA_POUTRE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA'), - ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - GROUP_MA_INTE =SIMP(statut='f',typ=grma,max='**'), - CARA_GEOM =SIMP(statut='f',typ=tabl_cara_geom), - LAPL_PHI =SIMP(statut='f',typ=evol_ther), - LAPL_PHI_Y =SIMP(statut='f',typ=evol_ther), - LAPL_PHI_Z =SIMP(statut='f',typ=evol_ther), - LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")), - LONGUEUR =SIMP(statut='f',typ='R'), - MATERIAU =SIMP(statut='f',typ=mater), - OPTION =SIMP(statut='f',typ='TXM',into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ), - ), - - AIRE_INTERNE =FACT(statut='f',min=1,max='**', - GROUP_MA_BORD =SIMP(statut='o',typ=grma,max='**'), - ), - ) ; -#& MODIF COMMANDE DATE 16/12/97 AUTEUR CIBHHLV L.VIVAN -POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,docu="U4.84.03-C",reentrant='n', - fr="Calcul du dommage subi par une structure soumise à unesollicitation de type aléatoire", - regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'), - PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'), - UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ), - MOMENT_SPEC_0 =SIMP(statut='f',typ='R'), - MOMENT_SPEC_2 =SIMP(statut='f',typ='R'), - MOMENT_SPEC_4 =SIMP(statut='f',typ='R'), - TABL_POST_ALEA =SIMP(statut='f',typ=tabl_post_alea), - COMPTAGE =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")), - DUREE =SIMP(statut='f',typ='R',defaut= 1.), - CORR_KE =SIMP(statut='f',typ='TXM',into=("RCCM",)), - DOMMAGE =SIMP(statut='o',typ='TXM',into=("WOHLER",)), - MATER =SIMP(statut='o',typ=mater), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 01/10/97 AUTEUR CIBHHLV L.VIVAN -POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,docu="U4.83.01-C",reentrant='n', - fr="Calcul du dommage subi par une structure soumise à une histoire de chargement", - regles=(PRESENT_PRESENT('CORR_KE','MATER'), - PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'), - PRESENT_PRESENT('CRITERE','MATER'), - PRESENT_PRESENT('DOMMAGE','MATER'),), - HISTOIRE =FACT(statut='o',min=1,max=1, - regles=(EXCLUS('SIGM','EPSI'), - EXCLUS('SIGM','SIGM_XX'), - EXCLUS('SIGM','SIGM_XZ'), - EXCLUS('SIGM','SIGM_YZ'), - EXCLUS('SIGM','EPSP'), - EXCLUS('SIGM','TEMP',), - EXCLUS('EPSI','SIGM_XX'), - EXCLUS('EPSI','SIGM_XZ'), - EXCLUS('EPSI','SIGM_YZ'), - EXCLUS('EPSI','EPSP'), - EXCLUS('EPSI','TEMP'), - ENSEMBLE('SIGM_XX','SIGM_YY','SIGM_ZZ','SIGM_XY'), - ENSEMBLE('SIGM_XZ','SIGM_YZ'), - ENSEMBLE('EPSP','TEMP'),), - SIGM =SIMP(statut='f',typ=fonction), - EPSI =SIMP(statut='f',typ=fonction), - SIGM_XX =SIMP(statut='f',typ=fonction), - SIGM_YY =SIMP(statut='f',typ=fonction), - SIGM_ZZ =SIMP(statut='f',typ=fonction), - SIGM_XY =SIMP(statut='f',typ=fonction), - SIGM_XZ =SIMP(statut='f',typ=fonction), - SIGM_YZ =SIMP(statut='f',typ=fonction), - EPSP =SIMP(statut='f',typ=fonction), - TEMP =SIMP(statut='f',typ=fonction), - ), - COMPTAGE =SIMP(statut='f',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")), - DELTA_OSCI =SIMP(statut='f',typ='R',defaut= 0.0E+0), - COEF_MULT =FACT(statut='f',min=1,max=1, - KT =SIMP(statut='f',typ='R'), - ), - CORR_KE =SIMP(statut='f',typ='TXM',into=("RCCM",)), - CORR_SIGM_MOYE =SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")), - TAHERI_NAPPE =SIMP(statut='f',typ=fonction), - TAHERI_FONC =SIMP(statut='f',typ=fonction), - CRITERE =SIMP(statut='f',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")), - COEF_CORR =SIMP(statut='f',typ='R'), - DOMMAGE =SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON", - "TAHERI_MIXTE","LEMAITRE")), - MATER =SIMP(statut='f',typ=mater), - CUMUL =SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 15/09/1999 AUTEUR F1BHHAJ J.ANGLES -POST_GOUJ2E=OPER(nom="POST_GOUJ2E",op=187,sd_prod=tabl_post_gouj2e,reentrant='n', - fr=" ",docu="U4.GJ.30-A", - TABLE =SIMP(statut='o',typ=tabl_post_rele), -) ; -#& MODIF COMMANDE DATE 31/05/2000 AUTEUR CIBHHLV L.VIVAN -POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k, - fr="Calcul des facteurs d intensité des contraintes par extrapolation du champ de déplacements sur les lèvres de la fissure", - docu="U4.82.05-A",reentrant='n', - regles=(PRESENT_PRESENT('REPERE','VECT_Y', ),), - MODELISATION =SIMP(statut='o',typ='TXM',into=("3D", - "AXIS", - "D_PLAN", - "C_PLAN" - ), - fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"), - FOND_3D =SIMP(statut='f',typ=fond_fiss,fr="Fond de fissure issu de DEFI_FOND_FISS"), - b_fond_3d =BLOC (condition="(FOND_3D != None)", - MAILLAGE = SIMP(statut='o',typ=maillage), - PRECISION = SIMP(statut='f',typ='R',defaut=0.001) - ), - MATER =SIMP(statut='o',typ=mater,fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"), - TABL_DEPL_SUP =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"), - TABL_DEPL_INF =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"), - ABSC_CURV_MAXI =SIMP(statut='f',typ='R',fr="distance maximum à partir du fond de fissure à utiliser pour le calcul"), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL",),fr="Les déplacements sont transportés dans le repère local à la fissure"), - VECT_Y =SIMP(statut='f',typ='R',max='**',fr="Vecteur dont la projection sur le plan normal au segment de calcul défini l axe Y local"), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 27/04/98 AUTEUR CIBHHLV L.VIVAN -POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm, - fr="Vérification des critères de niveau 0 et certains critères de niveau A du RCC-M-B3200 (Edition 1991)", - docu="U4.83.11-C",reentrant='n', - MATER =SIMP(statut='o',typ=mater ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","VALE_INST") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - OPTION =SIMP(statut='o',typ='TXM',max='**', - into=("PM_PB", - "SN", - "FATIGUE_SPMAX", - "FATIGUE_ZH210" - ) ), - SEGMENT =FACT(statut='o',min=01,max='**',fr="Segment sur lequel s effectue le depouillement", - INTITULE =SIMP(statut='f',typ='TXM' ), - CHEMIN =SIMP(statut='o',typ=(courbe,surface) ), - ), - TRANSITOIRE =FACT(statut='o',min=01,max='**',fr="transitoire à dépouiller", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - INTITULE =SIMP(statut='f',typ='TXM' ), - RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli) ), - RESU_SIGM_THER =SIMP(statut='f',typ=(evol_elas,evol_noli),fr="résultat sous chargement thermique seul" ), - NB_OCCUR =SIMP(statut='f',typ='I',defaut= 1,fr="nombre d occurences réelles de ce transitoire" ), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("SIEF_ELNO_ELGA","SIGM_ELNO_DEPL") ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8 ), - b_inst =BLOC(condition = "(INST != None) or (LIST_INST != None)" , - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), - ), - ), -) ; -#& MODIF COMMANDE DATE 11/10/2000 AUTEUR CIBHHLV L.VIVAN -POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,docu="U4.81.21-D",reentrant='n', - fr="Relevé de valeurs et calculs d invariants avec stockage et organisation du relevé dans un concept de type table", - ACTION =FACT(statut='o',min=01,max='**', - regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'), - EXCLUS('CHEMIN','GROUP_NO'), - EXCLUS('CHEMIN','NOEUD'), - PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'), - UN_PARMI('RESULTAT','CHAM_GD'), - UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'), - PRESENT_PRESENT('TRAC_DIR','DIRECTION'), - PRESENT_PRESENT('TRAC_DIRECTION','DIRECTION'), - ENSEMBLE('MOMENT','POINT'), - PRESENT_PRESENT('MOMENT','RESULTANTE'), - PRESENT_ABSENT('TOUT_CMP','TRAC_DIRECTION','TRAC_NORMALE'), - PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'), - PRESENT_PRESENT('ORIGINE','AXE_Z'),), - INTITULE =SIMP(statut='o',typ='TXM'), - CHEMIN =SIMP(statut='f',typ=(courbe,surface) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")), - CHAM_GD =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r,cham_no_var2_r, - cham_elem_sief_r,cham_elem_epsi_r,cham_elem_flux_r,cham_elem_crit_r, - cham_elem_ener_r,cham_elem_dbel_r,cham_elem_pres_r,cham_elem_erreur, - cham_elem_vari_r,cham_no_depl_c,cham_no_temp_c,cham_no_pres_c, - cham_elem_sief_c,cham_elem_epsi_c)), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_ther,evol_noli,dyna_trans, - mode_meca,mode_flamb,mode_acou,base_modale, - mult_elas,fourier_elas,dyna_harmo,acou_harmo)), - b_extrac =BLOC(condition = "RESULTAT != None",fr="extraction des résultats", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE', - 'INST','LIST_INST','FREQ','LIST_FREQ','NOM_CAS'), ), - NOM_CHAM =SIMP(statut='o',typ='TXM' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - LIST_MODE =SIMP(statut='f',typ=listis), - NOM_CAS =SIMP(statut='f',typ='TXM',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - ), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - INVARIANT =SIMP(statut='f',typ='TXM',into=("OUI",)), - ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ), - RESULTANTE =SIMP(statut='f',typ='TXM',max='**'), - MOMENT =SIMP(statut='f',typ='TXM',max='**'), - POINT =SIMP(statut='f',typ='R',max='**'), - - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL", - into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),), - ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), - ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), - AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), - - TRAC_NOR =SIMP(statut='f',typ='TXM',into=("OUI",)), - TRAC_DIR =SIMP(statut='f',typ='TXM',into=("OUI",)), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - TRAC_DIRECTION =SIMP(statut='f',typ='TXM',into=("OUI",)), - TRAC_NORMALE =SIMP(statut='f',typ='TXM',into=("OUI",)), - - VECT_Y =SIMP(statut='f',typ='R',max='**'), - MOYE_NOEUD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - OPERATION =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE","MOYENNE_RCCM")), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 18/01/99 AUTEUR CIBHHBC B.CIREE -POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli, - fr=" ",docu="U4.PS.10-A",reentrant='n', - MATER =SIMP(statut='o',typ=(mater) ), - DEF_EQUI =FACT(statut='f',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',max='**',defaut="UTO_2_3", - into=("UTO_2_3",) ), - EPAIS =SIMP(statut='o',typ='R'), - LONG_FISS =SIMP(statut='o',typ='R'), - LONG_LIGA_INT =SIMP(statut='o',typ='R'), - DEXT =SIMP(statut='o',typ='R'), - TEMP_ANALYSE =SIMP(statut='f',typ='R'), - ), -) ; -#& MODIF COMMANDE DATE 07/04/98 AUTEUR ACBHHCD G.DEVESA -POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,docu="U4.84.05-C",reentrant='f', - fr="Calcul des volumes d'usure et des profondeurs d'usure", - regles=(UN_PARMI('RESU_GENE','PUIS_USURE'), - PRESENT_PRESENT('RESU_GENE','NOEUD'), - UN_PARMI('INST','LIST_INST'),), - ETAT_INIT =FACT(statut='f',min=01,max=01, - TABL_USURE =SIMP(statut='f',typ=tabl_post_usur), - INST_INIT =SIMP(statut='f',typ='R'), - ), - RESU_GENE =SIMP(statut='f',typ=tran_gene), - NOEUD =SIMP(statut='f',typ=no,max=1), - INST_INIT =SIMP(statut='f',typ='R',defaut=-1.0E+0), - INST_FIN =SIMP(statut='f',typ='R'), - NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), - PUIS_USURE =SIMP(statut='f',typ='R'), - LOI_USURE =SIMP(statut='o',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")), - b_archard =BLOC(condition = "LOI_USURE == 'ARCHARD'", - regles=(EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f',min=01,max=01, - COEF_USURE =SIMP(statut='o',typ='R'), - ), - OBSTACLE =FACT(statut='f',min=01,max=01, - COEF_USURE =SIMP(statut='o',typ='R'), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - b_kwu_epri =BLOC(condition = "LOI_USURE == 'KWU_EPRI'", - regles=(UN_PARMI('MOBILE','MATER_USURE'), - EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f',min=01,max=01, - COEF_FNOR =SIMP(statut='f',typ='R'), - COEF_VTAN =SIMP(statut='f',typ='R'), - COEF_USURE =SIMP(statut='f',typ='R'), - COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), - COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), - ), - OBSTACLE =FACT(statut='f',min=01,max=01, - COEF_FNOR =SIMP(statut='f',typ='R' ), - COEF_VTAN =SIMP(statut='f',typ='R' ), - COEF_USURE =SIMP(statut='o',typ='R'), - COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), - COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - FNOR_MAXI =SIMP(statut='f',typ='R' ), - VTAN_MAXI =SIMP(statut='f',typ='R' ), - ), - b_edf_mz =BLOC(condition = "LOI_USURE == 'EDF_MZ'", - regles=(UN_PARMI('MOBILE','MATER_USURE'), - EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f',min=01,max=01, - COEF_USURE =SIMP(statut='f',typ='R',defaut=1.0E-13), - COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), - COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), - COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), - ), - OBSTACLE =FACT(statut='f',min=01,max=01, - COEF_USURE =SIMP(statut='o',typ='R',defaut=1.0E-13), - COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), - COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), - COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - SECTEUR =FACT(statut='f',min=01,max='**', - CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", - "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", - "GRAPPE_1_ENCO","GRAPPE_2_ENCO")), - COEF_USUR_MOBILE=SIMP(statut='f',typ='R'), - COEF_USUR_OBST =SIMP(statut='f',typ='R'), - ANGL_INIT =SIMP(statut='f',typ='R'), - ANGL_FIN =SIMP(statut='f',typ='R'), - ), - CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", - "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", - "GRAPPE_1_ENCO","GRAPPE_2_ENCO")), - LARGEUR_OBST =SIMP(statut='f',typ='R'), - ANGL_INCLI =SIMP(statut='f',typ='R'), - ANGL_ISTHME =SIMP(statut='f',typ='R'), - ANGL_IMPACT =SIMP(statut='f',typ='R'), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - COEF_INST =SIMP(statut='f',typ='R',defaut=1.0E+0), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 31/08/1999 AUTEUR G8BHHXD X.DESROCHES -POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,docu="U4.83.21-B",reentrant='n', - fr="Donne l'état adapté ou accommodé d'une structure sous chargement cyclique élastique affine ou non", - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - EXCIT =FACT(statut='o',min=01,max='**', - CHARGE =SIMP(statut='o',typ=char_meca), - FONC_MULT =SIMP(statut='f',typ=fonction), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",into=("FIXE_CSTE",)), - ), - EVOL_ELAS =SIMP(statut='o',typ=evol_elas), - b_evol_elas =BLOC(condition="EVOL_ELAS != None", - regles=(UN_PARMI('NUME_ORDRE','LIST_INST','INST'),), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - INST =SIMP(statut='f',typ='R',max='**'), - ), - TEMP_ZAC =SIMP(statut='f',typ='R',defaut=0.0E+0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - b_evol_noli =BLOC(condition="EVOL_NOLI != None", - INST_MAX =SIMP(statut='o',typ='R'), - ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - -) ; -#& AJOUT COMMANDE -POURSUITE=MACRO(nom="POURSUITE",op=0,repetable='n',fr="Poursuite d une étude", - docu="U4.11.03-f",sd_prod = ops.POURSUITE, - op_init = ops.POURSUITE_context,fichier_ini = 1, - PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM' ), - BASE =FACT(fr="définition des parmètres associés aux bases JEVEUX", - statut='f',min=01,max=03, - FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM'), - TITRE =SIMP(statut='f',typ='TXM'), - CAS =SIMP(statut='f',typ='TXM'), - NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'), - LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'), - LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'), - ), - IMPRESSION =FACT(statut='f',min=01,max=03, - FICHIER =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='o',typ='I'), - ), - CATALOGUE =FACT(statut='f',min=01,max=10, - FICHIER =SIMP(statut='o',typ='TXM'), - TITRE =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - ), - DEBUG =FACT(fr="option de déboggage reservée aux développeurs", - statut='f',min=01,max=01, - JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - JEVEUX =SIMP(fr="force les déchargement sur disque", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA", - statut='f',typ='TXM',into=('TES',)), - ), - MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=01,max=01, - GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'), - TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1), - TAILLE =SIMP(statut='f',typ='I'), - PARTITION =SIMP(statut='f',typ='R' ), - ), -) ; -#& MODIF COMMANDE DATE 01/04/92 AUTEUR INCONNU INCONNU -PRE_CHAR_IDEAS=PROC(nom="PRE_CHAR_IDEAS",op=100,docu="U7.01.02-E", - fr="Conversion de conditions aux limites et chargements IDEAS en commandes Aster", - UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19), - UNITE_ASTER =SIMP(statut='f',typ='I',defaut=21), - MODELE =SIMP(statut='o',typ=modele), -) ; -#& MODIF COMMANDE DATE 28/11/90 AUTEUR INCONNU INCONNU -PRE_GIBI=PROC(nom="PRE_GIBI",op=49,docu="U7.01.11-F", - fr="Conversion d un fichier de maillage GIBI", - UNITE_GIBI =SIMP(statut='f',typ='I',defaut=19), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), -) ; -#& MODIF COMMANDE DATE 23/04/92 AUTEUR INCONNU INCONNU -PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,docu="U7.01.01-F", - fr="Conversion d un fichier universel IDEAS-SUPERTAB au format Aster", - UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), -) ; -#& MODIF COMMANDE DATE 16/06/2000 AUTEUR D6BHHJP J.P.LEFEBVRE -PROCEDURE=PROC(nom="PROCEDURE",op=-3, docu="U4.13.03-E", - fr="Nommer le fichier de commandes secondaires", - NOM =SIMP(statut='f',typ='TXM',defaut=" "), -) ; -#& MODIF COMMANDE DATE 11/07/95 AUTEUR CIBHHLV L.VIVAN -def prod_matr_cham_prod(MATR_ASSE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r - if AsType(MATR_ASSE) == matr_asse_depl_c : return cham_no_depl_c - if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r - if AsType(MATR_ASSE) == matr_asse_pres_c : return cham_no_pres_c - raise AsException("type de concept resultat non prevu") - -PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=prod_matr_cham_prod, - fr="Effectuer le produit d une matrice par un vecteur", - docu="U4.72.06-B",reentrant='n', - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_pres_c ) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_temp_r,cham_no_pres_c ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 12/05/99 AUTEUR VABHHTS J.PELLET -def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ): - if AsType(RESULTAT) == evol_ther : return evol_ther - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(CHAM_NO_REFE) == cham_no_depl_r : return cham_no_depl_r - if AsType(CHAM_NO_REFE) == cham_no_depl_c : return cham_no_depl_c - if AsType(CHAM_NO_REFE) == cham_no_pres_c : return cham_no_pres_c - if AsType(CHAM_NO_REFE) == cham_no_temp_r : return cham_no_temp_r - if AsType(CHAM_NO_REFE) == cham_no_epsi_r : return cham_no_epsi_r - if AsType(CHAM_NO_REFE) == cham_no_sief_r : return cham_no_sief_r - if AsType(CHAM_NO_REFE) == cham_no_flux_r : return cham_no_flux_r - raise AsException("type de concept resultat non prevu") - -PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,docu="U4.72.05-C",reentrant='n', - fr="Projection d un champ aux noeuds sur les noeuds d un autre maillage", -# - METHODE =SIMP(statut='f',typ='TXM',defaut="NUAGE_DEG_1", - into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ), - b_nuage =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')", - fr="Lissage d un nuage de points", - CHAM_NO =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r, - cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)), - CHAM_NO_REFE =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r, - cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)), - ), - b_elem =BLOC(condition="METHODE=='ELEM'", - fr="Utilisation des fonctions de forme", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'), ), - RESULTAT =SIMP(statut='f',typ=(evol_ther,evol_elas,evol_noli) ), - MODELE_1 =SIMP(statut='f',typ=modele), - MODELE_2 =SIMP(statut='f',typ=modele), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ), - LIST_ORDRE =SIMP(statut='f',typ=listis), - INST =SIMP(statut='f',typ='R',max='**' ), - LIST_INST =SIMP(statut='f',typ=listr8), - FREQ =SIMP(statut='f',typ='R',max='**' ), - LIST_FREQ =SIMP(statut='f',typ=listr8), - ), - - VIS_A_VIS =FACT(statut='f',min=01,max='**', - regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),), - TOUT_1 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - TOUT_2 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 29/06/95 AUTEUR ACBHHJA G.JACQUART -PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_r, - fr="Projection d une matrice assemblée sur une base (modale ou de RITZ)", - docu="U4.63.12-E",reentrant='n', - regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene ) ), - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ), - MATR_ASSE =SIMP(statut='f',typ=matr_asse_depl_r ), - MATR_ASSE_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), -) ; - -#& MODIF COMMANDE DATE 27/06/2000 AUTEUR CIBHHBC B.CIREE -def proj_mesu_modal_prod(MESURE,**args): - vale=MESURE['NOM_PARA'] - if vale == 'INST' : return tran_gene - raise AsException("type de concept resultat non prevu") - -PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193, - sd_prod=proj_mesu_modal_prod, - docu="U4.73.01-A",reentrant='n', - fr="Extrapolation de resultats experimentaux sur un modele numerique en dynamique", - -# commentaire C. Durand-13/10/2000 : -#le mot cle NOM_PARA, par construction, vaut tjs INST : donc on retourne TRAN_GENE a chaque fois -#def proj_mesu_modal_prod(**args): -# vale=args['MESURE'].get_child('NOM_PARA').get_valeur() -# if vale == 'INST' : return tran_gene -# raise AsException("type de concept resultat non prevu") -#PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,sd_prod=proj_mesu_modal_prod,) - - MODELE =SIMP(statut='f',typ=(modele) ), - MASS_GENE =SIMP(statut='o',typ=(matr_asse_gene_r) ), - RIGI_GENE =SIMP(statut='o',typ=(matr_asse_gene_r) ), - MESURE =FACT(statut='o',min=01,max=01, - MAILLAGE =SIMP(statut='o',typ=(maillage) ), - CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ), - UNITE =SIMP(statut='f',typ='I',defaut= 33 ), - NOM_PARA =SIMP(statut='f',typ='TXM',defaut="INST",into=("INST",) ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","SIGM_NOEU_DEPL","EPSI_NOEU_DEPL",) ), - ), - REGULARISATION =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('COEF_PONDER','COEF_PONDER_F', ),), - METHODE =SIMP(statut='f',typ='TXM',defaut="TIKHONOV",into=("TIKHONOV",) ), - NORM_MIN =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - COEF_PONDER =SIMP(statut='f',typ='R',max='**' ), - COEF_PONDER_F =SIMP(statut='f',typ=(fonction),max='**' ), - ), - ) ; -#& MODIF COMMANDE DATE 11/02/98 AUTEUR SABJLMA P.LATRUBESSE -PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,docu="U4.63.14-C",reentrant='n', - fr="Projection d un ou plusieurs spectres de turbulence, définis par DEFI_SPEC_TURB, sur un ensemble de bases modales ", - regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'), - ENSEMBLE('FREQ_INIT','FREQ_FIN','NB_POIN'),), - SPEC_TURB =SIMP(statut='o',typ=spectre,max='**' ), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - CHAM_NO =SIMP(statut='f',typ=cham_no_depl_r ), - FREQ_INIT =SIMP(statut='f',typ='R' ), - FREQ_FIN =SIMP(statut='f',typ='R' ), - NB_POIN =SIMP(statut='f',typ='I' ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")), - GROUP_MA =SIMP(statut='f',typ=grma), -# Quel est le type attendu derriere MODELE_INTERFACE - MODELE_INTERFACE=SIMP(statut='f',typ=modele), - VECT_X =SIMP(statut='f',typ='R',min=03,max=03 ), - VECT_Y =SIMP(statut='f',typ='R',min=03,max=03 ), - ORIG_AXE =SIMP(statut='f',typ='R',min=03,max=03 ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 29/06/95 AUTEUR ACBHHJA G.JACQUART -PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op= 72,sd_prod=vect_asse_gene, - fr="Projection d un vecteur assemblé sur une base (modale ou de RITZ)", - docu="U4.63.13-E",reentrant='n', - regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene ) ), - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ), - TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), - VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene ), -) ; -#& MODIF COMMANDE DATE 25/09/2000 AUTEUR T2BAXJM R.MASSON -RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib, - fr=" ",docu="U4.82.06-A",reentrant='n', - LIST_PARA =SIMP(statut='o',typ='TXM',max='**',into=("SIGM_REFE","M",) ), - RESU =FACT(statut='o',min=01,max='**', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',), - AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),), - EVOL_NOLI =SIMP(statut='o',typ=(evol_noli) ), - MODELE =SIMP(statut='o',typ=(modele) ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - TEMPE =SIMP(statut='f',typ='R' ), - LIST_INST_RUPT =SIMP(statut='o',typ='R',max='**' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ), - INST =SIMP(statut='f',typ='R',max='**' ), - LIST_INST =SIMP(statut='f',typ=(listr8) ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400.E0 ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.E0 ), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ), - CORR_PLAST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - METHODE =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ), - INCO_GLOB_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), - ) ; -#& MODIF COMMANDE DATE 07/06/2000 AUTEUR VABHHTS J.PELLET -def recu_champ_prod(NOM_CHAM,RESULTAT,**args ): - if AsType(RESULTAT) == dyna_harmo : return cham_no_depl_c - if NOM_CHAM == "GEOMETRIE" : return cham_no_geom_r - if NOM_CHAM == "DEPL" : return cham_no_depl_r - if NOM_CHAM == "DEPL_ABSOLU" : return cham_no_depl_r - if NOM_CHAM == "VITE" : return cham_no_depl_r - if NOM_CHAM == "VITE_ABSOLU" : return cham_no_depl_r - if NOM_CHAM == "ACCE" : return cham_no_depl_r - if NOM_CHAM == "ACCE_ABSOLU" : return cham_no_depl_r - if NOM_CHAM == "TEMP" : return cham_no_temp_r - if NOM_CHAM == "FORC_NODA" : return cham_no_depl_r - if NOM_CHAM == "REAC_NODA" : return cham_no_depl_r - if NOM_CHAM == "EPSI_NOEU_DEPL" : return cham_no_sief_r - if NOM_CHAM == "SIGM_NOEU_CART" : return cham_no_sief_r - if NOM_CHAM == "SIGM_NOEU_DEPL" : return cham_no_sief_r - if NOM_CHAM == "SIGM_NOEU_VARI" : return cham_no_sief_r - if NOM_CHAM == "SIGM_NOEU_SIEF" : return cham_no_sief_r - if NOM_CHAM == "SIPO_NOEU_SIEF" : return cham_no_sief_r - if NOM_CHAM == "EFGE_NOEU_CART" : return cham_no_sief_r - if NOM_CHAM == "EFGE_NOEU_DEPL" : return cham_no_sief_r - if NOM_CHAM == "EQUI_NOEU_SIGM" : return cham_no_sief_r - if NOM_CHAM == "EQUI_NOEU_EPSI" : return cham_no_sief_r - if NOM_CHAM == "FLUX_NOEU_TEMP" : return cham_no_flux_r - if NOM_CHAM == "SIGM_NOZ1_ELGA" : return cham_no_sief_r - if NOM_CHAM == "SIGM_NOZ2_ELGA" : return cham_no_sief_r - if NOM_CHAM == "INTE_NOEU_ACTI" : return cham_no_inte_r - if NOM_CHAM == "INTE_NOEU_REAC" : return cham_no_inte_r - if NOM_CHAM == "PRES_NOEU_DBEL" : return cham_no_dbel_r - if NOM_CHAM == "PRES_NOEU_IMAG" : return cham_no_pres_r - if NOM_CHAM == "PRES_NOEU_REEL" : return cham_no_pres_r - if NOM_CHAM == "VARI_NOEU_ELGA" : return cham_no_var2_r - if NOM_CHAM == "META_NOEU_TEMP" : return cham_no_var2_r - if NOM_CHAM == "GRAD_NOEU_THETA": return cham_no_var2_r - if NOM_CHAM == "PHASMETA" : return cham_elem_meta_r - if NOM_CHAM == "DEGE_ELNO_DEPL" : return cham_elem_epsi_r - if NOM_CHAM == "ECIN_ELEM_DEPL" : return cham_elem_ener_r - if NOM_CHAM == "EFGE_ELNO_CART" : return cham_elem_sief_r - if NOM_CHAM == "EFGE_ELNO_DEPL" : return cham_elem_sief_r - if NOM_CHAM == "EPOT_ELEM_DEPL" : return cham_elem_ener_r - if NOM_CHAM == "EPSG_ELGA_DEPL" : return cham_elem_epsi_r - if NOM_CHAM == "EPSG_ELNO_DEPL" : return cham_elem_epsi_r - if NOM_CHAM == "EPSP_ELGA" : return cham_elem_epsi_r - if NOM_CHAM == "EPSP_ELNO" : return cham_elem_epsi_r - if NOM_CHAM == "EPSI_ELGA_DEPL" : return cham_elem_epsi_r - if NOM_CHAM == "EPSI_ELNO_DEPL" : return cham_elem_epsi_r - if NOM_CHAM == "EPSA_ELNO" : return cham_elem_epsi_r - if NOM_CHAM == "EQUI_ELGA_SIGM" : return cham_elem_sief_r - if NOM_CHAM == "EQUI_ELGA_EPSI" : return cham_elem_sief_r - if NOM_CHAM == "EQUI_ELNO_EPSI" : return cham_elem_sief_r - if NOM_CHAM == "EQUI_ELNO_SIGM" : return cham_elem_sief_r - if NOM_CHAM == "ERRE_ELEM_NOZ1" : return cham_elem_erreur - if NOM_CHAM == "ERRE_ELEM_NOZ2" : return cham_elem_erreur - if NOM_CHAM == "ERRE_ELGA_NORE" : return cham_elem_erreur - if NOM_CHAM == "ERRE_ELNO_ELGA" : return cham_elem_erreur - if NOM_CHAM == "FLUX_ELGA_TEMP" : return cham_elem_flux_r - if NOM_CHAM == "FLUX_ELNO_TEMP" : return cham_elem_flux_r - if NOM_CHAM == "INTE_ELNO_ACTI" : return cham_elem_inte_r - if NOM_CHAM == "INTE_ELNO_REAC" : return cham_elem_inte_r - if NOM_CHAM == "PRES_ELNO_DBEL" : return cham_elem_dbel_r - if NOM_CHAM == "PRES_ELNO_IMAG" : return cham_elem_pres_r - if NOM_CHAM == "PRES_ELNO_REEL" : return cham_elem_pres_r - if NOM_CHAM == "SIEF_ELGA" : return cham_elem_sief_r - if NOM_CHAM == "SIEF_ELNO" : return cham_elem_sief_r - if NOM_CHAM == "SIEF_ELGA_DEPL" : return cham_elem_sief_r - if NOM_CHAM == "SIGM_ELNO_CART" : return cham_elem_sief_r - if NOM_CHAM == "SIGM_ELNO_DEPL" : return cham_elem_sief_r - if NOM_CHAM == "SIGM_ELNO_VARI" : return cham_elem_sief_r - if NOM_CHAM == "SIGM_ELNO_SIEF" : return cham_elem_sief_r - if NOM_CHAM == "SIPO_ELNO_SIEF" : return cham_elem_sief_r - if NOM_CHAM == "SIEF_ELNO_ELGA" : return cham_elem_sief_r - if NOM_CHAM == "SIPO_ELNO_DEPL" : return cham_elem_sief_r - if NOM_CHAM == "SIRE_ELNO_DEPL" : return cham_elem_sief_r - if NOM_CHAM == "SOUR_ELGA_ELEC" : return cham_elem_sour_r - if NOM_CHAM == "VARI_ELGA" : return cham_elem_vari_r - if NOM_CHAM == "VARI_ELNO" : return cham_elem_vari_r - if NOM_CHAM == "VARI_ELNO_ELGA" : return cham_elem_vari_r - if NOM_CHAM == "VNOR_ELEM_DEPL" : return cham_elem_vnor_c - if NOM_CHAM == "DCHA_ELGA_SIGM" : return cham_elem_vari_r - if NOM_CHAM == "DCHA_ELNO_SIGM" : return cham_elem_vari_r - if NOM_CHAM == "RADI_ELGA_SIGM" : return cham_elem_vari_r - if NOM_CHAM == "RADI_ELNO_SIGM" : return cham_elem_vari_r - if NOM_CHAM == "ENDO_ELNO_SIGM" : return cham_elem_sief_r - if NOM_CHAM == "ENDO_ELNO_SIGA" : return cham_elem_sief_r - if NOM_CHAM == "ENDO_ELNO_SINO" : return cham_elem_sief_r - if NOM_CHAM == "EPME_ELNO_DEPL" : return cham_elem_epsi_r - if NOM_CHAM == "EPME_ELGA_DEPL" : return cham_elem_epsi_r - if NOM_CHAM == "EPME_ELNO_DPGE" : return cham_elem_epsi_r - if NOM_CHAM == "EPMG_ELNO_DEPL" : return cham_elem_epsi_r - if NOM_CHAM == "EPMG_ELGA_DEPL" : return cham_elem_epsi_r - if NOM_CHAM == "THETA" : return cham_no_depl_r - if NOM_CHAM == "GRAD_ELGA_THETA" : return cham_elem_g_depl - if NOM_CHAM == "GRAD_ELNO_ELGA" : return cham_elem_g_depl - if NOM_CHAM == "HYDR_ELGA" : return cham_elem_hydr_r - raise AsException("type de concept resultat non prevu") - -RECU_CHAMP=OPER(nom="RECU_CHAMP",op= 59,sd_prod=recu_champ_prod, - fr="Récupération dans un résultat composé d un seul champ aux noeuds ou par éléments", - docu="U4.71.01-F",reentrant='n', - regles=(UN_PARMI('TYPE_MAXI','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL', ), - UN_PARMI('RESULTAT','MAILLAGE'),), -# creer une structure de donnees RESULTAT global - RESULTAT =SIMP(statut='f',typ=resultat), - MAILLAGE =SIMP(statut='f',typ=maillage), - NOM_CHAM =SIMP(statut='o',typ='TXM', - into=( "DEPL","VITE","ACCE","DEPL_ABSOLU", - "VITE_ABSOLU","TEMP","ACCE_ABSOLU","FORC_NODA", - "REAC_NODA","EFGE_NOEU_DEPL","EFGE_NOEU_CART", - "EPSI_NOEU_DEPL","SIGM_NOEU_DEPL", - "SIGM_NOEU_CART","SIPO_NOEU_DEPL", - "EQUI_NOEU_SIGM","EQUI_NOEU_EPSI", - "FLUX_NOEU_TEMP","FLUX_ELGA_TEMP", - "FLUX_ELNO_TEMP","META_ELGA_TEMP", - "META_ELNO_TEMP","META_NOEU_TEMP", - "DURT_ELGA_META","DURT_ELNO_META", - "DURT_NOEU_META","SIEF_ELGA","SIEF_ELNO_ELGA", - "SIEF_ELGA_DEPL","VARI_ELNO_ELGA","VARI_ELGA", - "EPOT_ELEM_DEPL","ECIN_ELEM_DEPL", - "SOUR_ELGA_ELEC","PRES_ELNO_REEL", - "PRES_ELNO_IMAG","PRES_ELNO_DBEL", - "INTE_ELNO_ACTI","INTE_ELNO_REAC", - "EFGE_ELNO_DEPL","SIGM_ELNO_DEPL", - "EFGE_ELNO_CART","SIGM_ELNO_CART", - "SIPO_ELNO_DEPL","EPSI_ELNO_DEPL", - "EPSI_ELGA_DEPL","EPSG_ELNO_DEPL", - "EPSG_ELGA_DEPL","EPSP_ELNO","EPSP_ELGA", - "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI", - "ERRE_ELNO_ELGA","ERRE_ELGA_NORE", - "ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2", - "SIGM_NOZ1_ELGA","SIGM_NOZ2_ELGA", - "DEGE_ELNO_DEPL","SIRE_ELNO_DEPL", - "VNOR_ELEM_DEPL","SIEF_ELNO","VARI_ELNO", - "SIEF_NOEU_ELGA","VARI_NOEU_ELGA", - "PRES_NOEU_DBEL","PRES_NOEU_REEL", - "PRES_NOEU_IMAG","INTE_NOEU_ACTI", - "INTE_NOEU_REAC","DCHA_ELGA_SIGM", - "DCHA_ELNO_SIGM","RADI_ELGA_SIGM", - "RADI_ELNO_SIGM","ENDO_ELNO_SIGA", - "ENDO_ELNO_SINO","ENDO_ELNO_SIGM", - "SIGM_ELNO_VARI","SIGM_NOEU_VARI", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL", - "EPME_ELNO_DPGE","EPMG_ELNO_DEPL", - "EPMG_ELGA_DEPL","GRAD_ELGA_THETA", - "GTHE_ELNO_ELGA","GRAD_NOEU_THETA","HYDR_ELGA", - "THETA","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",) ), - TYPE_MAXI =SIMP(statut='f',typ='TXM', - into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN") ), - NUME_ORDRE =SIMP(statut='f',typ='I' ), - INST =SIMP(statut='f',typ='R' ), - FREQ =SIMP(statut='f',typ='R' ), - NUME_MODE =SIMP(statut='f',typ='I' ), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**' ), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - ANGL =SIMP(statut='f',typ='R' ), - b_prec_crit =BLOC(condition = "(INST != None) or (FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - ), - b_type_maxi =BLOC(condition = "TYPE_MAXI != None", - regles=(EXCLUS('TOUT_ORDRE','LIST_INST' ),), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE",into=("VALE","INST") ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - LIST_INST =SIMP(statut='f',typ=listr8 ), - b_prec_crit =BLOC(condition = "(INST != None) or (FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 28/06/2000 AUTEUR CIBHHLV L.VIVAN -def recu_fonction_prod(RESULTAT=None,OBSTACLE=None,TABLE=None,RESU_GENE=None,BASE_ELAS_FLUI=None,CHAM_GD=None,TYPE_RESU=None,**args): - if AsType(RESULTAT) == dyna_harmo : return fonction_c -# On ne sait pas interpreter les deux conditions suivantes - if TABLE != None : - if TYPE_RESU != None : - if TYPE_RESU == "FONCTION_C" : return fonction_c - if TYPE_RESU == "FONCTION" : return fonction - else: - return fonction - if RESU_GENE != None : return fonction - if BASE_ELAS_FLUI != None : return fonction - if RESULTAT != None : return fonction - if CHAM_GD != None : return fonction - if OBSTACLE != None : return fonction - raise AsException("type de concept resultat non prevu") - -RECU_FONCTION=OPER(nom="RECU_FONCTION",op= 90,sd_prod=recu_fonction_prod, - fr="Extraire sous forme d une fonction, l évolution temporelle d une composante d un champ ou d une table", - docu="U4.32.03-E",reentrant='n', - regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','OBSTACLE'),), - - CHAM_GD =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r,cham_elem_sief_r, - cham_elem_vari_r,cham_elem_epsi_r,cham_elem_flux_r, - cham_elem_pres_r,cham_elem_meta_r ) ), - RESULTAT =SIMP(statut='f',typ=(evol_elas,dyna_trans,evol_noli,evol_ther,dyna_harmo ) ), - RESU_GENE =SIMP(statut='f',typ=tran_gene), -# concept table à créer - TABLE =SIMP(statut='f',typ=table), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu), - REPERE =SIMP(statut='f',typ='TXM',into=("POLAIRE","GLOBAL") ), - OBSTACLE =SIMP(statut='f',typ=obstacle), - - b_tran_gene = BLOC ( condition = "RESU_GENE != None",fr="Récupération de la fonction concernant les chocs à partir d un concept TRAN_GENE", - regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'), - PRESENT_ABSENT('MULT_APPUI','CORR_STAT'),), - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ), - CORR_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ACCE_MONO_APPUI =SIMP(statut='f',typ=fonction), - PARA_X =SIMP(statut='f',typ='TXM' ), - PARA_Y =SIMP(statut='f',typ='TXM' ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - LIST_PARA =SIMP(statut='f',typ=listr8 ), - INTITULE =SIMP(statut='f',typ='TXM' ), - ), - b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None",fr="Récupération de la fonction à partir d un concept melasflu", - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - NUME_MODE =SIMP(statut='o',typ='I' ), - PARA_X =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ), - PARA_Y =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ), - ), - b_table = BLOC ( condition = "TABLE != None",fr="Récupération de la fonction à partir d un concept table", - regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'), - PRESENT_PRESENT('PARA_X','PARA_Y'),), - PARA_X =SIMP(statut='f',typ='TXM', - fr="1ère colonne de la table qui définit la fonction à récupérer", ), - PARA_Y =SIMP(statut='f',typ='TXM', - fr="2ème colonne de la table qui définit la fonction à récupérer", ), - NOM_PARA_TABL =SIMP(statut='f',typ='TXM',into=("FONCTION",), - fr="Nom du paramètre de la table à qui est associé la fonction" ), - b_nom_para_tabl = BLOC (condition = "NOM_PARA_TABL != None", - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="FONCTION",into=("FONCTION","FONCTION_C") ), - ), - FILTRE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('VALE','VALE_I','VALE_C','VALE_K','VALE_CO'),), - NOM_PARA =SIMP(statut='o',typ='TXM' ), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT", - "NE","LE","GE", - "VIDE","NON_VIDE",) ), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - VALE_K =SIMP(statut='f',typ='TXM' ), - VALE_CO =SIMP(statut='f',typ=geom), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), -# RESULTAT - b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT", - regles=( -# A voir par Matthieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI -# UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'), - AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'), - PRESENT_PRESENT('MAILLE','NOM_CMP'), - PRESENT_PRESENT('GROUP_MA','NOM_CMP'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - EXCLUS('POINT','NOEUD'), - EXCLUS('GROUP_MA','MAILLE'), - EXCLUS('GROUP_NO','NOEUD'), - EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),), -# A voir par Matthieu Courtois : les champs INTO de NOM_CHAM -# NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ), - NOM_CHAM =SIMP(statut='f',typ='TXM' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8 ), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - INTERP_NUME =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN") ), - ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - - MAILLE =SIMP(statut='f',typ=ma), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - POINT =SIMP(statut='f',typ='I' ), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), - ), -# RESU_GENE - b_resu_gene = BLOC ( condition = "RESU_GENE != None", fr="Opérandes en cas de RESU_GENE", -# A voir par Matthieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI -# regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'),), -# A voir par Matthieu Courtois : les champs INTO de NOM_CHAM -# A voir par Matthieu Courtois : NOM_CHAM facultatif et non obligatoire -# NOM_CHAM =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ), - NOM_CHAM =SIMP(statut='f',typ='TXM' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8 ), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - INTERP_NUME =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN") ), - ), - b_local_cham = BLOC ( condition = "NOM_CHAM!='PTEM'", fr="Opérandes de localisation du champ", - regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'), - PRESENT_PRESENT('MAILLE','NOM_CMP'), - PRESENT_PRESENT('GROUP_MA','NOM_CMP'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - EXCLUS('POINT','NOEUD'), - EXCLUS('GROUP_MA','MAILLE'), - EXCLUS('GROUP_NO','NOEUD'), - EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - - MAILLE =SIMP(statut='f',typ=ma), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - POINT =SIMP(statut='f',typ='I' ), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), - ), - ), -# CHAM_GD - b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD", -# A voir par Matthieu Courtois : les champs INTO de NOM_CHAM -# A voir par Matthieu Courtois : NOM_CHAM facultatif et non obligatoire -# NOM_CHAM =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ), - NOM_CHAM =SIMP(statut='f',typ='TXM' ), - regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'), - PRESENT_PRESENT('MAILLE','NOM_CMP'), - PRESENT_PRESENT('GROUP_MA','NOM_CMP'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - EXCLUS('POINT','NOEUD'), - EXCLUS('GROUP_MA','MAILLE'), - EXCLUS('GROUP_NO','NOEUD'), - EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - - MAILLE =SIMP(statut='f',typ=ma), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - POINT =SIMP(statut='f',typ='I' ), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), - ), -### - NOM_PARA =SIMP(statut='f',typ='TXM', - into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC") ), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ), - PROL_DROIT =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 03/03/97 AUTEUR A2BHHWS A.C.LEGER -RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene,docu="U4.71.03-E",reentrant='n', - fr="Récupération d un champ de grandeur à partir d un résultat en coordonnées généralisées", - RESU_GENE =SIMP(statut='o',typ=tran_gene ), - INST =SIMP(statut='o',typ='R' ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), -) ; -#& MODIF COMMANDE DATE 22/07/99 AUTEUR CIBHHLV L.VIVAN -RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table, - fr=" ",docu="U4.71.02-A",reentrant='n', - CO =SIMP(statut='o',typ=assd), - NOM_TABLE =SIMP(statut='o',typ='TXM' ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 03/05/2000 AUTEUR VABHHTS J.PELLET -def reso_grad_prod(MATR_ASSE,**args ): - if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r - if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r - if AsType(MATR_ASSE) == matr_asse_pres_r : return cham_no_pres_r - raise AsException("type de concept resultat non prevu") - -RESO_GRAD=OPER(nom="RESO_GRAD",op= 84,sd_prod=reso_grad_prod, - fr="Résolution par la méthode du gradient conjugué préconditionné", - docu="U4.55.04-E",reentrant='f', - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r ) ), - CHAM_CINE =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r ) ), - MATR_FACT =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - REPRISE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1E-6 ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 02/10/96 AUTEUR CIBHHLV L.VIVAN -def reso_ldlt_prod(CHAM_NO,**args ): - if AsType(CHAM_NO) == cham_no_temp_r : return cham_no_temp_r - if AsType(CHAM_NO) == cham_no_depl_r : return cham_no_depl_r - if AsType(CHAM_NO) == cham_no_pres_r : return cham_no_pres_r - if AsType(CHAM_NO) == cham_no_temp_c : return cham_no_temp_c - if AsType(CHAM_NO) == cham_no_depl_c : return cham_no_depl_c - if AsType(CHAM_NO) == cham_no_pres_c : return cham_no_pres_c - raise AsException("type de concept resultat non prevu") - -RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=reso_ldlt_prod,reentrant='f', - fr="Résolution en place ou hors place d un système factorisé",docu="U4.55.02-F", - MATR_FACT =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r, - matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r, - cham_no_temp_c,cham_no_depl_c,cham_no_pres_c) ), - CHAM_CINE =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_c) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 31/05/2000 AUTEUR CIBHHLV L.VIVAN -def rest_base_phys_prod(RESU_GENE,RESULTAT,**args ): - if AsType(RESU_GENE) == tran_gene : return dyna_trans - if AsType(RESU_GENE) == mode_gene : return mode_meca - if AsType(RESU_GENE) == mode_cycl : return mode_meca - if AsType(RESU_GENE) == harm_gene : return dyna_harmo - if AsType(RESULTAT) == mode_meca : return mode_meca - raise AsException("type de concept resultat non prevu") - -REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op= 75,sd_prod=rest_base_phys_prod, - fr="Restituer dans la base physique des résultats en coordonnées généralisées", - docu="U4.63.21-E",reentrant='n', - regles=(UN_PARMI('RESU_GENE','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'), - EXCLUS('TOUT_INST','NUME_ORDRE','INST','LIST_INST','TOUT_ORDRE'), -# Doc U à revoir - PRESENT_ABSENT('MULT_APPUI','CORR_STAT'), - EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'), - EXCLUS('CORR_STAT','NOEUD','GROUP_NO'), - EXCLUS('NOEUD','GROUP_NO'), - PRESENT_PRESENT('RESULTAT','SQUELETTE'), - PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),), - RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene ) ), - RESULTAT =SIMP(statut='f',typ=mode_meca ), - - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',max='**' ), - LIST_INST =SIMP(statut='f',typ=listr8 ), - FREQ =SIMP(statut='f',typ='R',max='**' ), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - b_prec_crit =BLOC(condition = "INST != None or LIST_INST != None or FREQ != None or LIST_FREQ != None", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CORR_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',max=8,defaut="ACCE", - into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL", - "SIGM_ELNO_DEPL","FORC_NODA",) ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - - ACCE_MONO_APPUI =SIMP(statut='f',typ=fonction), - DIRECTION =SIMP(statut='f',typ='R',max='**' ), - - SQUELETTE =SIMP(statut='f',typ=squelette ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - SECTEUR =SIMP(statut='f',typ='I',defaut= 1 ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 16/12/97 AUTEUR CIBHHLV L.VIVAN -REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp, - fr="Calcul, à partir d un interspectre de réponse modale, de la réponse d une structure dans la base physique, à certains noeuds sélectionnés du maillage", - docu="U4.63.22-C",reentrant='n', - regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - BANDE =SIMP(statut='f',typ='R',min=02,max=02 ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ), - INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ), - NOEUD =SIMP(statut='o',typ=no,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NOM_CHAM =SIMP(statut='o',typ='TXM',max=07, - into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL", - "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ), - MODE_STAT =SIMP(statut='f',typ=mode_stat ), - EXCIT =FACT(statut='f',max=01, - NOEUD =SIMP(statut='o',typ=no,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - ), - MOUVEMENT =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ), - OPTION =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG", - into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 16/06/2000 AUTEUR D6BHHJP J.P.LEFEBVRE -RETOUR=PROC(nom="RETOUR",op= -2,docu="U4.13.02-E", - fr="Retour au fichier de commandes appelant", -) ; -#& MODIF COMMANDE DATE 03/10/2000 AUTEUR VABHHTS J.PELLET -# RESPONSABLE GJBHHEL E.LORENTZ -STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, - fr="Analyse mécanique statique non linéaire", - docu="U4.51.03-E",reentrant='f', - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'), - EXCLUS('RECH_LINEAIRE','PILOTAGE'), ), - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',min=01,max='**', - CHARGE =SIMP(statut='o',typ=char_meca), - FONC_MULT =SIMP(statut='f',typ=fonction), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), - ), - COMP_INCR =FACT(statut='f',min=01,max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC", - into=( "ELAS", - "VMIS_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VMIS_ECMI_TRAC", - "VMIS_ECMI_LINE", - "ENDO_LOCAL", - "ENDO_FRAGILE", - "BETON_ENDO_LOCAL", - "RUPT_FRAG", - "PLAS_GRAD", - "DURC_GRAD", - "META_PL", - "META_PL_PT", - "META_PL_RE", - "META_PL_PT_RE", - "META_VL", - "META_VL_PT", - "META_VL_RE", - "META_VL_PT_RE", - "META_PNL", - "META_PNL_PT", - "META_PNL_RE", - "META_PNL_PT_RE", - "META_VNL", - "META_VNL_PT", - "META_VNL_RE", - "META_VNL_PT_RE", - "VMIS_CINE_LINE", - "TAHERI", - "VISC_TAHERI", - "CHABOCHE", - "VISCOCHAB", - "VMIS_CIN1_CHAB", - "VMIS_CIN2_CHAB", - "POLY_CFC", - "LMARC", - "ROUSSELIER", - "VMIS_POU_LINE", - "VMIS_POU_FLEJOU", - "COULOMB", - "ARME", - "ASSE_CORN", - "NORTON_HOFF", - "LEMAITRE", - "ZIRC_CYRA2", - "ZIRC_EPRI", - "ASSE_COMBU", - "VENDOCHAB", - "NADAI_B", - "DIS_CONTACT", - "DIS_CHOC", - "DIS_GOUJ2E_PLAS", - "DIS_GOUJ2E_ELAS", - "GRILLE_ISOT_LINE", - "GRILLE_CINE_LINE", - "GRILLE_PINTO_MEN", - "PINTO_MENEGOTTO", - "CJS", - "OHNO", - "GRANGER_FP", - "GRANGER_FP_V", - "BETON_DOUBLE_DP", - "KIT_HM", - "KIT_HHM", - "KIT_THH", - "KIT_THM", - "KIT_THHM", - "VMIS_ASYM_LINE", - "ELAS_THM", - "SURF_ETAT_NSAT", - "SURF_ETAT_SATU", - "CAM_CLAY_THM", - "KIT_DDI", - ) ), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VMIS_ISOT_LINE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VMIS_ECMI_TRAC =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - VMIS_ECMI_LINE =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - ENDO_LOCAL =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - BETON_ENDO_LOCAL=SIMP(statut='c',typ='I',defaut=2,into=(2,)), - RUPT_FRAG =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - PLAS_GRAD =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - DURC_GRAD =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - META_PL =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_PL_PT =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_PL_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_PL_PT_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_VL =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_VL_PT =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_VL_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_VL_PT_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_PNL =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_PNL_PT =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_PNL_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_PNL_PT_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_VNL =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_VNL_PT =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_VNL_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - META_VNL_PT_RE =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - CHABOCHE =SIMP(statut='c',typ='I',defaut=14,into=(14,)), - VISCOCHAB =SIMP(statut='c',typ='I',defaut=28,into=(28,)), - VMIS_CIN1_CHAB =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - VMIS_CIN2_CHAB =SIMP(statut='c',typ='I',defaut=14,into=(14,)), - POLY_CFC =SIMP(statut='c',typ='I',defaut=1688,into=(1688,)), - LMARC =SIMP(statut='c',typ='I',defaut=20,into=(20,)), - TAHERI =SIMP(statut='c',typ='I',defaut=15,into=(15,)), - VISC_TAHERI =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - ROUSSELIER =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - VMIS_POU_LINE =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9 ,into=(9,)), - COULOMB =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - ASSE_CORN =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - ARME =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - NORTON_HOFF =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - LEMAITRE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ZIRC_CYRA2 =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ZIRC_EPRI =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ASSE_COMBU =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - NADAI_B =SIMP(statut='c',typ='I',defaut=34,into=(34,)), - VENDOCHAB =SIMP(statut='c',typ='I',defaut=10,into=(10,)), - GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)), - GRILLE_CINE_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)), - GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,)), - DIS_CONTACT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - DIS_CHOC =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - DIS_GOUJ2E_PLAS =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - DIS_GOUJ2E_ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - PINTO_MENEGOTTO =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - CJS =SIMP(statut='c',typ='I',defaut=16,into=(16,)), - OHNO =SIMP(statut='c',typ='I',defaut=32,into=(32,)), - GRANGER_FP =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - GRANGER_FP_V =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - KIT_HM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_HHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THH =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - VMIS_ASYM_LINE =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - - RELATION_KIT =SIMP(statut='f',typ='TXM',max='**', - into=( -# MECA - "ELAS", - "CJS", - "ELAS_THM", - "SURF_ETAT_NSAT", - "SURF_ETAT_SATU", - "CAM_CLAY_THM", -# THMC - "GAZ", - "LIQU_SATU", - "LIQU_SATU_GAT", - "LIQU_GAZ_ATM", - "LIQU_VAPE_GAZ", - "LIQU_NSAT_GAT", - "LIQU_GAZ", -# THER - "THER_HOMO", - "THER_POLY", -# HYDR - "HYDR_UTIL", - "HYDR", -# MECA_META - "ACIER", - "ZIRC", -# MECA KIT_DDI - "VMIS_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VMIS_ISOT_CINE", - "GRANGER_FP", - "GRANGER_FP_V", - "ROUSSELIER", - "CHABOCHE", - "OHNO", - "NADAI_B", - "BETON_DOUBLE_DP", - ) ), - ELAS_THM =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - SURF_ETAT_NSAT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - SURF_ETAT_SATU =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - CAM_CLAY_THM =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - GAZ =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - LIQU_SATU =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LIQU_SATU_GAT =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LIQU_GAZ_ATM =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LIQU_VAPE_GAZ =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_NSAT_GAT =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_GAZ =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - THER_HOMO =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - THER_POLY =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - HYDR_UTIL =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - HYDR =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - ACIER =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - ZIRC =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - - COQUE_NCOU =SIMP(statut='f',typ='I'), - TUYAU_NCOU =SIMP(statut='f',typ='I' ), - TUYAU_NSEC =SIMP(statut='f',typ='I' ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC","SIMO_MIEHE")), - ALGO_C_PLAN =SIMP(statut='f',typ='TXM',into=("DEBORST",)), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - COMP_ELAS =FACT(statut='f',min=01,max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE")), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - COQUE_NCOU =SIMP(statut='f',typ='I'), - TUYAU_NCOU =SIMP(statut='f',typ='I'), - TUYAU_NSEC =SIMP(statut='f',typ='I'), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - ETAT_INIT =FACT(statut='f',min=01,max=01, - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), - VARI =SIMP(statut='f',typ=cham_elem_vari_r), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ), - INCREMENT =FACT(statut='o',min=01,max=01, - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ), - NEWTON =FACT(statut='d',min=01,max=01, - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - RECH_LINEAIRE =FACT(statut='f',min=01,max=01, - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ), - PILOTAGE =FACT(statut='f',min=01,max=01, - regles=(EXCLUS('NOEUD','GROUP_NO'),), - TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS") ), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ETA_PILO_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_MIN =SIMP(statut='f',typ='R'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), - ), - CONVERGENCE =FACT(statut='d',min=01,max=01, - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - TYPE_MATR_COMP =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT",)), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - PARM_THETA =SIMP(statut='f',typ='R' - ,defaut= 1. ), - SOLVEUR =FACT(statut='d',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - ARCHIVAGE =FACT(statut='f',min=01,max=01, - regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), - EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), - LIST_INST =SIMP(statut='f',typ=(listr8) ), - INST =SIMP(statut='f',typ='R',max='**' ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_INIT =SIMP(statut='f',typ='I'), - DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA", - "VARI_NON_LOCAL","LANL_ELGA")), - ), - MODELE_NON_LOCAL=SIMP(statut='f',typ=(modele) ), - SOLV_NON_LOCAL =FACT(statut='d',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LAGR_NON_LOCAL =FACT(statut='d',max=01, - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - ) ; -#& MODIF COMMANDE DATE 20/09/1999 AUTEUR DURAND C.DURAND -TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,fr="Extraction d une valeur numérique ou d un attribut de fonction pour la comparer à une valeur de référence", - docu="U4.92.02-E", - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - TEST_NOOK =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - VALEUR =FACT(statut='f',min=01,max='**', - fr="Tester la valeur d une fonction ou d une nappe", - regles=(UN_PARMI('VALE_REFE','VALE_REFE_C', ),), - FONCTION =SIMP(statut='o',typ=fonction ), - NOM_PARA =SIMP(statut='f',typ='TXM',max=02), - VALE_PARA =SIMP(statut='o',typ='R',max=02), - VALE_REFE =SIMP(statut='f',typ='R' ), - VALE_REFE_C =SIMP(statut='f',typ='C' ), - CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence", - defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence", - defaut= 1.E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), - ATTRIBUT =FACT(statut='f',min=01,max='**', - fr="Tester la valeur d un attribut d une fonction ou d''une nappe", - FONCTION =SIMP(statut='o',typ=fonction ), - PARA =SIMP(statut='f',typ='R' ), - CRIT_PARA =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PREC_PARA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ATTR =SIMP(statut='o',typ='TXM', - into=("NOM_PARA","NOM_RESU","PROL_DROIT","PROL_GAUCHE","INTERPOL", - "PROL_GAUCHE_FONC","PROL_DROIT_FONC","INTERPOL_FONC","NOM_PARA_FONC") ), - ATTR_REFE =SIMP(statut='o',typ='TXM' ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), - TABL_INTSP =FACT(statut='f',min=01,max='**', - fr="Tester la valeur d une fonction contenue dans une table interspectrale", - regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),), - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NOEUD_I =SIMP(statut='f',typ=no), - NUME_ORDRE_I =SIMP(statut='f',typ='I' ), - b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - ), - b_noeud_i = BLOC (condition = "NOEUD_I != None", - NOEUD_J =SIMP(statut='o',typ=no), - NOM_CMP_I =SIMP(statut='o',typ='TXM' ), - NOM_CMP_J =SIMP(statut='o',typ='TXM' ), - ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - VALE_PARA =SIMP(statut='o',typ='R' ), - VALE_REFE_C =SIMP(statut='o',typ='C' ), - CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence", - defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence", - defaut= 1.E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), -) ; -#& MODIF COMMANDE DATE 03/05/2000 AUTEUR VABHHTS J.PELLET -TEST_RESU=PROC(nom="TEST_RESU",op=23,docu="U4.92.01-F", - fr="Extraction d une valeur et comparaison à une valeur de référence", - regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','OBJET')), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - CHAM_NO =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'), - EXCLUS('NOEUD','GROUP_NO'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C'),), - CHAM_GD =SIMP(statut='o',typ=cham_no), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER")), - VERSION =SIMP(statut='f',typ='TXM'), - ), - CHAM_ELEM =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('MAILLE','TYPE_TEST',), - EXCLUS('NOEUD','GROUP_NO','POINT'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C'), ), - CHAM_GD =SIMP(statut='o',typ=cham_elem),# CO() - MAILLE =SIMP(statut='f',typ=ma),# CO() - POINT =SIMP(statut='f',typ='I' ), - NOEUD =SIMP(statut='f',typ=no),# CO() - GROUP_NO =SIMP(statut='f',typ=grno),# CO() - NOM_CMP =SIMP(statut='f',typ='TXM' ), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER") ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), - RESU =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'), - UN_PARMI('NOM_CHAM','PARA'), - PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'), - PRESENT_PRESENT('NOM_CMP','NOM_CHAM'), - EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C') ,), - RESULTAT =SIMP(statut='o',typ=resultat), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - FREQ =SIMP(statut='f',typ='R'), - NUME_MODE =SIMP(statut='f',typ='I'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**' ), - NOM_CAS =SIMP(statut='f',typ='TXM'), - ANGL =SIMP(statut='f',typ='R'), - PARA =SIMP(statut='f',typ='TXM'), - NOM_CHAM =SIMP(statut='f',typ='TXM'), - NOM_CMP =SIMP(statut='f',typ='TXM'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - POINT =SIMP(statut='f',typ='I'), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=02), - PRECISION =SIMP(statut='f',typ='R',max=02), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER",) ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), - OBJET =FACT(statut='f',max='**', - regles=(UN_PARMI('INDICE','S_I','S_R','RESUME',), - UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),), - NOM =SIMP(statut='o',typ='TXM'), - INDICE =SIMP(statut='f',typ='I'), - NUM_OBJ =SIMP(statut='f',typ='I'), - S_R =SIMP(statut='f',typ='R'), - S_I =SIMP(statut='f',typ='I'), - RESUME =SIMP(statut='f',typ='I'), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER",) ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), -) ; -#& MODIF COMMANDE DATE 20/09/1999 AUTEUR DURAND C.DURAND -TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,fr="Tester une 'cellule' d un concept de type table.Imprime dans le fichier 'RESULTAT' : OK si la valeur trouvée est identique à la valeur donnée en référence, NOOK sinon", - docu="U4.92.03-B", - regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), -# concept table à créer - TABLE =SIMP(statut='o',typ=table), - FILTRE =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('VALE','VALE_I','VALE_C','VALE_K','VALE_CO', ),), - NOM_PARA =SIMP(statut='o',typ='TXM' ), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - VALE_K =SIMP(statut='f',typ='TXM' ), - VALE_CO =SIMP(statut='f',typ=geom), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), - NOM_PARA =SIMP(statut='o',typ='TXM' ), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.2E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), -) ; -#& MODIF COMMANDE DATE 19/05/2000 AUTEUR JFBHHUC C.ROSE -THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,docu="U4.54.01-F",reentrant='f', - fr="Analyse thermique linéaire stationnaire ou transitoire", - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',min=01,max='**', - CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)), - FONC_MULT =SIMP(statut='f',typ=fonction), - ), - INCREMENT =FACT(statut='f',min=01,max=01, - LIST_INST =SIMP(statut='o',typ=listr8 ), - NUME_INIT =SIMP(statut='f',typ='I'), - NUME_FIN =SIMP(statut='f',typ='I'), - ), - TEMP_INIT =FACT(statut='f',min=01,max=01, - regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r), - VALE =SIMP(statut='f',typ='R'), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - SENSIBILITE =FACT(statut='f',min=01,max=01, - THETA =SIMP(statut='o',typ=theta_geom), - ), - DEUL_INIT =FACT(statut='f',min=01,max=01, - regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - SOLVEUR =FACT(statut='d',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57), - ARCHIVAGE =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST'),), - LIST_ARCH =SIMP(statut='f',typ=listis), - LIST_INST =SIMP(statut='f',typ=listr8), - INST =SIMP(statut='f',typ='R',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU")), - PAS_ARCH =SIMP(statut='f',typ='I'), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**',into=("VARI",)), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - OPTION =SIMP(statut='f',typ='TXM',max='**', - into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP")), - INFO =SIMP(statut='f',typ='I',into=(1,2)), -) ; -#& MODIF COMMANDE DATE 19/05/2000 AUTEUR JFBHHUC C.ROSE -THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,docu="U4.54.02-D",reentrant='f', - fr="Analyse thermique non linéaire stationnaire ou transitoire" , - MODELE =SIMP(statut='o',typ=(modele) ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - CARA_ELEM =SIMP(statut='c',typ=(cara_elem) ), - COMP_THER_NL =FACT(statut='d',min=01,max='**', - RELATION =SIMP(statut='f',typ='TXM',defaut="THER_NL", - into=("THER_NL", - "THER_HYDR", - "SECH_GRANGER", - "SECH_MENSI", - "SECH_BAZANT", - "SECH_NAPPE" - ) ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - EVOL_THER_SECH =SIMP(statut='f',typ=evol_ther), - EXCIT =FACT(statut='o',min=01,max='**', - CHARGE =SIMP(statut='o',typ=char_ther), - FONC_MULT =SIMP(statut='f',typ=fonction), - ), - INCREMENT =FACT(statut='f',min=01,max=01, - LIST_INST =SIMP(statut='o',typ=listr8), - NUME_INIT =SIMP(statut='f',typ='I'), - NUME_FIN =SIMP(statut='f',typ='I'), - ), - TEMP_INIT =FACT(statut='f',min=01,max=01, - regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",)), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r), - VALE =SIMP(statut='f',typ='R'), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - NEWTON =FACT(statut='d',min=01,max=01, - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CONVERGENCE =FACT(statut='d',min=01,max=01, - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ), - SOLVEUR =FACT(statut='d',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57 ), - ARCHIVAGE =FACT(statut='f',min=01,max=01, - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),), - LIST_ARCH =SIMP(statut='f',typ=(listis) ), - LIST_INST =SIMP(statut='f',typ=(listr8) ), - INST =SIMP(statut='f',typ='R',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - PAS_ARCH =SIMP(statut='f',typ='I'), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**',into=("VARI",)), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - OPTION =SIMP(statut='f',typ='TXM',max='**', - into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 19/05/2000 AUTEUR JFBHHUC C.ROSE -THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther, - fr="Thermique non lineaire en repere mobile", - docu="U4.54.03-B",reentrant='f', - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='c',typ=cara_elem ), - EXCIT =FACT(statut='o',min=01,max='**', - CHARGE =SIMP(statut='o',typ=char_ther ), - FONC_MULT =SIMP(statut='c',typ=fonction ), - ), - TEMP_INIT =FACT(statut='f',min=01,max=01, - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - NUME_INIT =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CONVERGENCE =FACT(statut='d',min=01,max=01, - CRIT_TEMP_RELA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRIT_ENTH_RELA =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ARRET =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - SOLVEUR =FACT(statut='d',min=01,max=01, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut= 400. ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; - - - diff --git a/Aster/Cata/cataSTA5/ops.py b/Aster/Cata/cataSTA5/ops.py deleted file mode 100644 index 66ac3a12..00000000 --- a/Aster/Cata/cataSTA5/ops.py +++ /dev/null @@ -1,246 +0,0 @@ -# -*- coding: iso-8859-1 -*- -#@ MODIF ops Cata DATE 23/10/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# Modules Python -import types -import string,linecache,os,traceback,re - -# Modules Eficas -import Accas -from Accas import ASSD - -try: - import aster - # Si le module aster est présent, on le connecte - # au JDC - import Build.B_CODE - Build.B_CODE.CODE.codex=aster -except: - pass - -def DEBUT(self,PAR_LOT,**args): - """ - Fonction sdprod de la macro DEBUT - """ - self.jdc.set_par_lot(PAR_LOT) - -def POURSUITE(self,PAR_LOT,**args): - """ - Fonction sdprod de la macro POURSUITE - """ - self.jdc.set_par_lot(PAR_LOT) - if self.codex and os.path.isfile("glob.1"): - # Le module d'execution est accessible et glob.1 est present - if hasattr(self,'fichier_init'):return - self.fichier_init='glob.1' - self.jdc.initexec() - lot,ier,lonuti,concepts=self.codex.poursu(self,1) - self.icmd=lonuti - #print "Fin de debut",ier,lot,lonuti - pos=0 - d={} - while pos+80 < len(concepts)+1: - nomres=concepts[pos:pos+8] - concep=concepts[pos+8:pos+24] - nomcmd=concepts[pos+24:pos+40] - statut=concepts[pos+40:pos+48] - if nomres[0] not in (' ','.','&') and statut != '&DETRUIT': - exec nomres+'='+string.lower(concep)+'()' in self.parent.g_context,d - pos=pos+80 - for k,v in d.items(): - self.parent.NommerSdprod(v,k) - self.g_context=d - return - else: - # Si le module d'execution n est pas accessible ou glob.1 absent on - # demande un fichier (EFICAS) - # Il faut éviter de réinterpréter le fichier à chaque appel de - # POURSUITE - if hasattr(self,'fichier_init'): - return - self.make_poursuite() - -def POURSUITE_context(self,d): - """ - Fonction op_init de la macro POURSUITE - """ - # self représente la macro POURSUITE ... - d.update(self.g_context) - # Une commande POURSUITE n'est possible qu'au niveau le plus haut - # On ajoute directement les concepts dans le contexte du jdc - # XXX est ce que les concepts ne sont pas ajoutés plusieurs fois ?? - for v in self.g_context.values(): - if isinstance(v,ASSD) : self.jdc.sds.append(v) - -def INCLUDE(self,UNITE,**args): - """ - Fonction sd_prod pour la macro INCLUDE - """ - if not UNITE : return - if hasattr(self,'unite'):return - self.unite=UNITE - - if self.jdc and self.jdc.par_lot == 'NON': - # On est en mode commande par commande - # On teste la validite de la commande avec interruption eventuelle - cr=self.report() - self.parent.cr.add(cr) - if not cr.estvide(): - raise EOFError - - self.make_include(unite=UNITE) - -def INCLUDE_context(self,d): - """ - Fonction op_init pour macro INCLUDE - """ - for k,v in self.g_context.items(): - d[k]=v - -def detruire(self,d): - """ - Cette fonction est la fonction op_init de la PROC DETRUIRE - """ - sd=[] - for mc in self["CONCEPT"]: - mcs=mc["NOM"] - if type(mcs) == types.ListType or type(mcs) == types.TupleType: - for e in mcs: - if isinstance(e,ASSD): - sd.append(e) - e=e.nom - if d.has_key(e):del d[e] - if self.jdc.sds_dict.has_key(e):del self.jdc.sds_dict[e] - else: - if isinstance(mcs,ASSD): - sd.append(mcs) - mcs=mcs.nom - if d.has_key(mcs):del d[mcs] - if self.jdc.sds_dict.has_key(mcs):del self.jdc.sds_dict[mcs] - for s in sd: - # On signale au parent que le concept s n'existe plus apres l'étape self - self.parent.delete_concept_after_etape(self,s) - -def subst_materiau(text,NOM_MATER,EXTRACTION): - """ - Cette fonction retourne un texte obtenu à partir du texte passé en argument (text) - en substituant le nom du materiau par NOM_MATER - et en réalisant les extractions spéciifées dans EXTRACTION - """ - lines=string.split(text,'\n') - if EXTRACTION: - ll=[] - regmcf=re.compile(r" *(.*) *= *_F\( *## +(.*) +(.*)") - regmcs=re.compile(r" *(.*) *= *([^ ,]*) *, *## +([^ ]*) *([^ ]*)") - regfin=re.compile(r" *\) *") - temps={};lmcf=[] - for e in EXTRACTION: - mcf=e['COMPOR'] - lmcf.append(mcf) - temps[mcf]=e['TEMP_EVAL'] - FLAG=0 - for l in lines: - m=regmcf.match(l) - if m: # On a trouve un mot cle facteur "commentarise" - if m.group(2) == "SUBST": # il est de plus substituable - if temps.has_key(m.group(3)): # Il est a substituer - ll.append(" "+m.group(3)+"=_F(") - mcf=m.group(3) - TEMP=temps[mcf] - FLAG=1 # Indique que l'on est en cours de substitution - else: # Il n est pas a substituer car il n est pas dans la liste demandee - ll.append(l) - else: # Mot cle facteur commentarise non substituable - ll.append(l) - else: # La ligne ne contient pas un mot cle facteur commentarise - if FLAG == 0: # On n est pas en cours de substitution - ll.append(l) - else: # On est en cours de substitution. On cherche les mots cles simples commentarises - m=regmcs.match(l) - if m: # On a trouve un mot cle simple commentarise - if m.group(3) == "EVAL": - ll.append(" "+m.group(1)+' = EVAL("'+m.group(4)+"("+str(TEMP)+')"),') - elif m.group(3) == "SUPPR": - pass - else: - ll.append(l) - else: # On cherche la fin du mot cle facteur en cours de substitution - m=regfin.match(l) - if m: # On l a trouve. On le supprime de la liste - FLAG=0 - del temps[mcf] - ll.append(l) - else: - ll=lines - - for l in ll: - print l - lines=ll - ll=[] - for l in lines: - l=re.sub(" *MAT *= *",NOM_MATER+" = ",l,1) - ll.append(l) - text=string.join(ll,'\n') - return text - -def INCLUDE_MATERIAU(self,NOM_AFNOR,TYPE_MODELE,VARIANTE,TYPE_VALE,NOM_MATER, - EXTRACTION,INFO,**args): - """ - Fonction sd_prod pour la macro INCLUDE_MATERIAU - """ - mat=string.join((NOM_AFNOR,'_',TYPE_MODELE,'_',VARIANTE,'.',TYPE_VALE),'') - if not hasattr(self,'mat') or self.mat != mat or self.nom_mater != NOM_MATER : - # On récupère le répertoire des matériaux dans les arguments - # supplémentaires du JDC - rep_mat=self.jdc.args.get("rep_mat","NOrep_mat") - f=os.path.join(rep_mat,mat) - self.mat=mat - self.nom_mater=NOM_MATER - if not os.path.isfile(f): - del self.mat - self.make_contexte(f,"#Texte sans effet pour reinitialiser le contexte a vide\n") - raise "Erreur sur le fichier materiau: "+f - # Les materiaux sont uniquement disponibles en syntaxe Python - # On lit le fichier et on supprime les éventuels \r - text=string.replace(open(f).read(),'\r\n','\n') - # On effectue les substitutions necessaires - self.prefix=NOM_MATER - self.text= subst_materiau(text,NOM_MATER,EXTRACTION) - if INFO == 2: - print "INCLUDE_MATERIAU: ", self.mat,' ',NOM_MATER,'\n' - print self.text - # on execute le texte fourni dans le contexte forme par - # le contexte de l etape pere (global au sens Python) - # et le contexte de l etape (local au sens Python) - # Il faut auparavant l'enregistrer aupres du module linecache (utile pour nommage.py) - linecache.cache[f]=0,0,string.split(self.text,'\n'),f - if self.jdc.par_lot == 'NON': - # On est en mode commande par commande - # On teste la validite de la commande avec interruption eventuelle - cr=self.report() - self.parent.cr.add(cr) - if not cr.estvide(): - raise EOFError - # Et en plus il faut executer la fonction ops014 avant les sous - # commandes car le prefixe PRFXCO doit etre initialise dans le Fortran - self.codex.opsexe(self,0,-1,-self.definition.op) - - self.make_contexte(f,self.text) - diff --git a/Aster/Cata/cataSTA6/Macro/__init__.py b/Aster/Cata/cataSTA6/Macro/__init__.py deleted file mode 100644 index e7d50360..00000000 --- a/Aster/Cata/cataSTA6/Macro/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: iso-8859-1 -*- -#@ MODIF __init__ Macro DATE 27/03/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== diff --git a/Aster/Cata/cataSTA6/Macro/ajout_quad_gmsh.py b/Aster/Cata/cataSTA6/Macro/ajout_quad_gmsh.py deleted file mode 100644 index 971bb253..00000000 --- a/Aster/Cata/cataSTA6/Macro/ajout_quad_gmsh.py +++ /dev/null @@ -1,250 +0,0 @@ -#@ MODIF ajout_quad_gmsh Macro DATE 11/06/2002 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 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/cataSTA6/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA6/Macro/macr_lign_coupe_ops.py deleted file mode 100644 index f7d9eba3..00000000 --- a/Aster/Cata/cataSTA6/Macro/macr_lign_coupe_ops.py +++ /dev/null @@ -1,170 +0,0 @@ -# -*- coding: iso-8859-1 -*- -#@ MODIF macr_lign_coupe_ops Macro DATE 06/07/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. -# ====================================================================== - -######################################################################## -# 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 - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') - DEFI_GROUP =self.get_cmd('DEFI_GROUP') - AFFE_MODELE =self.get_cmd('AFFE_MODELE') - PROJ_CHAMP =self.get_cmd('PROJ_CHAMP') - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T') - - # La macro compte pour 1 dans la numerotation des commandes - self.icmd=1 - - lignes=[] - for m in LIGN_COUPE : - lignes.append((m['COOR_ORIG'],m['COOR_EXTR'],m['NB_POINTS'])) - - # Création du maillage des NB_POINTS segments entre COOR_ORIG et COOR_EXTR - # par appel au script python crea_mail_lig_coup - # le maillage est ensuite recopié dans l unité logique UNITE_MAILLAGE - - resu_mail=crea_mail_lig_coup(lignes) - cur_dir=os.getcwd() - nomFichierSortie =cur_dir+'/fort.'+str(UNITE_MAILLAGE) - fproc=open(nomFichierSortie,'w') - fproc.write(resu_mail) - fproc.close() - - # Lecture du maillage de seg2 contenant toutes les lignes de coupe - - __macou=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,); - - motscles={} - iocc=1 - motscles['CREA_GROUP_NO']=[] - for m in LIGN_COUPE : - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA='LICOU'+str(iocc),) ) - iocc=iocc+1 - __macou=DEFI_GROUP( reuse =__macou , MAILLAGE=__macou , **motscles ); - - if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') : - __mocou=AFFE_MODELE(MAILLAGE=__macou, - AFFE=_F(TOUT='OUI', - PHENOMENE='MECANIQUE', - MODELISATION='BARRE',),); - elif AsType(RESULTAT).__name__ in ('evol_ther',) : - __mocou=AFFE_MODELE(MAILLAGE=__macou, - AFFE=_F(TOUT='OUI', - PHENOMENE='THERMIQUE', - MODELISATION='PLAN',),); - - __recou=PROJ_CHAMP(METHODE='ELEM', - RESULTAT=RESULTAT, - MODELE_1=MODELE, - MODELE_2=__mocou, - NOM_CHAM=NOM_CHAM,); - - # Production d'une table par ligne de coupe - # Toutes les tables sont des concepts sortant de la macro définies - # dans chaque occurence du mcfact lign_coupe - - iocc=1 - for m in LIGN_COUPE : - self.DeclareOut('tt',m['TABLE']) - tt=POST_RELEVE_T(ACTION=_F(INTITULE = 'lig.coupe'+str(iocc), - RESULTAT = __recou, - GROUP_NO = 'LICOU'+str(iocc), - NOM_CHAM = NOM_CHAM, - TOUT_CMP = 'OUI', - OPERATION = 'EXTRACTION', ),); - iocc=iocc+1 - - return ier diff --git a/Aster/Cata/cataSTA6/Macro/macr_recal_ops.py b/Aster/Cata/cataSTA6/Macro/macr_recal_ops.py deleted file mode 100644 index 74689d41..00000000 --- a/Aster/Cata/cataSTA6/Macro/macr_recal_ops.py +++ /dev/null @@ -1,138 +0,0 @@ -# -*- coding: iso-8859-1 -*- -#@ MODIF macr_recal_ops Macro DATE 21/11/2003 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, LIST_PARA, RESU_CALC, - ITER_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI, - GRAPHIQUE, **args ): - """Macro commande réalisant le recalage de modèles Aster""", - # Initialisation du compteur d'erreurs - 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.icmd=1 - self.DeclareOut('nomres',self.sd) - - #_____________________________________________ - # - # GESTION DES ERREURS DE SYNTAXE - #_____________________________________________ - texte_erreur = gestion(UNITE_ESCL,LIST_PARA,RESU_CALC,RESU_EXP,GRAPHIQUE,UNITE_RESU) - if (texte_erreur != ""): - ier=ier+1 - 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 - 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) - 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) - - #_____________________________________________ - # - # 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 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=',')) - 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/cataSTA6/Macro/reca_interp.py b/Aster/Cata/cataSTA6/Macro/reca_interp.py deleted file mode 100644 index 01f32b07..00000000 --- a/Aster/Cata/cataSTA6/Macro/reca_interp.py +++ /dev/null @@ -1,177 +0,0 @@ -# -*- coding: iso-8859-1 -*- -#@ MODIF reca_interp Macro DATE 21/11/2003 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import os -import Numeric -import Macro -from Macro.recal import calcul_F - -#=========================================================================================== -# INTERPOLATION, CALCUL DE SENSIBILITE, ETC.... - -#-------------------------------------- -class Sim_exp : - - def __init__ (self,result_exp) : - self.resu_exp = result_exp - -# Distance verticale d'un point M à une ligne brisée composée de n points - - def DistVertAdimPointLigneBrisee (self, M, points) : - # M = Point (2 colonnes, 1 ligne) - # points = Tableau de n points (2 colonnes, n lignes) - # on suppose qu'il existe au moins 2 points, - # et que les points sont classés selon les abscisses croissantes - n = len(points) - if ( M[0] < points[0][0] ) or ( M[0] > points[n-1][0] ) : - return 0. - i = 1 - while M[0] > points[i][0] : - i = i+1 - y_proj_vert = (M[0]-points[i-1][0]) * (points[i][1]-points[i-1][1]) / (points[i][0]-points[i-1][0]) + points[i-1][1] - d = (M[1] - y_proj_vert) - # Attention: la distance n'est pas normalisée - # Attention: problème si points[0][0] = points[1][0] = M[0] - # Attention: problème si M[1] = 0 - return d - - -# La Fonction Interpole ,interpole une et une seule F_calc sur F_exp et renvoie l'erreur seulement - def Interpole (self, F_calc,experience) : #ici on passe en argument "une" experience - n = 0 - resu_num = F_calc - n_exp = len(experience) # nombre de points sur la courbe expérimentale num.i - stockage = Numeric.ones(n_exp, Numeric.Float) # matrice de stockage des erreurs en chaque point - for j in xrange(n_exp) : - d = self.DistVertAdimPointLigneBrisee(experience[j], resu_num) - try: - stockage[n] = d/experience[j][1] - except ZeroDivisionError: - stockage[n] = d - n = n + 1 # on totalise le nombre de points valables - err = Numeric.ones(n, Numeric.Float) - for i in xrange(n) : - err[i] = stockage[i] - return err - - #cette fonction appelle la fonction interpole et retourne les sous fonctionnelle J et l'erreur - def multi_interpole(self,L_F, reponses): #on interpole toutes les reponses une à une en appelent la methode interpole - L_erreur=[] - for i in range(len(reponses)): - err = self.Interpole(L_F[i],self.resu_exp[i]) - L_erreur.append(err) - #on transforme L_erreur en tab num - dim=[] - J=[] - for i in range(len(L_erreur)): - dim.append(len(L_erreur[i])) - dim_totale = Numeric.sum(dim) - L_J = self.calcul_J(L_erreur) - a=0 - erreur = Numeric.zeros((dim_totale),Numeric.Float) - for n in range(len(L_erreur)): - for i in range(dim[n]): - erreur[i+a] = L_erreur[n][i] - a = dim[n] - del(L_erreur) #on vide la liste puisqu'on n'en a plus besoin - return L_J,erreur - - #cette fonction retourne seulement l'erreur ,je l'appelle dans la methode sensibilité - #on interpole toutes les reponses une à une en appelent la methode interpole - def multi_interpole_sensib(self,L_F,reponses): - L_erreur=[] - for i in range(len(reponses)): - err = self.Interpole(L_F[i],self.resu_exp[i]) - L_erreur.append(err) - #on transforme L_erreur en tab num - return L_erreur - - def calcul_J(self,L_erreur): - L_J = [] - for i in range(len(L_erreur)): - total = 0 - for j in range(len(L_erreur[i])): - total = total + L_erreur[i][j]**2 - L_J.append(total) - return L_J - - def norme_J(self,L_J_init,L_J,unite_resu): - #cette fonction calcul une valeur normée de J - for i in range(len(L_J)): - try: - L_J[i] = L_J[i]/L_J_init[i] - except ZeroDivisionError: - fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') - fic.write('\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/cataSTA6/Macro/reca_message.py b/Aster/Cata/cataSTA6/Macro/reca_message.py deleted file mode 100644 index 747573b5..00000000 --- a/Aster/Cata/cataSTA6/Macro/reca_message.py +++ /dev/null @@ -1,113 +0,0 @@ -# -*- coding: iso-8859-1 -*- -#@ MODIF reca_message Macro DATE 31/01/2003 AUTEUR PABHHHH N.TARDIEU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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/cataSTA6/Macro/recal.py b/Aster/Cata/cataSTA6/Macro/recal.py deleted file mode 100644 index 740f1a19..00000000 --- a/Aster/Cata/cataSTA6/Macro/recal.py +++ /dev/null @@ -1,403 +0,0 @@ -# -*- coding: iso-8859-1 -*- -#@ MODIF recal Macro DATE 21/11/2003 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -import string -import copy -import Numeric -import types -import Gnuplot -import Cata -from Cata.cata import INCLUDE,DETRUIRE -from Accas import _F - -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.__class__.__name__ == 'MACRO_ETAPE': - list_concepts=list(mes_concepts(list_concepts=list_concepts,base=e)) - elif e.sd != None: - nom_concept=e.sd.get_name() - if not(nom_concept in list_concepts): - list_concepts.append( nom_concept ) - return tuple(list_concepts) - - -def detr_concepts(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)) - 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 : - #on va dans l'except si on a modifié le fichier au moins une fois - index_retour = string.index(fichier,'RETOUR') - fichier=fichier[:index_retour] - #-------------------------------------------------------------------------------- - #on cherche à délimiter le bloc des parametres dans le fichier - #Tout d'abord on cherche les indices d'apparition des paras dans le fichier - #en effet l'utilisateur n'est pas obligé de rentrer les paras dans optimise - #avec le meme ordre de son fichier de commande - index_para = Numeric.zeros(len(para)) - for i in range(len(para)): - index_para[i] = string.index(fichier,para[i]) - #On range les indices par ordre croissant afin de déterminer - #les indice_max et indice_min - index_para = Numeric.sort(index_para) - index_first_para = index_para[0] - index_last_para = index_para[len(index_para)-1] - - - #on va délimiter les blocs intermédiaires entre chaque para "utiles" à l'optimsation - bloc_inter ='\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) - #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') - #on ajoute à RETOUR - Fichier_Resu.append('RETOUR();\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'] - -#---------------------------------------------------------- - - -def EXTRACT(Table,Para,Champ): -# Definition des variables - #Table = reponse[0] - #Para = reponse[1] - #Champ = reponse[2] - Result = [[None]*2] - nb_temp = 0 -# Boucle de lecture sur les temps - while 1: -# Si on n'a pas lu tous les temps - try: -# alors on lit les 2 champs abscisse et ordonnee - Result[nb_temp][0] = Table[Para,nb_temp+1] - Result[nb_temp][1] = Table[Champ,nb_temp+1] - nb_temp = nb_temp + 1 -# on ajoute une dimension temporelle supplementaire au resultat - Result.append([None]*2) -# Si on a lu tous les temps alors on sort de la boucle - except KeyError: - break -# on renvoie le resultat en fin - Rep = Result[0:nb_temp] - F=Numeric.zeros((len(Rep),2),Numeric.Float) #on transforme Rep en array Numeric - for i in range(len(Rep)): - for j in range(2) : - F[i][j] = Rep[i][j] - del(Rep) - del(Result) - return F - - -#_____________________________________________ -# -# 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 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,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 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/cataSTA6/__init__.py b/Aster/Cata/cataSTA6/__init__.py deleted file mode 100644 index f9b042ca..00000000 --- a/Aster/Cata/cataSTA6/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -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 -INCLUDE.itemeditor=pre74.compomacro.INCLUDETreeItem -POURSUITE.itemeditor=pre74.compomacro.POURSUITETreeItem - -import os,sys -import prefs -import sys -rep_macro = os.path.join(prefs.repIni,'Cata/cataSTA6') diff --git a/Aster/Cata/cataSTA6/cata.py b/Aster/Cata/cataSTA6/cata.py deleted file mode 100755 index 2ae0d1c4..00000000 --- a/Aster/Cata/cataSTA6/cata.py +++ /dev/null @@ -1,17411 +0,0 @@ -# -*- coding: iso-8859-1 -*- -#& MODIF COMMANDE DATE 03/02/2003 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. -# ====================================================================== -import Accas -from Accas import * -from Accas import _F - -import ops - -try: - import aster -except: - pass - -# -__version__="$Name: V6_main $" -__Id__="$Id: cata.py,v 1.6 2007-06-15 15:52:00 cchris Exp $" -# -JdC = JDC_CATA(code='ASTER', - execmodul=None, - regles = (AU_MOINS_UN('DEBUT','POURSUITE'), - AU_MOINS_UN('FIN'), - A_CLASSER(('DEBUT','POURSUITE'),'FIN'))) - -#compatibilite avec V9 -import Noyau -class ASSD(ASSD,Noyau.AsBase):pass -class GEOM(GEOM,Noyau.AsBase):pass -#fin compatibilite - -# Type le plus general -class entier (ASSD):pass -class reel (ASSD):pass -class complexe(ASSD):pass -class chaine (ASSD):pass - - -# Type geometriques -class no (GEOM):pass -class grno(GEOM):pass -class ma (GEOM):pass -class grma(GEOM):pass - - - -# Autres - -class cabl_precont (ASSD):pass -class cara_elem (ASSD):pass -class cara_pout (ASSD):pass -class cham_mater (ASSD):pass -class char_acou (ASSD):pass -class char_cine_acou (ASSD):pass -class char_cine_meca (ASSD):pass -class char_cine_ther (ASSD):pass -class char_meca (ASSD):pass -class char_ther (ASSD):pass -class courbe (ASSD):pass -class fond_fiss (ASSD):pass -class interf_dyna_clas(ASSD):pass -class interspfact (ASSD):pass -class listis (ASSD):pass -class liste (ASSD):pass -class macr_elem_dyna (ASSD):pass -class macr_elem_stat (ASSD):pass -class mater (ASSD):pass -class melasflu (ASSD):pass -class modele (ASSD):pass -class modele_gene (ASSD):pass -class nume_ddl (ASSD):pass -class nume_ddl_gene (ASSD):pass -class obstacle (ASSD):pass -class spectre (ASSD):pass -class surface (ASSD):pass -class tran_gene (ASSD):pass -class type_flui_stru (ASSD):pass -class valeur (ASSD):pass - - -# liste : -#-------------------------------- -class listr8 (ASSD): - - def LIST_VALEURS(self) : - - """ - retourne la liste des valeurs - [ val1, ...] - """ - - return aster.GetLival(self.get_name(), "VALEURS") - - - -# maillage : -#-------------------------------- -class maillage(ASSD): - - def LIST_GROUP_NO(self) : - - """ - retourne la liste des groupes de noeuds sous la forme : - [ (gno1, nb noeuds gno1), ...] - """ - - return aster.GetMaillage(self.get_name(), "GROUP_NO") - - - def LIST_GROUP_MA(self) : - - """ - retourne la liste des groupes de mailles sous la forme : - [ (gma1, nb mailles gma1, dime max des mailles gma1), ...] - """ - - return aster.GetMaillage(self.get_name(), "GROUP_MA") - - -class squelette (maillage):pass - - -# cham_gd (carte,cham_no,cham_elem) -#-------------------------------- - -class cham_gd(ASSD):pass - -# cham_gd/carte : -#-------------------------------- -class carte(cham_gd):pass -class carte_dbel_r (carte):pass -class carte_depl_c (carte):pass -class carte_depl_f (carte):pass -class carte_depl_r (carte):pass -class carte_durt_r (carte):pass -class carte_ener_r (carte):pass -class carte_epsi_r (carte):pass -class carte_erreur (carte):pass -class carte_flux_r (carte):pass -class carte_g_depl_r (carte):pass -class carte_geom_r (carte):pass -class carte_hydr_r (carte):pass -class carte_inst_r (carte):pass -class carte_inte_r (carte):pass -class carte_irra_r (carte):pass -class carte_meta_r (carte):pass -class carte_neut_f (carte):pass -class carte_neut_r (carte):pass -class carte_pres_r (carte):pass -class carte_sief_r (carte):pass -class carte_sour_r (carte):pass -class carte_temp_f (carte):pass -class carte_temp_r (carte):pass -class carte_var2_r (carte):pass -class carte_vnor_c (carte):pass - - -# cham_gd/cham_elem : -#-------------------------------- -class cham_elem(cham_gd):pass -class cham_elem_crit_r(cham_elem):pass -class cham_elem_dbel_r(cham_elem):pass -class cham_elem_depl_c(cham_elem):pass -class cham_elem_depl_f(cham_elem):pass -class cham_elem_depl_r(cham_elem):pass -class cham_elem_dommag(cham_elem):pass -class cham_elem_durt_r(cham_elem):pass -class cham_elem_ener_r(cham_elem):pass -class cham_elem_epsi_c(cham_elem):pass -class cham_elem_epsi_r(cham_elem):pass -class cham_elem_erreur(cham_elem):pass -class cham_elem_facy_r(cham_elem):pass -class cham_elem_flux_r(cham_elem):pass -class cham_elem_g_depl(cham_elem):pass -class cham_elem_geom_r(cham_elem):pass -class cham_elem_hydr_r(cham_elem):pass -class cham_elem_inst_r(cham_elem):pass -class cham_elem_inte_r(cham_elem):pass -class cham_elem_irra_r(cham_elem):pass -class cham_elem_meta_r(cham_elem):pass -class cham_elem_neut_f(cham_elem):pass -class cham_elem_neut_r(cham_elem):pass -class cham_elem_pres_r(cham_elem):pass -class cham_elem_sief_c(cham_elem):pass -class cham_elem_sief_r(cham_elem):pass -class cham_elem_sour_r(cham_elem):pass -class cham_elem_temp_f(cham_elem):pass -class cham_elem_temp_r(cham_elem):pass -class cham_elem_vari_r(cham_elem):pass -class cham_elem_vnor_c(cham_elem):pass - - -# cham_gd/cham_no : -#-------------------------------- -class cham_no(cham_gd):pass -class cham_no_dbel_r (cham_no):pass -class cham_no_depl_c (cham_no):pass -class cham_no_depl_f (cham_no):pass -class cham_no_depl_r (cham_no):pass -class cham_no_durt_r (cham_no):pass -class cham_no_ener_r (cham_no):pass -class cham_no_epsi_r (cham_no):pass -class cham_no_erreur (cham_no):pass -class cham_no_flux_r (cham_no):pass -class cham_no_g_depl_r (cham_no):pass -class cham_no_geom_r (cham_no):pass -class cham_no_hydr_r (cham_no):pass -class cham_no_inst_r (cham_no):pass -class cham_no_inte_r (cham_no):pass -class cham_no_irra_r (cham_no):pass -class cham_no_meta_r (cham_no):pass -class cham_no_neut_f (cham_no):pass -class cham_no_neut_r (cham_no):pass -class cham_no_pres_c (cham_no):pass -class cham_no_pres_r (cham_no):pass -class cham_no_sief_r (cham_no):pass -class cham_no_sour_r (cham_no):pass -class cham_no_temp_c (cham_no):pass -class cham_no_temp_f (cham_no):pass -class cham_no_temp_r (cham_no):pass -class cham_no_vanl_r (cham_no):pass -class cham_no_var2_r (cham_no):pass -class cham_no_vnor_c (cham_no):pass - - -# resultat : (evol,mode_stat,mode_meca) -#-------------------------------- - -class resultat(ASSD): - def __getitem__(self,key): - return aster.getpara(self.get_name(),"RESULTAT",key[0],key[1]) - - 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") - - -class acou_harmo (resultat):pass -class base_modale (resultat):pass -class comb_fourier (resultat):pass -class dyna_harmo (resultat):pass -class dyna_trans (resultat):pass -class fourier_elas (resultat):pass -class harm_gene (resultat):pass -class mode_acou (resultat):pass -class mode_cycl (resultat):pass -class mode_flamb (resultat):pass -class mode_gene (resultat):pass -class mult_elas (resultat):pass -class theta_geom (resultat):pass - -# resultat/evol : -#-------------------------------- -class evol(resultat):pass -class evol_char(evol):pass -class evol_elas(evol):pass -class evol_noli(evol):pass -class evol_ther(evol):pass -class evol_varc(evol):pass - -# resultat/mode_stat : -#-------------------------------- -class mode_stat(resultat):pass -class mode_stat_depl(mode_stat):pass -class mode_stat_acce(mode_stat):pass -class mode_stat_forc(mode_stat):pass - - -# resultat/mode_meca : -#-------------------------------- -class mode_meca(resultat):pass -class mode_meca_c(mode_meca):pass - - -# fonction : -#-------------------------------- -class para_sensi(fonction):pass -class fonction_c(fonction):pass - - -# matr_asse : -#-------------------------------- -class matr_asse(ASSD):pass -class matr_asse_depl_c(matr_asse):pass -class matr_asse_depl_r(matr_asse):pass -class matr_asse_gene_r(matr_asse):pass -class matr_asse_gene_c(matr_asse):pass -class matr_asse_pres_c(matr_asse):pass -class matr_asse_pres_r(matr_asse):pass -class matr_asse_temp_c(matr_asse):pass -class matr_asse_temp_r(matr_asse):pass - -# matr_elem : -#-------------------------------- -class matr_elem(ASSD):pass -class matr_elem_depl_c(matr_elem):pass -class matr_elem_depl_r(matr_elem):pass -class matr_elem_pres_c(matr_elem):pass -class matr_elem_temp_r(matr_elem):pass - - - - -# table : (tabl_fonc) -#-------------------------------- - -class table(ASSD): - def __getitem__(self,key): - return aster.getpara(self.get_name(),"TABLE",key[0],key[1]) - -class tabl_aire_int (table):pass -class tabl_calc_g_loca(table):pass -class tabl_calc_g_th (table):pass -class tabl_cara_geom (table):pass -class tabl_char_limite(table):pass -class tabl_ener_elas (table):pass -class tabl_ener_pot (table):pass -class tabl_ener_cin (table):pass -class tabl_trav_ext (table):pass -class tabl_ener_totale(table):pass -class tabl_indic_ener (table):pass -class tabl_indic_seuil(table):pass -class tabl_intsp (table):pass -class tabl_mass_iner (table):pass -class tabl_post_alea (table):pass -class tabl_post_beta (table):pass -class tabl_post_dyna (table):pass -class tabl_post_f_alea(table):pass -class tabl_post_fatig (table):pass -class tabl_post_gouj2e(table):pass -class tabl_post_k (table):pass -class tabl_post_rccm (table):pass -class tabl_post_rele (table):pass -class tabl_post_simpli(table):pass -class tabl_post_usur (table):pass -class tabl_reca_weib (table):pass -class tabl_rice_tracey(table):pass -class tabl_texture (table):pass -class tabl_trc (table):pass -class tabl_weibull (table):pass - -# table/tabl_fonc -#-------------------------------- -class tabl_fonc (table):pass -class tabl_fonc_max (tabl_fonc):pass -class tabl_fonc_noci (tabl_fonc):pass -class tabl_fonc_rms (tabl_fonc):pass - - -# vect_asse : -#-------------------------------- -class vect_asse(ASSD):pass -class vect_asse_gene(vect_asse):pass - - -# vect_elem : -#-------------------------------- -class vect_elem(ASSD):pass -class vect_elem_depl_r(vect_elem):pass -class vect_elem_pres_c(vect_elem):pass -class vect_elem_pres_r(vect_elem):pass -class vect_elem_temp_r(vect_elem):pass - -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, - fr="Affectation de caractéristiques à des éléments de structure", - docu="U4.42.01-g",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','MASSIF', - 'ASSE_GRIL','GRILLE','AFFE_SECT','AFFE_FIBRE'),), - MODELE =SIMP(statut='o',typ=modele ), - INFO =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ), - VERIF =SIMP(statut='f',typ='TXM',max='**',into=("MAILLE","NOEUD") ), - - POUTRE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - SECTION =SIMP(statut='o',typ='TXM' ,into=("GENERALE","RECTANGLE","CERCLE") ), - CARA_SECT =SIMP(statut='f',typ=(cara_pout) ), - TUYAU_NCOU =SIMP(statut='f',typ='I',min=1,max=10,defaut=3), - TUYAU_NSEC =SIMP(statut='f',typ='I',min=1,max=32,defaut=16), - b_generale =BLOC( condition = "SECTION=='GENERALE'", - CARA =SIMP(statut='o',typ='TXM',max='**', - into=("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT", - "AI","JG","IYR2","IZR2","A1", - "IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1", - "RZ1","RT1","AI1","JG1","IYR21","IZR21","A2", - "IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2", - "RZ2","RT2","AI2","JG2","IYR22","IZR22","H", - "HZ","HY","EP","EPY","EPZ","H1","HZ1","HY1", - "EP1","EPY1","EPZ1","H2","HZ2","HY2","EP2", - "EPY2","EPZ2","R","R1","R2") ), - VALE =SIMP(statut='o',typ='R',max='**'), - VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ), - ), - b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'", - CARA =SIMP(statut='o',typ='TXM',max='**', - into=("H","EP","HY","HZ","EPY","EPZ", - "H1","HZ1","HY1","EP1","EPY1","EPZ1", - "H2","HZ2","HY2","EP2","EPY2","EPZ2") ), - VALE =SIMP(statut='o',typ='R',max='**'), - VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE","AFFINE"),defaut="HOMOTHETIQUE"), - ), - b_cercle =BLOC( condition = "SECTION=='CERCLE'", - CARA =SIMP(statut='o',typ='TXM',max='**', - into=("R","EP","R1","R2","EP1","EP2") ), - VALE =SIMP(statut='o',typ='R',max='**'), - VARI_SECT =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ), - MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - FCX =SIMP(statut='f',typ=(fonction) ), - ), - - BARRE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - SECTION =SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ), - b_generale =BLOC( condition = "SECTION=='GENERALE'", - CARA =SIMP(statut='o',typ='TXM',into=("A",) ), - VALE =SIMP(statut='o',typ='R' ), - ), - b_rectangle =BLOC( condition = "SECTION=='RECTANGLE'", - CARA =SIMP(statut='o',typ='TXM',into=("H","HZ","HY","EPY","EPZ","EP"),max=6 ), - VALE =SIMP(statut='o',typ='R',max=6 ), - ), - b_cercle =BLOC( condition = "SECTION=='CERCLE'", - CARA =SIMP(statut='o',typ='TXM',max=2,into=("R","EP") ), - VALE =SIMP(statut='o',typ='R',max=2 ), - ), - FCX =SIMP(statut='f',typ=(fonction) ), - ), - - COQUE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA' ), - PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - EPAIS =SIMP(statut='o',typ='R' ), - ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2), - A_CIS =SIMP(statut='c',typ='R',defaut= 0.8333333E0), - COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-5 ), - COQUE_NCOU =SIMP(statut='f',typ='I',defaut= 1 ), - EXCENTREMENT =SIMP(statut='f',typ='R' ), - INER_ROTA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - CABLE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('A','SECTION') ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - N_INIT =SIMP(statut='f',typ='R',defaut= 5000. ), - A =SIMP(statut='f',typ='R' ), - SECTION =SIMP(statut='f',typ='R' ), - FCX =SIMP(statut='f',typ=(fonction) ), - ), - - DISCRET =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - AMOR_HYST =SIMP(statut='f',typ='R' ), - CARA =SIMP(statut='o',typ='TXM',max='**', - into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L", - "K_T_N", "K_T_L", "K_TR_N", "K_TR_L", - "M_T_D_N","M_TR_D_N","M_T_N", - "M_T_L", "M_TR_N", "M_TR_L", - "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L", - "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ), - VALE =SIMP(statut='o',typ='R',max='**'), - ), - - ORIENTATION =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - CARA =SIMP(statut='o',typ='TXM', - into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ), - VALE =SIMP(statut='o',typ='R',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-4 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - - DEFI_ARC =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE', - 'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'), - PRESENT_PRESENT('ORIE_ARC','RAYON'), - EXCLUS('COEF_FLEX','COEF_FLEX_XY'), - EXCLUS('COEF_FLEX','COEF_FLEX_XZ'), - EXCLUS('INDI_SIGM','INDI_SIGM_XY'), - EXCLUS('INDI_SIGM','INDI_SIGM_XZ'), - PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'), - PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ORIE_ARC =SIMP(statut='f',typ='R'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - NOEUD_CENTRE =SIMP(statut='f',typ=no,max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,max=1), - POIN_TANG =SIMP(statut='f',typ='R',max='**'), - NOEUD_POIN_TANG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_POIN_TG=SIMP(statut='f',typ=grno,max=1), - RAYON =SIMP(statut='f',typ='R'), - COEF_FLEX =SIMP(statut='f',typ='R'), - INDI_SIGM =SIMP(statut='f',typ='R'), - COEF_FLEX_XY =SIMP(statut='f',typ='R'), - INDI_SIGM_XY =SIMP(statut='f',typ='R'), - COEF_FLEX_XZ =SIMP(statut='f',typ='R'), - INDI_SIGM_XZ =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - - MASSIF =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('ANGL_REP','ANGL_AXE'), - EXCLUS('ANGL_REP','ANGL_AXE'), - EXCLUS('ANGL_REP','ORIG_AXE'), - PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ANGL_REP =SIMP(statut='f',typ='R',max=3), - ANGL_AXE =SIMP(statut='f',typ='R',max=2), - ORIG_AXE =SIMP(statut='f',typ='R',max=3), - ), - - POUTRE_FLUI =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - B_T =SIMP(statut='o',typ='R'), - B_N =SIMP(statut='o',typ='R'), - B_TN =SIMP(statut='o',typ='R',defaut= 0.E+0 ), - A_FLUI =SIMP(statut='o',typ='R'), - A_CELL =SIMP(statut='o',typ='R'), - COEF_ECHELLE =SIMP(statut='o',typ='R'), - ), - - GRILLE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - EXCLUS('ANGL_REP','ORIG_AXE'), - ENSEMBLE('ORIG_AXE','AXE')), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - SECTION_L =SIMP(statut='o',typ='R'), - ANGL_REP =SIMP(statut='f',typ='R',max=2), - ANGL_L =SIMP(statut='f',typ='R'), - POUR_CENT_L =SIMP(statut='f',typ='R'), - POUR_CENT_T =SIMP(statut='f',typ='R'), - EXCENTREMENT =SIMP(statut='f',typ='R'), - ORIG_AXE =SIMP(statut='f',typ='R',max='**'), - AXE =SIMP(statut='f',typ='R',max='**'), - COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-10 ), - GRILLE_NCOU =SIMP(statut='f',typ='I',defaut= 1,min=1,max=1 ), - ), - - RIGI_PARASOL =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'), - UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),), - GROUP_MA =SIMP(statut='o',typ=ma,max='**'), - FONC_GROUP =SIMP(statut='f',typ=(fonction) ), - COEF_GROUP =SIMP(statut='f',typ='R',max='**'), - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - CARA =SIMP(statut='o',typ='TXM',max='**',into=("K_TR_D_N","A_TR_D_N") ), - VALE =SIMP(statut='o',typ='R',max='**'), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - COOR_CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - - ASSE_GRIL =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - CARA =SIMP(statut='o',typ='TXM',max='**', - into=("K_TR_D_N","K_TR_D_L_T","K_TR_D_L_N",) ), - VALE =SIMP(statut='o',typ='R',max='**'), - PAS_T =SIMP(statut='o',typ='R'), - PAS_N =SIMP(statut='o',typ='R'), - ANGL_REP =SIMP(statut='o',typ='R',max='**'), - COEF_ECHELLE =SIMP(statut='o',typ='R'), - ), - - - AFFE_SECT =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'), - PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),), - - NOM =SIMP(statut='f',typ='TXM'), - - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - - TOUT_SECT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_SECT =SIMP(statut='f',typ=grma,max='**'), - MAILLE_SECT =SIMP(statut='f',typ=ma,max='**'), - - MAILLAGE_SECT =SIMP(statut='o',typ=maillage), - COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2), - ), - - - AFFE_FIBRE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - - NOM =SIMP(statut='f',typ='TXM'), - - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - - CARA =SIMP(statut='f',typ='TXM',defaut='SURFACE',into=('SURFACE','DIAMETRE',)), - VALE =SIMP(statut='o',typ='R',max='**'), - COOR_AXE_POUTRE =SIMP(statut='o',typ='R',min=2,max=2), - ), - - -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou, - fr="Affectation de charges et conditions aux limites acoustiques constantes", - docu="U4.44.04-f",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),), - MODELE =SIMP(statut='o',typ=modele ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRES_IMPO =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - PRES =SIMP(statut='o',typ='C' ), - ), - VITE_FACE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - VNOR =SIMP(statut='o',typ='C' ), - ), - IMPE_FACE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - IMPE =SIMP(statut='o',typ='C' ), - ), - LIAISON_UNIF =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE' ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args): - if MECA_IMPO != None : return char_cine_meca - if THER_IMPO != None : return char_cine_ther - if ACOU_IMPO != None : return char_cine_acou - raise AsException("type de concept resultat non prevu") - -AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod - ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation", - docu="U4.44.03-f",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO','ACOU_IMPO'), - EXCLUS('MECA_IMPO','THER_IMPO'), - EXCLUS('MECA_IMPO','ACOU_IMPO'), - EXCLUS('THER_IMPO','ACOU_IMPO'),), - MODELE =SIMP(statut='o',typ=modele ), - MECA_IMPO =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - ), - THER_IMPO =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - TEMP_SUP =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - TEMP_INF =SIMP(statut='f',typ='R' ), - ), - ACOU_IMPO =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - PRES =SIMP(statut='o',typ='C' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args): - if MECA_IMPO != None : return char_cine_meca - if THER_IMPO != None : return char_cine_ther - raise AsException("type de concept resultat non prevu") - -AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod - ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation", - docu="U4.44.03-f",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'), - EXCLUS('MECA_IMPO','THER_IMPO'),), - MODELE =SIMP(statut='o',typ=modele ), - MECA_IMPO =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DX =SIMP(statut='f',typ=fonction ), - DY =SIMP(statut='f',typ=fonction ), - DZ =SIMP(statut='f',typ=fonction ), - DRX =SIMP(statut='f',typ=fonction ), - DRY =SIMP(statut='f',typ=fonction ), - DRZ =SIMP(statut='f',typ=fonction ), - GRX =SIMP(statut='f',typ=fonction ), - PRES =SIMP(statut='f',typ=fonction ), - TEMP =SIMP(statut='f',typ=fonction ), - PHI =SIMP(statut='f',typ=fonction ), - ), - THER_IMPO =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - TEMP_SUP =SIMP(statut='f',typ=fonction ), - TEMP =SIMP(statut='f',typ=fonction ), - TEMP_INF =SIMP(statut='f',typ=fonction ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca - ,fr="Affectation de charges et conditions aux limites mécaniques constantes", - docu="U4.44.01-g",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE', - 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', - 'PRES_REP','FORCE_POUTRE','FORCE_COQUE','LIAISON_OBLIQUE', - 'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE', - 'VITE_FACE','TEMP_CALCULEE','RELA_CINE_BP','EPSI_INIT','CONTACT', - 'LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP', - 'LIAISON_SOLIDE','LIAISON_ELEM','ONDE_FLUI','PRES_CALCULEE', - 'EPSA_CALCULEE','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE', - 'LIAISON_MAIL','FORCE_TUYAU','SECH_CALCULEE','HYDR_CALCULEE', - 'EFFE_FOND','EVOL_CHAR','ARLEQUIN'), - EXCLUS('PRES_CALCULEE','EVOL_CHAR'),), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - MODELE =SIMP(statut='o',typ=(modele) ), - TEMP_CALCULEE =SIMP(statut='f',fr="Champ de température issu d'un autre calcul", - typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ), - HYDR_CALCULEE =SIMP(statut='f',fr="Champ d hydratation issu d'un autre calcul", - typ=evol_ther ), - SECH_CALCULEE =SIMP(statut='f',fr="Champ de séchage issu d'un autre calcul", - typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ), - EPSA_CALCULEE =SIMP(statut='f',fr="Champ de déformation anélastique issu d'un autre calcul", - typ=evol_noli ), -# A TERME PRES_CALCULEE N'EXISTERA PLUS - EVOL_CHAR =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul", - typ=evol_char ), - PRES_CALCULEE =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul", - typ=evol_char ), - - PESANTEUR =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=4,max=4), - ROTATION =SIMP(statut='f',typ='R',fr="Champ de rotation",min=4,max=4), - b_rotation =BLOC ( condition = "ROTATION != None", - CENTRE =SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=3),), - - DDL_IMPO =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', - 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4', - 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6', - 'VO6','WI6','WO6','WO','WI1','WO1','GONF'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PRE1 =SIMP(statut='f',typ='R' ), - PRE2 =SIMP(statut='f',typ='R' ), - UI2 =SIMP(statut='f',typ='R' ), - UI3 =SIMP(statut='f',typ='R' ), - UI4 =SIMP(statut='f',typ='R' ), - UI5 =SIMP(statut='f',typ='R' ), - UI6 =SIMP(statut='f',typ='R' ), - UO2 =SIMP(statut='f',typ='R' ), - UO3 =SIMP(statut='f',typ='R' ), - UO4 =SIMP(statut='f',typ='R' ), - UO5 =SIMP(statut='f',typ='R' ), - UO6 =SIMP(statut='f',typ='R' ), - VI2 =SIMP(statut='f',typ='R' ), - VI3 =SIMP(statut='f',typ='R' ), - VI4 =SIMP(statut='f',typ='R' ), - VI5 =SIMP(statut='f',typ='R' ), - VI6 =SIMP(statut='f',typ='R' ), - VO2 =SIMP(statut='f',typ='R' ), - VO3 =SIMP(statut='f',typ='R' ), - VO4 =SIMP(statut='f',typ='R' ), - VO5 =SIMP(statut='f',typ='R' ), - VO6 =SIMP(statut='f',typ='R' ), - WI2 =SIMP(statut='f',typ='R' ), - WI3 =SIMP(statut='f',typ='R' ), - WI4 =SIMP(statut='f',typ='R' ), - WI5 =SIMP(statut='f',typ='R' ), - WI6 =SIMP(statut='f',typ='R' ), - WO2 =SIMP(statut='f',typ='R' ), - WO3 =SIMP(statut='f',typ='R' ), - WO4 =SIMP(statut='f',typ='R' ), - WO5 =SIMP(statut='f',typ='R' ), - WO6 =SIMP(statut='f',typ='R' ), - WO =SIMP(statut='f',typ='R' ), - WI1 =SIMP(statut='f',typ='R' ), - WO1 =SIMP(statut='f',typ='R' ), - GONF =SIMP(statut='f',typ='R' ), - ), - - - - FACE_IMPO =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE',), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','DNOR','DTAN'), - EXCLUS('DNOR','DX'), - EXCLUS('DNOR','DY'), - EXCLUS('DNOR','DZ'), - EXCLUS('DNOR','DRX'), - EXCLUS('DNOR','DRY'), - EXCLUS('DNOR','DRZ'), - EXCLUS('DTAN','DX'), - EXCLUS('DTAN','DY'), - EXCLUS('DTAN','DZ'), - EXCLUS('DTAN','DRX'), - EXCLUS('DTAN','DRY'), - EXCLUS('DTAN','DRZ'),), -# rajout d'un mot clé REPERE :/ LOCAL /GLOBAL - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - DNOR =SIMP(statut='f',typ='R' ), - DTAN =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PRE1 =SIMP(statut='f',typ='R' ), - PRE2 =SIMP(statut='f',typ='R' ), - ), - - LIAISON_DDL =FACT(statut='f',fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds", - min=1,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - ), - - LIAISON_OBLIQUE =FACT(statut='f',fr="Appliquer à des noeuds une valeur de déplacement dans un repere oblique", - min=1,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'), - UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - ANGL_NAUT =SIMP(statut='o',typ='R',max=3), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - ), - - LIAISON_GROUP =FACT(statut='f',fr="Définir des relations linéaires entre certains ddls de couples de noeuds", - min=1,max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=no,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_1 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - CENTRE =SIMP(statut='f',typ='R',max=3), - ), - - LIAISON_MAIL =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'), - AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), - PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_ESCL =SIMP(statut='f',typ=grno,max='**'), - NOEUD_ESCL =SIMP(statut='f',typ=no,max='**'), - TRAN =SIMP(statut='f',typ='R',max=3 ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3 ), - CENTRE =SIMP(statut='f',typ='R',max=3 ), - DDL_MAIT =SIMP(statut='f',typ='TXM',into=("DNOR",) ), - DDL_ESCL =SIMP(statut='f',typ='TXM',into=("DNOR",) ), - ), - - - LIAISON_SOLIDE =FACT(statut='f',fr="Modéliser une partie indéformable d'une structure",min=1,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - LIAISON_ELEM =FACT(statut='f',fr="Raccorder une poutre à une partie massive 3D ou une coque", min=1,max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_NO_2','NOEUD_2'),), - OPTION =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU") ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ), - AXE_POUTRE =SIMP(statut='f',typ='R',max=3), - ANGL_MAX =SIMP(statut='f',typ='R',defaut= 1. ), - ), - - LIAISON_UNIF =FACT(statut='f',fr="Imposer une meme valeur (inconnue) à des ddls d'un emsemble de noeuds", - min=1,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), - - LIAISON_CHAMNO =FACT(statut='f',fr="définir une relation linéaire entre tous les ddls d'un concept cham_nno", - min=1,max='**', -# type de cham_no CO() - CHAM_NO =SIMP(statut='o',typ=cham_no), #CO() - COEF_IMPO =SIMP(statut='o',typ='R' ), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), - - CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",min=1,max='**', - regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'),), - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into=("NON","NODAL","NODAL_SYME","MAIT_ESCL","MAIT_ESCL_SYME")), - RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_VOISIN",into=("NOEUD_BOUCLE","NOEUD_VOISIN")), - LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT",into=("MAIT","MAIT_ESCL")), - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE") ), - PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ", - fr="Paramètres de la méthode des contraintes actives (contact uniquement)", - regles=(EXCLUS('DIST_2','COEF_IMPO'), - EXCLUS('DIST_1','COEF_IMPO'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP")), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS",) ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'),), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - COEF_IMPO =SIMP(statut='f',typ='R'), - COEF_MULT_2 =SIMP(statut='f',typ='R'), - VECT_NORM_2 =SIMP(statut='f',typ='R',max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - DIST_1 =SIMP(statut='f',typ='R'), - DIST_2 =SIMP(statut='f',typ='R'), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),), - b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ", - fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'),), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DIST_1 =SIMP(statut='f',typ='R'), - DIST_2 =SIMP(statut='f',typ='R'), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',max=1), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - b_penalisation =BLOC(condition = "METHODE == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - E_N =SIMP(statut='f',typ='R'), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'),), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DIST_1 =SIMP(statut='f',typ='R'), - DIST_2 =SIMP(statut='f',typ='R'), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',max=1), - E_T =SIMP(statut='f',typ='R', - fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - b_continue =BLOC(condition = "METHODE == 'CONTINUE' ", - fr="Paramètres de la méthode continue (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2")), - COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), - MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")), - DIRE_APPA =SIMP(statut='f',typ='R',max=3,defaut=(0.,0.,0.,)), - ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2), - ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',max=1), - ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2), - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - SEUIL_INIT =SIMP(statut='f',typ='I',defaut=0),),), - ), - - FORCE_NODALE =FACT(statut='f',fr="Imposer des forces nodales en des noeuds",min=1,max='**', - regles=(AU_MOINS_UN('GROUP_NO','NOEUD'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - ), - - FORCE_FACE =FACT(statut='f',fr="Appliquer des forces surfaciques sur une face d'éléments volumiques", - min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - ), - - FORCE_ARETE =FACT(statut='f',fr="Appliquer des forces linéiques à une arete d élément volumique ou de coque", - min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE',), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ), - - FORCE_CONTOUR =FACT(statut='f',fr="Appliquer des forces linéiques au bord d'un domaine 2D ou AXIS_FOURIER", - min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ), - - FORCE_INTERNE =FACT(statut='f',fr="Appliquer des forces volumiques (2D ou 3D) à un domaine volumique", - min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - ), - - PRES_REP =FACT(statut='f',fr="Appliquer une pression à un domaine de milieu continu 2D ou 3D", - min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('PRES','CISA_2D' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PRES =SIMP(statut='f',typ='R' ), - CISA_2D =SIMP(statut='f',typ='R' ), - ), - - EFFE_FOND =FACT(statut='f',fr="Imposer un effet de fond",min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA_INT =SIMP(statut='o',typ=grma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PRES =SIMP(statut='o',typ='R' ), - ), - - EPSI_INIT =FACT(statut='f',fr="Appliquer un chargement de déformation initiale à un volume 3D ou 2D", - min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX', - 'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - EPXX =SIMP(statut='f',typ='R' ), - EPYY =SIMP(statut='f',typ='R' ), - EPZZ =SIMP(statut='f',typ='R' ), - EPXY =SIMP(statut='f',typ='R' ), - EPXZ =SIMP(statut='f',typ='R' ), - EPYZ =SIMP(statut='f',typ='R' ), - EPX =SIMP(statut='f',typ='R' ), - KY =SIMP(statut='f',typ='R' ), - KZ =SIMP(statut='f',typ='R' ), - EXX =SIMP(statut='f',typ='R' ), - EYY =SIMP(statut='f',typ='R' ), - EXY =SIMP(statut='f',typ='R' ), - KXX =SIMP(statut='f',typ='R' ), - KYY =SIMP(statut='f',typ='R' ), - KXY =SIMP(statut='f',typ='R' ), - ), - - ARLEQUIN =FACT(statut='f',min=1,max='**', - GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'), - GROUP_MA_2 =SIMP(statut='o',typ=grma,max='**'), - GROUP_MA_COLL =SIMP(statut='o',typ=grma,max='**'), - CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ), - regles =(UN_PARMI('POIDS_1','POIDS_2'),), - POIDS_1 =SIMP(statut='f',typ='R'), - POIDS_2 =SIMP(statut='f',typ='R'), - ), - - FORCE_POUTRE =FACT(statut='f',fr="Appliquer des forces linéiques sur des poutres",min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), - PRESENT_ABSENT('FX','N','VY','VZ'), - PRESENT_ABSENT('FY','N','VY','VZ'), - PRESENT_ABSENT('FZ','N','VY','VZ'), - PRESENT_ABSENT('N','FX','FY','FZ'), - PRESENT_ABSENT('VY','FX','FY','FZ'), - PRESENT_ABSENT('VZ','FX','FY','FZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ), -# rajour d'un mot clé REPERE :/ LOCAL /GLOBAL - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - - N =SIMP(statut='f',typ='R' ), - VY =SIMP(statut='f',typ='R' ), - VZ =SIMP(statut='f',typ='R' ), - - ), - - FORCE_TUYAU =FACT(statut='f',fr="imposer une pression dans un élément TUYAU",min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PRES =SIMP(statut='f',typ='R' ), - ), - - FORCE_COQUE =FACT(statut='f',fr="Appliquer des forces surfaciques sur des coques",min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('F1','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('F2','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('F3','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('MF1','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('MF2','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),), -# rajour d'un mot clé REPERE :/ LOCAL /GLOBAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - - F1 =SIMP(statut='f',typ='R' ), - F2 =SIMP(statut='f',typ='R' ), - F3 =SIMP(statut='f',typ='R' ), - MF1 =SIMP(statut='f',typ='R' ), - MF2 =SIMP(statut='f',typ='R' ), - - PRES =SIMP(statut='f',typ='R' ), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ), - ), - - - LIAISON_COQUE =FACT(statut='f',min=1,max='**', - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - RELA_CINE_BP =FACT(statut='f',min=1,max='**', - CABLE_BP =SIMP(statut='o',typ=cabl_precont ), - SIGM_BPEL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - RELA_CINE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - FORCE_ELEC =FACT(statut='f', - fr="Force de Laplace due à la présence d'un conducteur rectiligne secondaire non maillé", - min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','POSITION'), - EXCLUS('FX','POSITION'), - EXCLUS('FY','POSITION'), - EXCLUS('FZ','POSITION'),), -# trop de regles : les blocs conditionnels permettent d en suprimer - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - - FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FY =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - - POSITION =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ), - b_para =BLOC ( condition = "POSITION == 'PARA'", - regles=(UN_PARMI('TRANS','DIST'),), - TRANS =SIMP(statut='f',typ='R',max=3), - DIST =SIMP(statut='f',typ='R' ), - b_point2 =BLOC ( condition = "DIST != None", - POINT2 =SIMP(statut='o',typ='R',max=3), - ), - ), - b_fini_infi =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')", - POINT1 =SIMP(statut='o',typ='R',max=3), - POINT2 =SIMP(statut='o',typ='R',max=3), - ), - ), - - - - - INTE_ELEC =FACT(statut='f',fr="Force de Laplace due à la présence d'un conducteur non rectiligne secondaire", - min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'), - EXCLUS('TRANS','SYME'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - TRANS =SIMP(statut='f',typ='R',max='**'), - SYME =SIMP(statut='f',typ='R',max='**'), - ), - - - IMPE_FACE =FACT(statut='f',fr="Appliquer une impédance acoustique à une face",min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - IMPE =SIMP(statut='o',typ='R' ), - ), - - VITE_FACE =FACT(statut='f',fr="Imposer des vitesses acoustiquesnormales à une face",min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - VNOR =SIMP(statut='o',typ='R' ), - ), - - - - ONDE_FLUI =FACT(statut='f',fr="Appliquer une amplitude de pression d onde incidente",min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PRES =SIMP(statut='o',typ='R' ), - ), - - FLUX_THM_REP =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUN =SIMP(statut='f',typ='R' ), - FLUN_HYDR1 =SIMP(statut='f',typ='R' ), - FLUN_HYDR2 =SIMP(statut='f',typ='R' ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, - fr="Affectation de charges et conditions aux limites mécaniques complexes", - docu="U4.44.05-d",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),), - MODELE =SIMP(statut='o',typ=modele ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - DDL_IMPO =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DX =SIMP(statut='f',typ='C' ), - DY =SIMP(statut='f',typ='C' ), - DZ =SIMP(statut='f',typ='C' ), - DRX =SIMP(statut='f',typ='C' ), - DRY =SIMP(statut='f',typ='C' ), - DRZ =SIMP(statut='f',typ='C' ), - GRX =SIMP(statut='f',typ='C' ), - PRES =SIMP(statut='f',typ='C' ), - PHI =SIMP(statut='f',typ='C' ), - ), - FORCE_POUTRE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',), - PRESENT_ABSENT('FX','N','VY','VZ',), - PRESENT_ABSENT('FY','N','VY','VZ',), - PRESENT_ABSENT('FZ','N','VY','VZ',), - PRESENT_ABSENT('N','FX','FY','FZ',), - PRESENT_ABSENT('VY', 'FX','FY','FZ',), - PRESENT_ABSENT('VZ','FX','FY','FZ', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), - FX =SIMP(statut='f',typ='C' ), - FY =SIMP(statut='f',typ='C' ), - FZ =SIMP(statut='f',typ='C' ), - N =SIMP(statut='f',typ='C' ), - VY =SIMP(statut='f',typ='C' ), - VZ =SIMP(statut='f',typ='C' ), - ), - LIAISON_DDL =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD', ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='C' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 24/03/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 G8BHHXD X.DESROCHES -AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, - fr="Affectation de charges et conditions aux limites mécaniques fonction d une grandeur", - docu="U4.44.01-g",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','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 ), - - DDL_IMPO =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DX =SIMP(statut='f',typ=(fonction) ), - DY =SIMP(statut='f',typ=(fonction) ), - DZ =SIMP(statut='f',typ=(fonction) ), - DRX =SIMP(statut='f',typ=(fonction) ), - DRY =SIMP(statut='f',typ=(fonction) ), - DRZ =SIMP(statut='f',typ=(fonction) ), - GRX =SIMP(statut='f',typ=(fonction) ), - PRES =SIMP(statut='f',typ=(fonction) ), - PHI =SIMP(statut='f',typ=(fonction) ), - TEMP =SIMP(statut='f',typ=(fonction) ), - PRE1 =SIMP(statut='f',typ=(fonction) ), - PRE2 =SIMP(statut='f',typ=(fonction) ), - ), - - FACE_IMPO =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_MA','MAILLE'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','TEMP','PRE1','PRE2','DNOR','DTAN'), - EXCLUS('DNOR','DX'), - EXCLUS('DNOR','DY'), - EXCLUS('DNOR','DZ'), - EXCLUS('DNOR','DRX'), - EXCLUS('DNOR','DRY'), - EXCLUS('DNOR','DRZ'), - EXCLUS('DTAN','DX'), - EXCLUS('DTAN','DY'), - EXCLUS('DTAN','DZ'), - EXCLUS('DTAN','DRX'), - EXCLUS('DTAN','DRY'), - EXCLUS('DTAN','DRZ'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DX =SIMP(statut='f',typ=(fonction) ), - DY =SIMP(statut='f',typ=(fonction) ), - DZ =SIMP(statut='f',typ=(fonction) ), - DRX =SIMP(statut='f',typ=(fonction) ), - DRY =SIMP(statut='f',typ=(fonction) ), - DRZ =SIMP(statut='f',typ=(fonction) ), - GRX =SIMP(statut='f',typ=(fonction) ), - PRES =SIMP(statut='f',typ=(fonction) ), - PHI =SIMP(statut='f',typ=(fonction) ), - TEMP =SIMP(statut='f',typ=(fonction) ), - PRE1 =SIMP(statut='f',typ=(fonction) ), - PRE2 =SIMP(statut='f',typ=(fonction) ), - DNOR =SIMP(statut='f',typ=(fonction) ), - DTAN =SIMP(statut='f',typ=(fonction) ), - ), - - LIAISON_DDL =FACT(statut='f',min=1,max='**', - fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction) ), - ), - - LIAISON_OBLIQUE =FACT(statut='f',min=1,max='**', - fr="Définir des relations linéaires entre certains ddls de couples de noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD'), - UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - ANGL_NAUT =SIMP(statut='o',typ='R',max=3), - DX =SIMP(statut='f',typ=(fonction) ), - DY =SIMP(statut='f',typ=(fonction) ), - DZ =SIMP(statut='f',typ=(fonction) ), - DRX =SIMP(statut='f',typ=(fonction) ), - DRY =SIMP(statut='f',typ=(fonction) ), - DRZ =SIMP(statut='f',typ=(fonction) ), - ), - - LIAISON_GROUP =FACT(statut='f',min=1,max='**', - fr="Définir des relations linéaires entre certains ddls de couples de noeuds", - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_1 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction) ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - CENTRE =SIMP(statut='f',typ='R',max=3), - ), - - CONTACT =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",min=1,max='**', - regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'),), - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into=("NON","NODAL","NODAL_SYME","MAIT_ESCL","MAIT_ESCL_SYME")), - RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_VOISIN",into=("NOEUD_BOUCLE","NOEUD_VOISIN")), - LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT",into=("MAIT","MAIT_ESCL")), - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE") ), - PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ", - fr="Paramètres de la méthode des contraintes actives (contact uniquement)", - regles=(EXCLUS('DIST_2','COEF_IMPO'), - EXCLUS('DIST_1','COEF_IMPO'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP")), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS",) ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'),), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - COEF_IMPO =SIMP(statut='f',typ='R'), - COEF_MULT_2 =SIMP(statut='f',typ='R'), - VECT_NORM_2 =SIMP(statut='f',typ='R',max=3), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - DIST_1 =SIMP(statut='f',typ=(fonction)), - DIST_2 =SIMP(statut='f',typ=(fonction)), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),), - b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ", - fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'),), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DIST_1 =SIMP(statut='f',typ=(fonction)), - DIST_2 =SIMP(statut='f',typ=(fonction)), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',max=1), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - b_penalisation =BLOC(condition = "METHODE == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - E_N =SIMP(statut='f',typ='R'), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Paramètre de la réactualisation géométrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'),), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DIST_1 =SIMP(statut='f',typ=(fonction)), - DIST_2 =SIMP(statut='f',typ=(fonction)), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',max=1), - E_T =SIMP(statut='f',typ='R', - fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - b_continue =BLOC(condition = "METHODE == 'CONTINUE' ", - fr="Paramètres de la méthode continue (contact avec ou sans frottement)", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2")), - COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0), - MODL_AXIS =SIMP(statut='o',typ='TXM',into=("OUI","NON")), - DIRE_APPA =SIMP(statut='f',typ='R',max=3), - ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2), - ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',max=1), - ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2), - COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0), - SEUIL_INIT =SIMP(statut='f',typ='I',defaut=0),),), - ), - - LIAISON_UNIF =FACT(statut='f',min=1,max='**', - fr="Imposer une meme valeur (inconnue) a des ddls d un emsemble de noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), - - LIAISON_SOLIDE =FACT(statut='f',min=1,max='**', - fr="Modéliser une partie indéformable d une structure", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), - ), - - - - FORCE_NODALE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - MX =SIMP(statut='f',typ=(fonction) ), - MY =SIMP(statut='f',typ=(fonction) ), - MZ =SIMP(statut='f',typ=(fonction) ), - ANGL_NAUT =SIMP(statut='f',typ=(fonction),max=3 ), - ), - - FORCE_FACE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - ), - FORCE_ARETE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - MX =SIMP(statut='f',typ=(fonction) ), - MY =SIMP(statut='f',typ=(fonction) ), - MZ =SIMP(statut='f',typ=(fonction) ), - ), - FORCE_CONTOUR =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - MX =SIMP(statut='f',typ=(fonction) ), - MY =SIMP(statut='f',typ=(fonction) ), - MZ =SIMP(statut='f',typ=(fonction) ), - ), - - FORCE_INTERNE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - ), - - PRES_REP =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('PRES','CISA_2D'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PRES =SIMP(statut='f',typ=(fonction) ), - CISA_2D =SIMP(statut='f',typ=(fonction) ), - ), - - EPSI_INIT =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - EPXX =SIMP(statut='f',typ=(fonction) ), - EPYY =SIMP(statut='f',typ=(fonction) ), - EPZZ =SIMP(statut='f',typ=(fonction) ), - EPXY =SIMP(statut='f',typ=(fonction) ), - EPXZ =SIMP(statut='f',typ=(fonction) ), - EPYZ =SIMP(statut='f',typ=(fonction) ), - ), - - FORCE_POUTRE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), - PRESENT_ABSENT('FX','N','VY','VZ'), - PRESENT_ABSENT('FY','N','VY','VZ'), - PRESENT_ABSENT('FZ','N','VY','VZ'), - PRESENT_ABSENT('N','FX','FY','FZ'), - PRESENT_ABSENT('VY','FX','FY','FZ'), - PRESENT_ABSENT('VZ','FX','FY','FZ'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - N =SIMP(statut='f',typ=(fonction) ), - VY =SIMP(statut='f',typ=(fonction) ), - VZ =SIMP(statut='f',typ=(fonction) ), - ), - - FORCE_TUYAU =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PRES =SIMP(statut='f',typ=(fonction) ), - ), - - FORCE_COQUE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('F1','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('F2','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('F3','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('MF1','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('MF2','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FX =SIMP(statut='f',typ=(fonction) ), - FY =SIMP(statut='f',typ=(fonction) ), - FZ =SIMP(statut='f',typ=(fonction) ), - MX =SIMP(statut='f',typ=(fonction) ), - MY =SIMP(statut='f',typ=(fonction) ), - MZ =SIMP(statut='f',typ=(fonction) ), - F1 =SIMP(statut='f',typ=(fonction) ), - F2 =SIMP(statut='f',typ=(fonction) ), - F3 =SIMP(statut='f',typ=(fonction) ), - MF1 =SIMP(statut='f',typ=(fonction) ), - MF2 =SIMP(statut='f',typ=(fonction) ), - PRES =SIMP(statut='f',typ=(fonction) ), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL", - into=("SUP","INF","MOY","MAIL") ), - ), - - LIAISON_COQUE =FACT(statut='f',min=1,max='**', - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), - ), - - - VITE_FACE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - PRESENT_ABSENT('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - VNOR =SIMP(statut='o',typ=(fonction) ), - ), - IMPE_FACE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - PRESENT_ABSENT('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - IMPE =SIMP(statut='o',typ=(fonction) ), - ), - ONDE_PLANE =FACT(statut='f',min=1,max='**', - DIRECTION =SIMP(statut='o',typ='R',max='**'), - TYPE_ONDE =SIMP(statut='o',typ='TXM' ), - FONC_SIGNAL =SIMP(statut='o',typ=(fonction) ), - DIST_ORIG =SIMP(statut='o',typ='R' ), - ), - - - - FLUX_THM_REP =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUN =SIMP(statut='f',typ=(fonction) ), - FLUN_HYDR1 =SIMP(statut='f',typ=(fonction) ), - FLUN_HYDR2 =SIMP(statut='f',typ=(fonction) ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther, - fr=" ", - docu="",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - regles=(AU_MOINS_UN('CARA_TORSION', ),), - MODELE =SIMP(statut='o',typ=modele ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON") ), - CARA_TORSION =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther - ,fr="Affectation de charges et conditions aux limites thermiques constantes", - docu="U4.44.02-g",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE', - 'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP', - 'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),), - VERI_DDL =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="OUI"), - MODELE =SIMP(statut='o',typ=(modele) ), - - TEMP_IMPO =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - TEMP =SIMP(statut='f',typ='R'), - TEMP_INF =SIMP(statut='f',typ='R'), - TEMP_SUP =SIMP(statut='f',typ='R'), ), - - FLUX_REP =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - PRESENT_PRESENT('CARA_TORSION','GROUP_MA'), - AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','CARA_TORSION') ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUN =SIMP(statut='f',typ='R'), - FLUN_INF =SIMP(statut='f',typ='R'), - FLUN_SUP =SIMP(statut='f',typ='R'), - CARA_TORSION =SIMP(statut='f',typ=tabl_aire_int ), - ), - - - RAYONNEMENT =FACT(statut='f',min=1,max='**', - fr="Attention, exprimer les températures en Celsius si rayonnement", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - SIGMA =SIMP(statut='o',typ='R'), - EPSILON =SIMP(statut='o',typ='R'), - TEMP_EXT =SIMP(statut='o',typ='R'), - ), - - ECHANGE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'), - ENSEMBLE('COEF_H','TEMP_EXT',), - ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'), - ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - COEF_H =SIMP(statut='f',typ='R'), - TEMP_EXT =SIMP(statut='f',typ='R'), - COEF_H_INF =SIMP(statut='f',typ='R'), - TEMP_EXT_INF =SIMP(statut='f',typ='R'), - COEF_H_SUP =SIMP(statut='f',typ='R'), - TEMP_EXT_SUP =SIMP(statut='f',typ='R'), - ), - - SOURCE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('SOUR','SOUR_CALCULEE',), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('SOUR_CALCULEE','TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - SOUR =SIMP(statut='f',typ='R'), - SOUR_CALCULEE =SIMP(statut='f',typ=(cham_elem_sour_r) ), - ), - - GRAD_TEMP_INIT =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUX_X =SIMP(statut='f',typ='R' ), - FLUX_Y =SIMP(statut='f',typ='R' ), - FLUX_Z =SIMP(statut='f',typ='R' ), - ), - - LIAISON_DDL =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD', ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**', - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - ), - - LIAISON_GROUP =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_1 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP",) ), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max='**'), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - - LIAISON_MAIL =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'), - AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL', - 'NOEUD_ESCL'),), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_ESCL =SIMP(statut='f',typ=grno,max='**'), - NOEUD_ESCL =SIMP(statut='f',typ=no,max='**'), - TRAN =SIMP(statut='f',typ='R',max='**' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**' ), - CENTRE =SIMP(statut='f',typ='R',max='**' ), - ), - - ECHANGE_PAROI =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - COEF_H =SIMP(statut='f',typ='R'), - TRAN =SIMP(statut='f',typ='R',min=2,max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',min=1,max=3), - CENTRE =SIMP(statut='f',typ='R',min=2,max=3), - ), - - LIAISON_UNIF =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - ), - - LIAISON_CHAMNO =FACT(statut='f',min=1,max='**', - CHAM_NO =SIMP(statut='o',typ=cham_no),# CO()# "il faut definir une structure de donnee generique chamno" - COEF_IMPO =SIMP(statut='o',typ='R' ), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - CONVECTION =FACT(statut='f',min=1,max='**', - VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ), - ), - - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=33,sd_prod=char_ther, - fr="Affectation de charges et conditions aux limites thermiques fonction dune grandeur (temps, ...)", - docu="U4.44.02-g",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','FLUX_NL','ECHANGE', - 'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF', - 'GRAD_TEMP_INIT','RAYONNEMENT'),), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - MODELE =SIMP(statut='o',typ=(modele) ), - - TEMP_IMPO =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF','EVOL_THER'), - PRESENT_ABSENT('EVOL_THER','TEMP','TEMP_INF','TEMP_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - EVOL_THER =SIMP(statut='f',typ=(evol_ther) ), - DDL =SIMP(statut='f',typ='TXM',into=("TEMP",) ), - TEMP =SIMP(statut='f',typ=(fonction) ), - TEMP_INF =SIMP(statut='f',typ=(fonction) ), - TEMP_SUP =SIMP(statut='f',typ=(fonction) ), - ), - - FLUX_REP =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','FLUX_X','FLUX_Y','FLUX_Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUN =SIMP(statut='f',typ=(fonction) ), - FLUN_INF =SIMP(statut='f',typ=(fonction) ), - FLUN_SUP =SIMP(statut='f',typ=(fonction) ), - FLUX_X =SIMP(statut='f',typ=(fonction) ), - FLUX_Y =SIMP(statut='f',typ=(fonction) ), - FLUX_Z =SIMP(statut='f',typ=(fonction) ), - ), - - FLUX_NL =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUN =SIMP(statut='o',typ=(fonction) ), - ), - - - RAYONNEMENT =FACT(statut='f',min=1,max='**', - fr="Attention, exprimer les températures en Celsius si rayonnement", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - SIGMA =SIMP(statut='o',typ=(fonction) ), - EPSILON =SIMP(statut='o',typ=(fonction) ), - TEMP_EXT =SIMP(statut='o',typ=(fonction) ), - ), - - - - ECHANGE =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'), - ENSEMBLE('COEF_H','TEMP_EXT'), - ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'), - ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - COEF_H =SIMP(statut='f',typ=(fonction) ), - TEMP_EXT =SIMP(statut='f',typ=(fonction) ), - COEF_H_INF =SIMP(statut='f',typ=(fonction) ), - TEMP_EXT_INF =SIMP(statut='f',typ=(fonction) ), - COEF_H_SUP =SIMP(statut='f',typ=(fonction) ), - TEMP_EXT_SUP =SIMP(statut='f',typ=(fonction) ), - ), - - - SOURCE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - SOUR =SIMP(statut='o',typ=(fonction) ), - ), - - GRAD_TEMP_INIT =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - FLUX_X =SIMP(statut='f',typ=(fonction) ), - FLUX_Y =SIMP(statut='f',typ=(fonction) ), - FLUX_Z =SIMP(statut='f',typ=(fonction) ), - ), - - ECHANGE_PAROI =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - COEF_H =SIMP(statut='o',typ=(fonction) ), - TRAN =SIMP(statut='f',typ='R',min=2,max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',min=1,max=3), - CENTRE =SIMP(statut='f',typ='R',min=2,max=3), - ), - - LIAISON_DDL =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**',into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction) ), - ), - - LIAISON_GROUP =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_1 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction) ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max='**'), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - - LIAISON_UNIF =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - ), - - CONVECTION =FACT(statut='f',min=1,max='**', - VITESSE =SIMP(statut='o',typ=(cham_no_depl_r) ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, - fr="Affectation de caractéristiques de matériaux à un maillage", - docu="U4.43.03-g",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - MAILLAGE =SIMP(statut='o',typ=maillage), - MODELE =SIMP(statut='f',typ=modele), - AFFE =FACT(statut='o',min=1,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - MATER =SIMP(statut='o',typ=mater), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-g", - UIinfo={"groupes":("Modélisation",)}, - fr="Affectation des éléments finis sur le maillage",reentrant='n', - regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),), - MAILLAGE =SIMP(statut='o',typ=(maillage) ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - VERIF =SIMP(statut='f',typ='TXM',max=2,into=("MAILLE","NOEUD") ), - AFFE_SOUS_STRUC =FACT(statut='f',min=1,max=1, - regles=(UN_PARMI('TOUT','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - PHENOMENE =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ), - ), - AFFE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - PHENOMENE =SIMP(statut='o',typ='TXM', - into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ), - b_mecanique =BLOC( condition = "PHENOMENE=='MECANIQUE'", - fr="modelisations mécaniques", - MODELISATION =SIMP(statut='o',typ='TXM', into=( - "2D_DIS_T", - "2D_DIS_TR", - "2D_FLUI_ABSO", - "2D_FLUI_PESA", - "2D_FLUI_STRU", - "2D_FLUIDE", - "3D", - "3D_ABSO", - "3D_FAISCEAU", - "3D_FLUI_ABSO", - "3D_FLUIDE", - "3D_HHM" , - "3D_HM", - "3D_INCO", - "3D_JOINT_CT", - "3D_SI", - "3D_THH", - "3D_THHM", - "3D_THM", - "3D_GRAD_EPSI", - "3D_GRAD_VARI", - "APPUI_REP", - "ASSE_GRIL", - "AXIS", - "AXIS_FLUI_STRU", - "AXIS_FLUIDE", - "AXIS_FOURIER", - "AXIS_HHM", - "AXIS_HM", - "AXIS_INCO", - "AXIS_SI", - "AXIS_THH", - "AXIS_THHM", - "AXIS_THM", - "AXIS_GRAD_VARI", - "AXIS_FISSURE", - "BARRE", - "2D_BARRE", - "C_PLAN", - "C_PLAN_SI", - "C_PLAN_GRAD_EPSI", - "C_PLAN_GRAD_VARI", - "CABLE", - "CABLE_POULIE", - "COQUE_3D", - "COQUE_AXIS", - "COQUE_C_PLAN", - "COQUE_D_PLAN", - "D_PLAN", - "D_PLAN_GRAD_EPSI", - "D_PLAN_GRAD_VARI", - "PLAN_FISSURE", - "D_PLAN_ABSO", - "D_PLAN_HHM", - "D_PLAN_HM", - "D_PLAN_INCO", - "D_PLAN_SI", - "D_PLAN_THH", - "D_PLAN_THHM", - "D_PLAN_THM", - "3D_HHMD", - "3D_HMD", - "3D_THHD", - "3D_THVD", - "3D_THHMD", - "3D_THMD", - "AXIS_HHMD", - "AXIS_HMD", - "AXIS_THHD", - "AXIS_THVD", - "AXIS_THHMD", - "AXIS_THMD", - "D_PLAN_HHMD", - "D_PLAN_HMD", - "D_PLAN_THHD", - "D_PLAN_THVD", - "D_PLAN_THHMD", - "D_PLAN_THMD", - "DIS_T", - "DIS_TR", - "DKT", - "DST", - "FLUI_STRU", - "GRILLE", - "POU_C_T", - "POU_D_E", - "POU_D_EM", - "POU_D_T", - "POU_D_T_GD", - "POU_D_TG", - "POU_D_TGM", - "Q4G", - "TUYAU_3M", - "TUYAU_6M" - ) ) ), - - b_thermique =BLOC( condition = "PHENOMENE=='THERMIQUE'", - fr="modelisations thermiques", - MODELISATION =SIMP(statut='o',typ='TXM',into=( - "3D", - "3D_DIAG", - "AXIS", - "AXIS_DIAG", - "AXIS_FOURIER", - "COQUE", - "COQUE_AXIS", - "COQUE_PLAN", - "PLAN", - "PLAN_DIAG", - ),),), - - b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'", - fr="modelisations acoustiques", - MODELISATION =SIMP(statut='o',typ='TXM',into=( - "3D", - "PLAN" - ), ),), - - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AIDE=PROC(nom="AIDE",op=42,docu="U4.02.01-g", - UIinfo={"groupes":("Modélisation",)}, - fr="Interrogation sur le catalogue des commandes et les concepts produits", - regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - TYPE_ELEM =FACT(fr="couple type_elem option", - statut='f',min=1,max=1, - INITEL =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON",) ), - ), - CONCEPT =FACT(statut='f',min=1,max='**', - NOM =SIMP(fr="liste des noms de concept", - statut='f',typ='TXM',max='**',defaut="*"), - OPTION =SIMP(fr="option d'édition de concept", - statut='f',typ='TXM',defaut="TOUT_TYPE", - into=("TOUT_TYPE","CREER","A_CREER",) ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage, - fr="Assembler deux maillages sous un seul nom", - docu="U4.23.03-f",reentrant='n', - UIinfo={"groupes":("Maillage",)}, - MAILLAGE =SIMP(statut='o',typ=maillage,min=2,max=2 ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=matr_asse_gene_r, - fr="Assemblage des matrices généralisées de macro éléments pour construction de la matrice globale généralisée", - docu="U4.65.04-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 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def asse_matrice_prod(MATR_ELEM,**args): - if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r - if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c - if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r - if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c - raise AsException("type de concept resultat non prevu") - -ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod, - fr="Construction d une matrice assemblée",docu="U4.61.22-g",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - MATR_ELEM =SIMP(statut='o', - typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ), - NUME_DDL =SIMP(statut='o',typ=nume_ddl), - CHAR_CINE =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene, - fr="Assemblage de vecteurs de chargement en coordonnées généralisées", - docu="U4.65.05-e",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - CHAR_SOUS_STRUC =FACT(statut='o',min=1,max='**', - SOUS_STRUC =SIMP(statut='o',typ='TXM' ), - VECT_ASSE =SIMP(statut='o',typ=cham_no_depl_r ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def asse_vecteur_prod(VECT_ELEM,**args): - if AsType(VECT_ELEM) == vect_elem_depl_r : return cham_no_depl_r - if AsType(VECT_ELEM) == vect_elem_temp_r : return cham_no_temp_r - if AsType(VECT_ELEM) == vect_elem_pres_r : return cham_no_pres_r - if AsType(VECT_ELEM) == vect_elem_pres_c : return cham_no_pres_c - raise AsException("type de concept resultat non prevu ") - -ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=asse_vecteur_prod, - fr="Assemblage d un second membre",docu="U4.61.23-g",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - VECT_ELEM =SIMP(statut='o',typ=vect_elem,max='**'), - NUME_DDL =SIMP(statut='o',typ=nume_ddl ), - INFO =SIMP(statut='f',typ='I',into=(1,2,) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8, - fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G", - docu="U4.52.13-d",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - ENER_SOL =FACT(statut='o',min=1,max=1, - regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'), - PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'), -# Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ') - PRESENT_PRESENT('KRX','KRY'), - PRESENT_PRESENT('KRX','KRZ'), - PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'), - PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'), - PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),), - METHODE =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - GROUP_NO_RADIER =SIMP(statut='f',typ=grno,max='**'), - GROUP_MA_RADIER =SIMP(statut='f',typ=grma,max='**'), - FONC_GROUP =SIMP(statut='f',typ=fonction ), - COEF_GROUP =SIMP(statut='f',typ='R',max='**'), - KX =SIMP(statut='o',typ='R' ), - KY =SIMP(statut='o',typ='R' ), - KZ =SIMP(statut='o',typ='R' ), - KRX =SIMP(statut='f',typ='R' ), - KRY =SIMP(statut='f',typ='R' ), - KRZ =SIMP(statut='f',typ='R' ), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - COOR_CENTRE =SIMP(statut='f',typ='R',max=3), - ), - AMOR_INTERNE =FACT(statut='o',min=1,max=1, - ENER_POT =SIMP(statut='o',typ=tabl_ener_pot ), - GROUP_MA =SIMP(statut='o',typ=grma,max='**'), - AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), - ), - AMOR_SOL =FACT(statut='o',min=1,max=1, - AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FONC_AMOR_GEO =SIMP(statut='o',typ=fonction,max='**' ), - HOMOGENE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 0.3 ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -def calc_cham_elem_prod(OPTION,**args): - -# options mecaniques - if OPTION == "DEGE_ELNO_DEPL" : return cham_elem_epsi_r - if OPTION == "ECIN_ELEM_DEPL" : return cham_elem_ener_r - if OPTION == "EFGE_ELNO_CART" : return cham_elem_sief_r - if OPTION == "EFGE_ELNO_DEPL" : return cham_elem_sief_r - if OPTION == "ENDO_ELNO_SIGM" : return cham_elem_sief_r - if OPTION == "EPOT_ELEM_DEPL" : return cham_elem_ener_r - if OPTION == "ENEL_ELGA" : return cham_elem_ener_r - if OPTION == "ENEL_ELNO_ELGA" : return cham_elem_ener_r - if OPTION == "EPSI_ELNO_DEPL" : return cham_elem_epsi_r - if OPTION == "EQUI_ELGA_EPSI" : return cham_elem_epsi_r - if OPTION == "EQUI_ELGA_SIGM" : return cham_elem_sief_r - if OPTION == "EQUI_ELNO_EPSI" : return cham_elem_epsi_r - if OPTION == "EQUI_ELNO_SIGM" : return cham_elem_sief_r - if OPTION == "PRES_DBEL_DEPL" : return cham_elem_dbel_r - if OPTION == "SIEF_ELGA_DEPL" : return cham_elem_sief_r - if OPTION == "SIEF_ELGA_LAGR" : return cham_elem_sief_r - if OPTION == "SIGM_ELNO_CART" : return cham_elem_sief_r - if OPTION == "SIGM_ELNO_DEPL" : return cham_elem_sief_r - if OPTION == "SIGM_ELNO_LAGR" : return cham_elem_sief_r - if OPTION == "SIPO_ELNO_DEPL" : return cham_elem_sief_r - -# options thermiques - - if OPTION == "FLUX_ELGA_TEMP" : return cham_elem_flux_r - if OPTION == "FLUX_ELNO_TEMP" : return cham_elem_flux_r - if OPTION == "SOUR_ELGA_ELEC" : return cham_elem_sour_r - -# options acoustiques - - if OPTION == "PRES_ELNO_DBEL" : return cham_elem_dbel_r - if OPTION == "PRES_ELNO_REEL" : return cham_elem_pres_r - if OPTION == "PRES_ELNO_IMAG" : return cham_elem_pres_r - -# autres options - - if OPTION == "COOR_ELGA" : return cham_elem_geom_r - - raise AsException("type de concept resultat non prevu") - -CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod, - fr="Calcul de champs par éléments à partir de champs solution ou de champs par éléments", - docu="U4.81.03-g",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - regles=(EXCLUS('TOUT','GROUP_MA',),EXCLUS('TOUT','MAILLE',),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - -# -# -# introduire un mot cle de type modelisation : mécanique,thermique,... -# - - OPTION =SIMP(statut='o',typ='TXM', - into=("DEGE_ELNO_DEPL","ECIN_ELEM_DEPL","EFGE_ELNO_CART", - "EFGE_ELNO_DEPL","ENDO_ELNO_SIGM","EPOT_ELEM_DEPL", - "ENEL_ELGA", "ENEL_ELNO_ELGA","EPSI_ELNO_DEPL", - "EQUI_ELGA_EPSI","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI", - "EQUI_ELNO_SIGM","PRES_DBEL_DEPL","SIEF_ELGA_DEPL", - "SIEF_ELGA_LAGR","SIGM_ELNO_CART","SIGM_ELNO_DEPL", - "SIGM_ELNO_LAGR","SIPO_ELNO_DEPL", - "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC", - "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG", - "COOR_ELGA"), ), - - b_dege_elno_depl =BLOC(condition="OPTION=='DEGE_ELNO_DEPL'", - DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)), - PLAN =SIMP(statut='o',typ='TXM',defaut="MAIL", into=("SUP","INF","MOY","MAIL"), ), - ), - - b_ecin_elem_depl =BLOC(condition="OPTION=='ECIN_ELEM_DEPL'", - regles=(UN_PARMI('VITE','DEPL',),ENSEMBLE('DEPL','FREQ',),), - FREQ =SIMP(statut='f',typ='R'), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - DEPL =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c)), - ), - - b_efge_elno_cart =BLOC(condition="OPTION=='EFGE_ELNO_CART'", - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ), - PLAN =SIMP(statut='o',typ='TXM',defaut="MAIL", into=("SUP","INF","MOY","MAIL"), ), - ), - - b_efge_elno_depl =BLOC(condition="OPTION=='EFGE_ELNO_DEPL'", - DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)), - PLAN =SIMP(statut='o',typ='TXM',defaut="MAIL", into=("SUP","INF","MOY","MAIL"), ), - ), - - b_endo_elno_sigm =BLOC(condition="OPTION=='ENDO_ELNO_SIGM'", - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ), - ), - - b_epot_elem_depl =BLOC(condition="OPTION=='EPOT_ELEM_DEPL'", - DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)), - ), - - b_enel_elga =BLOC(condition="OPTION=='ENEL_ELGA'", - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ), - ), - - b_enel_elno_elga =BLOC(condition="OPTION=='ENEL_ELNO_ELGA'", - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ), - ), - - b_epsi_elno_depl =BLOC(condition="OPTION=='EPSI_ELNO_DEPL'", - DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)), - ), - - b_equi_elga_epsi =BLOC(condition="OPTION=='EQUI_ELGA_EPSI'", - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_epsi_r,) ), - ), - - b_equi_elga_sigm =BLOC(condition="OPTION=='EQUI_ELGA_SIGM'", - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ), - ), - - b_equi_elno_epsi =BLOC(condition="OPTION=='EQUI_ELNO_EPSI'", - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_epsi_r,) ), - ), - - b_equi_elno_sigm =BLOC(condition="OPTION=='EQUI_ELNO_SIGM'", - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ), - ), - - b_pres_dbel_depl =BLOC(condition="OPTION=='PRES_DBEL_DEPL'", - DEPL =SIMP(statut='o',typ=(cham_no_depl_c,)), - ), - - b_sief_elga_depl =BLOC(condition="OPTION=='SIEF_ELGA_DEPL'", - DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)), - ), - - b_sief_elga_lagr =BLOC(condition="OPTION=='SIEF_ELGA_LAGR'", - DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)), - THETA =SIMP(statut='o',typ=(theta_geom,)), - PROPAGATION =SIMP(statut='f',typ='R',defaut=0.E+0), - ), - - b_sigm_elno_cart =BLOC(condition="OPTION=='SIGM_ELNO_CART'", - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,) ), - ), - - b_sigm_elno_depl =BLOC(condition="OPTION=='SIGM_ELNO_DEPL'", - DEPL =SIMP(statut='o',typ=(cham_no_depl_r,) ), - ), - - b_sigm_elno_lagr =BLOC(condition="OPTION=='SIGM_ELNO_LAGR'", - DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)), - THETA =SIMP(statut='o',typ=(theta_geom,)), - PROPAGATION =SIMP(statut='f',typ='R',defaut=0.E+0), - ), - - b_sipo_elno_depl =BLOC(condition="OPTION=='SIPO_ELNO_DEPL'", - DEPL =SIMP(statut='o',typ=(cham_no_depl_r,)), - ), - - b_thermique =BLOC(condition="OPTION in ('FLUX_ELNO_TEMP','FLUX_ELGA_TEMP','SOUR_ELGA_ELEC',)", - TEMP =SIMP(statut='o',typ=(cham_no_temp_r,)), - ), - - b_acoustique =BLOC(condition="OPTION in ('PRES_ELNO_DBEL','PRES_ELNO_REEL','PRES_ELNO_IMAG',)", - PRES =SIMP(statut='o',typ=(cham_no_pres_c,)), - ), - - - - EXCIT =FACT(statut='f',min=1,max='**', - regles=(EXCLUS('FONC_MULT','COEF_MULT', ),), - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou)), - FONC_MULT =SIMP(statut='f',typ=fonction), - COEF_MULT =SIMP(statut='f',typ='R'), ), - - INST =SIMP(statut='f',typ='R',defaut= 0.E+0), - ACCE =SIMP(statut='f',typ=cham_no_depl_r), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def calc_char_cine_prod(CHAR_CINE,**args): - if AsType(CHAR_CINE) == char_cine_meca : return cham_no_depl_r - if AsType(CHAR_CINE) == char_cine_ther : return cham_no_temp_r - if AsType(CHAR_CINE) == char_cine_acou : return cham_no_pres_c - raise AsException("type de concept resultat non prevu") - -CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=calc_char_cine_prod, - fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)", - docu="U4.61.03-f",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - NUME_DDL =SIMP(statut='o',typ=nume_ddl ), - CHAR_CINE =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ) ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def calc_char_seisme_prod(MATR_MASS,**args ): - if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_depl_r - raise AsException("type de concept resultat non prevu") - -CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_prod, - docu="U4.63.01-f",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),), - MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ), - DIRECTION =SIMP(statut='o',typ='R',max=6,fr="Directions du séisme imposé"), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - b_mode_stat =BLOC ( condition = "MODE_STAT != None", - regles=(UN_PARMI('NOEUD','GROUP_NO' ),), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -def calc_elem_prod(RESULTAT,**args): - if AsType(RESULTAT) != None : return AsType(RESULTAT) - raise AsException("type de concept resultat non prevu") - -CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,docu="U4.81.01-g",reentrant='f', - UIinfo={"groupes":("Post traitements",)}, - fr="Compléter un résultat en calculant des champs par éléments (contraintes, déformations,... )", - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - - INST =SIMP(statut='f',typ='R',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - LIST_FREQ =SIMP(statut='f',typ=listr8), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - - LIST_ORDRE =SIMP(statut='f',typ=listis), - - OPTION =SIMP(statut='o',typ='TXM',max='**', - into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "SIGM_ELNO_TUYO","SIGM_ELNO_CART","DEGE_ELNO_DEPL","EFGE_ELNO_CART", - "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL", - "EPSP_ELNO","EPSP_ELGA","ECIN_ELEM_DEPL","SIPO_ELNO_DEPL", - "EPGR_ELNO","EPGR_ELGA","DURT_ELGA_META","DURT_ELNO_META", - "SIGM_ELNO_COQU","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF", - "SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2", - "VNOR_ELEM_DEPL","SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA", - "VARI_ELNO_ELGA","VARI_ELNO_TUYO","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM", - "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","ENEL_ELGA","ENEL_ELNO_ELGA","SIEF_ELNO_ELGA", - "DEUL_ELGA_TEMP","DETE_ELNO_DLTE","DEUL_ELGA_DEPL","DEDE_ELNO_DLDE", - "DESI_ELNO_DLSI","PMPB_ELNO_SIEF","PMPB_ELGA_SIEF", - "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","HYDR_ELNO_ELGA", - "SOUR_ELGA_ELEC","VARI_ELNO_COQU","CRIT_ELNO_RUPT", - "PRES_ELNO_DBEL","PRES_DBEL_DEPL","PRES_ELNO_REEL","PRES_ELNO_IMAG", - "INTE_ELNO_ACTI","INTE_ELNO_REAC","ERTH_ELEM_TEMP","ERTH_ELNO_ELEM", - "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","VALE_NCOU_MAXI" - ) ), - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca, - mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc, - evol_noli,mult_elas,fourier_elas, - evol_ther,base_modale, - acou_harmo,mode_acou,mode_flamb) ), - EXCIT =FACT(statut='f',min=1,max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ), - FONC_MULT =SIMP(statut='f',typ=fonction), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ), - NORME =SIMP(statut='f',typ='TXM',defaut="VMIS", - into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ), - - ANGLE =SIMP(statut='f',typ='I',defaut= 0 ), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - b_maxi =BLOC( condition = "OPTION=='VALE_NCOU_MAXI'", - NOM_CHAM =SIMP(statut='o',typ='TXM',max=1 ), - NOM_CMP =SIMP(statut='o',typ='TXM',max=1 ),), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== -def calc_fatigue_prod(TYPE_CALCUL,**args): - if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem_dommag - if TYPE_CALCUL == "FATIGUE_MULTI" : return cham_elem_facy_r - raise AsException("type de calcul non prevu") - -CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n', - fr="Calcul d un cham de dommage ou d un cisaillement maximal dans le plan critique.", - docu="U4.83.02-d", - UIinfo={"groupes":("Post traitements",)}, - - TYPE_CALCUL = SIMP(statut='o',typ='TXM', - into=("CUMUL_DOMMAGE","FATIGUE_MULTI",) ), - - b_cumul_domma =BLOC(condition = "TYPE_CALCUL == 'CUMUL_DOMMAGE'", - fr="Calcul d un champ de dommage subi par une structure.", - regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),), - OPTION =SIMP(statut='o',typ='TXM', - into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM", - "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI", - "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ), - HISTOIRE =FACT(statut='o',min=1,max=1, - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans, - evol_noli) ), - EQUI_GD =SIMP(statut='f',typ='TXM',defaut="VMIS_SG", - into=("VMIS_SG","INVA_2_SG") ), - ), - DOMMAGE =SIMP(statut='o',typ='TXM', - into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON", - "TAHERI_MIXTE",) ), - MATER =SIMP(statut='o',typ=(mater) ), - TAHERI_NAPPE =SIMP(statut='f',typ=(fonction) ), - TAHERI_FONC =SIMP(statut='f',typ=(fonction) ), - ), - - b_fatigue_multi =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'", - fr="Plan critique dans le cas de la fatigue multiaxiale a grand nombre de cycles.", - RESULTAT =SIMP(statut='o',typ=(evol_elas, evol_noli) ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE",) ), - METHODE =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu, - docu="U4.66.02-e",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - VITE_FLUI =FACT(statut='o',min=1,max=1, - fr="Définir la plage de vitesse fluide étudiée", - VITE_MIN =SIMP(statut='o',typ='R' ), - VITE_MAX =SIMP(statut='o',typ='R' ), - NB_POIN =SIMP(statut='o',typ='I' ), - ), - BASE_MODALE =FACT(statut='o',min=1,max=1, - - regles=(UN_PARMI('AMOR_REDUIT','AMOR_UNIF'),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - AMOR_UNIF =SIMP(statut='f',typ='R' ), - ), - TYPE_FLUI_STRU =SIMP(statut='o',typ=type_flui_stru ), - IMPRESSION =FACT(statut='f',min=1,max=1, - fr="Choix des informations à imprimer dans le fichier RESULTAT", - PARA_COUPLAGE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - DEFORMEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=fonction, - docu="U4.32.01-e",reentrant='f', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE_R','LIST_PARA'),), - FONCTION =SIMP(statut='o',typ=fonction ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - VALE_R =SIMP(statut='f',typ='R',max='**'), - LIST_PARA =SIMP(statut='f',typ=listr8 ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG","INT") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -def calc_fonction_prod(DERIVE,EXTRACTION,INTEGRE,RMS,NOCI_SEISME,MAX,COMB,COMB_C,ENVELOPPE, - SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE,LISS_ENVELOP,NORME, **args): - if (RMS != None) : return tabl_fonc_rms - if (MAX != None) : return tabl_fonc_max - if (NOCI_SEISME != None): return tabl_fonc_noci - if (INTEGRE != None) : return fonction - if (DERIVE != None) : return fonction - if (COMB != None) : return fonction - if (ENVELOPPE != None) : return fonction - if (EXTRACTION != None) : return fonction - if (SPEC_OSCI != None) : return fonction - if (COMB_C != None) : return fonction_c - if (COMPOSE != None) : return fonction - if (ASSE != None) : return fonction - if (FFT != None) : - vale=FFT.get_child('FONCTION').get_valeur() - if (AsType(vale) == fonction ) : return fonction_c - if (AsType(vale) == fonction_c) : return fonction - if (CORR_ACCE != None) : return fonction - if (LISS_ENVELOP != None) : return fonction - if (PUISSANCE != None) : return fonction - if (NORME != None) : return table - raise AsException("type de concept resultat non prevu") - -CALC_FONCTION=OPER(nom="CALC_FONCTION",op= 91,sd_prod=calc_fonction_prod - ,fr="Opérations mathématiques sur des concepts de type fonction", - docu="U4.32.04-f",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','MAX','COMB','COMB_C','ENVELOPPE','RMS', - 'NOCI_SEISME','COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE', - 'NORME','LISS_ENVELOP'),), - FFT =FACT(statut='f',min=1,max=1,fr="Calcul de la transformee de Fourier ou de son inverse", - FONCTION =SIMP(statut='o',typ=(fonction,fonction_c) ) - ), - DERIVE =FACT(statut='f',min=1,max=1,fr="Calcul de la dérivée d une fonction", - METHODE =SIMP(statut='f',typ='TXM',defaut="DIFF_CENTREE",into=("DIFF_CENTREE",) ), - FONCTION =SIMP(statut='o',typ=fonction ), - ), - INTEGRE =FACT(statut='f',min=1,max=1,fr="Calcul de l intégrale d une fonction", - METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), - FONCTION =SIMP(statut='o',typ=fonction), - COEF =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ), - ), - RMS =FACT(statut='f',min=1,max=1,fr="Calcul de la valeur RMS d une fonction", - METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), - FONCTION =SIMP(statut='o',typ=fonction ), - INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ), - INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - NOCI_SEISME =FACT(statut='f',min=1,max=1, - FONCTION =SIMP(statut='f',typ=fonction ), - SPEC_OSCI =SIMP(statut='f',typ=fonction ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",max='**', - into=("INTE_ARIAS","POUV_DEST","INTE_SPEC","VITE_ABSO_CUMU", - "DUREE_PHAS_FORT","MAXI","ACCE_SUR_VITE","TOUT",) ), - INST_INIT =SIMP(statut='f',typ='R'), - INST_FIN =SIMP(statut='f',typ='R'), - NATURE =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE") ), - COEF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PESANTEUR =SIMP(statut='f',typ='R',defaut= 9.81E+0 ), - FREQ_INIT =SIMP(statut='f',typ='R',defaut= 4.E-1 ), - FREQ_FIN =SIMP(statut='f',typ='R',defaut= 10.E+0 ), - AMOR_REDUIT =SIMP(statut='f',typ='R'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - FREQ =SIMP(statut='f',typ='R',max='**'), - NORME =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - BORNE_INF =SIMP(statut='f',typ='R',defaut= 0.05E+0 ), - BORNE_SUP =SIMP(statut='f',typ='R',defaut= 0.95E+0 ), - b_acce_reel =BLOC(condition="(INST_INIT != None)or(INST_FIN != None)or(FREQ_INIT != None)or(FREQ_FIN != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - LISS_ENVELOP = FACT(statut='f',min=1,max=1,fr="Lissage d une enveloppe", - FONCTION =SIMP(statut='o',typ=fonction ), - AMOR =SIMP(statut='f',typ='R',max='**'), - FREQ_MIN =SIMP(statut='f',typ='R'), - 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 ), - AMOR_ECH =SIMP(statut='f',typ='R',max='**'), - ), - ), - SPEC_OSCI =FACT(statut='f',min=1,max=1,fr="Calcul du spectre d oscillateur", - METHODE =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ), - FONCTION =SIMP(statut='o',typ=fonction ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - FREQ =SIMP(statut='f',typ='R',max='**'), - NORME =SIMP(statut='f',typ='R',defaut= 9.81E+0,fr="Valeur de la norme du spectre d oscillateur" ), - NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ), - NATURE_FONC =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ), - ), - MAX =FACT(statut='f',min=1,max=1,fr="Calcul des extrémas locaux d une fonction", - FONCTION =SIMP(statut='o',typ=fonction ), - ), - COMB =FACT(statut='f',min=1,max='**',fr="Calcul d une combinaison linéaire réelle de fonctions", - FONCTION =SIMP(statut='o',typ=fonction ), - COEF =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), - ), - COMB_C =FACT(statut='f',min=1,max='**',fr="Calcul d une combinaison linéaire complexe de fonctions", - regles=(UN_PARMI('COEF_R','COEF_C'),), - FONCTION =SIMP(statut='o',typ=(fonction, fonction_c) ), - COEF_R =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), - COEF_C =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ), - ), - b_comb =BLOC ( condition = " (COMB != None) or (COMB_C != None)", - LIST_PARA =SIMP(statut='f',typ=listr8 ), - ), - COMPOSE =FACT(statut='f',min=1,max=1,fr="Calcul de la composition de deux fonctions FONC_RESU(FONC_PARA)", - FONC_RESU =SIMP(statut='o',typ=fonction), - FONC_PARA =SIMP(statut='o',typ=fonction), - ), - EXTRACTION =FACT(statut='f',min=1,max=1,fr="Opération d extraction sur une fonction complexe", - FONCTION =SIMP(statut='o',typ=fonction_c), - PARTIE =SIMP(statut='o',typ='TXM',into=("REEL","IMAG","MODULE","PHASE"),fr="Partie à extraire"), - ), - ENVELOPPE =FACT(statut='f',min=1,max=1,fr="Calcul de l enveloppe d une famille de fonctions", - FONCTION =SIMP(statut='o',typ=fonction,max='**' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ), - ), - ASSE =FACT(statut='f',min=1,max=1,fr="Création à partir de la concatenation de fonctions", - FONCTION =SIMP(statut='o',typ=fonction,max='**' ), - SURCHARGE =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")), - ), - CORR_ACCE =FACT(statut='f',min=1,max=1,fr="Correction d un accelerogramme reel", - CORR_DEPL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - FONCTION =SIMP(statut='o',typ=fonction ), - ), - PUISSANCE =FACT(statut='f',min=1,max=1,fr="Cacul du carré d'une fonction", - FONCTION =SIMP(statut='o', typ=fonction), - EXPOSANT =SIMP(statut='f', typ='I', defaut=1 ), - ), - NORME =FACT(statut='f',min=1,max=1,fr="Cacul de la norme L2 d'une fonction", - FONCTION =SIMP(statut='o', typ=fonction), - ), - NOM_PARA =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS", - "AMOR","ABSC") ), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS", - "AMOR","ABSC") ), - INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene, - fr="calcul de la force ajoutee ", - docu="U4.66.03-a",reentrant ='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - - regles=(EXCLUS('MODE_MECA','MODELE_GENE'), - PRESENT_PRESENT( 'MODELE_GENE','NUME_DDL_GENE'), - UN_PARMI('MONO_APPUI', 'NOEUD','GROUP_NO'), - UN_PARMI('MONO_APPUI','MODE_STAT')), - - MODELE_FLUIDE =SIMP(statut='o',typ=modele ), - MODELE_INTERFACE=SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_ther ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ), - DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NUME_MODE_MECA =SIMP(statut='f',typ='I',max='**'), - POTENTIEL =SIMP(statut='f',typ=evol_ther ), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - - DIRECTION =SIMP(statut='o',typ='R',max=3), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",),), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - - SOLVEUR =FACT(statut='d',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0), ), - - ) ; -#& MODIF COMMANDE DATE 16/03/2004 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",docu="U4.82.04-f",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - regles=(UN_PARMI('RESULTAT','DEPL'), - UN_PARMI('R_INF','R_INF_FO'), - PRESENT_PRESENT('R_INF','R_SUP'), - PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ), - FOND_FISS =SIMP(statut='o',typ=fond_fiss), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli),), - b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - - CHARGE =SIMP(statut='f',typ=char_meca,max='**'), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ), - - COMP_ELAS =FACT(statut='f',min=1,max=1, - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - - COMP_INCR =FACT(statut='f',min=1,max=1, - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - - ETAT_INIT =FACT(statut='f',min=1,max=1, - SIGM =SIMP(statut='f',typ=cham_elem_sief_r), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - ), - - OPTION =SIMP(statut='f',typ='TXM',defaut="CALC_G", - into=("CALC_G","CALC_G_LGLO","G_BILINEAIRE","CALC_G_MAX") ), - b_g =BLOC(condition="OPTION=='CALC_G'", - LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO",) ), - ), - b_g_lglo =BLOC(condition="OPTION=='CALC_G_LGLO'", - PROPAGATION =SIMP(statut='o',typ='R'), - THETA =SIMP(statut='o',typ=theta_geom), - DIRE_THETA =SIMP(statut='f',typ=cham_no_depl_r), - LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO",) ), - ), - b_g_bilin =BLOC(condition="OPTION=='G_BILINEAIRE'", - LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - ), - b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'", - BORNES =FACT(statut='o',min=1,max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ), - ), - - DEGRE =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ), - - R_INF =SIMP(statut='f',typ='R'), - R_SUP =SIMP(statut='f',typ='R'), - R_INF_FO =SIMP(statut='f',typ=fonction), - R_SUP_FO =SIMP(statut='f',typ=fonction), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 16/03/2004 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", - docu="U4.82.03-f",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - regles=(UN_PARMI('RESULTAT','DEPL'), - EXCLUS('COMP_ELAS','COMP_INCR'),), - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - THETA =SIMP(statut='o',typ=theta_geom), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli),), - - b_extrac =BLOC(condition="RESULTAT != None",fr="extraction d un champ", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - - CHARGE =SIMP(statut='f',typ=char_meca,max='**'), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ), - - COMP_ELAS =FACT(statut='f',min=1,max=1, - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - COMP_INCR =FACT(statut='f',min=1,max=1, - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - ETAT_INIT =FACT(statut='f',min=1,max=1, - SIGM =SIMP(statut='f',typ=cham_elem_sief_r), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="CALC_G", - into=("CALC_G","CALC_G_LAGR","CALC_K_G","G_BILINEAIRE","CALC_G_MAX","CALC_DG",) ), - b_calc_g_max =BLOC(condition="OPTION=='CALC_G_MAX'", - BORNES =FACT(statut='o',min=1,max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - ), - b_calc_k_g =BLOC(condition="OPTION=='CALC_K_G'", - 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_calc_dg =BLOC(condition="OPTION=='CALC_DG'", - SENSIBILITE =FACT(statut='f',min=1,max=1, - THETA =SIMP(statut='o',typ=theta_geom ), - ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp, - fr="Calcul d une matrice interspectrale d une fonction du temps", - docu="U4.36.03-f",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - INST_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - INST_FIN =SIMP(statut='o',typ='R' ), - DUREE_ANALYSE =SIMP(statut='f',typ='R' ), - DUREE_DECALAGE =SIMP(statut='f',typ='R' ), - NB_POIN =SIMP(statut='o',typ='I' ), - FONCTION =SIMP(statut='o',typ=fonction,max='**' ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r, - fr="Calcul des matrices de masse, d amortissement ou de raideur ajoutées", - docu="U4.66.01-d",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'), - PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'), - PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),), - MODELE_FLUIDE =SIMP(statut='o',typ=modele ), - MODELE_INTERFACE=SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_ther ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - CHAM_NO =SIMP(statut='f',typ=cham_no_depl_r ), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ), - DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NUME_MODE_MECA =SIMP(statut='f',typ='I',max='**'), - OPTION =SIMP(statut='o',typ='TXM',into=("MASS_AJOU","AMOR_AJOU","RIGI_AJOU") ), - POTENTIEL =SIMP(statut='f',typ=evol_ther ), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - - SOLVEUR =FACT(statut='d',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def calc_matr_elem_prod(OPTION,**args): - if OPTION == "RIGI_MECA" : return matr_elem_depl_r - if OPTION == "RIGI_FLUI_STRU" : return matr_elem_depl_r - if OPTION == "RIGI_MECA_LAGR" : return matr_elem_depl_r - if OPTION == "MASS_ID_MDEP_R" : return matr_elem_depl_r - if OPTION == "MASS_ID_MDNS_R" : return matr_elem_depl_r - if OPTION == "MASS_ID_MTEM_R" : return matr_elem_temp_r - if OPTION == "MASS_ID_MTNS_R" : return matr_elem_temp_r - if OPTION == "MASS_MECA" : return matr_elem_depl_r - if OPTION == "MASS_FLUI_STRU" : return matr_elem_depl_r - if OPTION == "RIGI_GEOM" : return matr_elem_depl_r - if OPTION == "RIGI_ROTA" : return matr_elem_depl_r - if OPTION == "AMOR_MECA" : return matr_elem_depl_r - if OPTION == "IMPE_MECA" : return matr_elem_depl_r - if OPTION == "ONDE_FLUI" : return matr_elem_depl_r - if OPTION == "RIGI_MECA_HYST" : return matr_elem_depl_c - if OPTION == "RIGI_THER" : return matr_elem_temp_r - if OPTION == "MASS_THER" : return matr_elem_temp_r - if OPTION == "MASS_MECA_DIAG" : return matr_elem_depl_r - if OPTION == "RIGI_ACOU" : return matr_elem_pres_c - if OPTION == "MASS_ACOU" : return matr_elem_pres_c - if OPTION == "AMOR_ACOU" : return matr_elem_pres_c - raise AsException("type de concept resultat non prevu") - -CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod - ,fr="Calcul des matrices élémentaires",docu="U4.61.01-g",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - OPTION =SIMP(statut='o',typ='TXM', - into=("RIGI_MECA","MASS_MECA","RIGI_GEOM", - "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA", - "ONDE_FLUI","MASS_FLUI_STRU","RIGI_FLUI_STRU", - "RIGI_ROTA","MASS_MECA_DIAG","RIGI_ACOU", - "MASS_ID_MDEP_R","MASS_ID_MDNS_R","MASS_ID_MTEM_R","MASS_ID_MTNS_R", - "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST", - "RIGI_MECA_LAGR") ), - - b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'", - regles=(AU_MOINS_UN('MODELE','CHARGE' ),), - MODELE =SIMP(statut='f',typ=modele ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CHARGE =SIMP(statut='f',typ=char_meca,max='**' ), - b_charge =BLOC (condition = "CHARGE != None", - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ), - - b_rigi_meca_lagr =BLOC(condition = "OPTION=='RIGI_MECA_LAGR'", - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_meca,max='**' ), - b_charge =BLOC(condition = "CHARGE != None", - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - THETA =SIMP(statut='o',typ=theta_geom ), - PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')", - regles=(AU_MOINS_UN('MODELE','CHARGE'),), - MODELE =SIMP(statut='f',typ=modele ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - ), - CHARGE =SIMP(statut='f',typ=char_meca,max='**' ), - b_charge =BLOC(condition = "CHARGE != None", - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ), - - b_mass_identite =BLOC(condition = "(OPTION in ('MASS_ID_MDEP_R','MASS_ID_MTEM_R','MASS_ID_MDNS_R','MASS_ID_MTNS_R')) ", - MODELE =SIMP(statut='o',typ=modele ), - # j'ajoute ces 2 mot clés inutiles à cause de l'alarme pas assez subtile de MEDOME - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - ), - - b_rigi_geom =BLOC(condition = "OPTION=='RIGI_GEOM'", - MODELE =SIMP(statut='o',typ=modele ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - - b_rigi_rota =BLOC(condition = "OPTION=='RIGI_ROTA'", - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca,max='**' ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_amor_meca =BLOC(condition = "OPTION=='AMOR_MECA'", - regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'), - ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ), - MODELE =SIMP(statut='o',typ=modele ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - CHARGE =SIMP(statut='f',typ=char_meca,max='**' ), - ), - - b_rigi_meca_hyst =BLOC( condition = "OPTION=='RIGI_MECA_HYST'", - MODELE =SIMP(statut='o',typ=modele ), - CHARGE =SIMP(statut='f',typ=char_meca ,max='**' ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - RIGI_MECA =SIMP(statut='o',typ=matr_elem_depl_r ), - ), - - b_rigi_ther =BLOC(condition = "OPTION=='RIGI_THER'", - regles=(AU_MOINS_UN('MODELE','CHARGE' ),), - MODELE =SIMP(statut='f',typ=modele ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CHARGE =SIMP(statut='f',typ=char_ther,max='**' ), - ), - - b_mass_ther =BLOC(condition = "OPTION=='MASS_THER'", - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - ), - - b_rigi_acou =BLOC(condition = "(OPTION=='RIGI_ACOU') or (OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')", - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_acou ,max='**' ), - ), - - b_rigi_flui =BLOC(condition = "(OPTION=='RIGI_FLUI_STRU') or (OPTION=='MASS_FLUI_STRU')", - MODELE =SIMP(statut='o',typ=modele ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca ,max='**' ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_impe_meca =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')", - MODELE =SIMP(statut='o',typ=modele ), - CHARGE =SIMP(statut='o',typ=char_meca,max='**' ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,docu="U4.85.01-b",reentrant='o', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcule la métallurgie a partir du résultat du calcul thermique", - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - RESULTAT =SIMP(statut='o',typ=evol_ther ), - ETAT_INIT =FACT(statut='o',min=1,max=1, - regles=(UN_PARMI('NUME_INIT', 'INST_INIT', 'META_INIT',),), - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - NUME_INIT =SIMP(statut='f',typ='I' ), - INST_INIT =SIMP(statut='f',typ='R'), - b_inst =BLOC(condition="(INST_INIT != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - META_INIT =SIMP(statut='f',typ=carte_var2_r ), - ), - COMP_INCR =FACT(statut='o',min=1,max='**', - RELATION =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ), - ACIER =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma), - ), - OPTION =SIMP(statut='f',typ='TXM' - ,into=("META_ELNO_TEMP",) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -def calc_no_prod(RESULTAT,**args): - if AsType(RESULTAT) != None : return AsType(RESULTAT) - raise AsException("type de concept resultat non prevu") - -CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,docu="U4.81.02-f",reentrant='o', - UIinfo={"groupes":("Post traitements",)}, - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, - mode_acou,mode_stat,mode_stat_depl,mode_stat_acce, - mode_stat_forc,evol_ther,evol_noli,base_modale, - mult_elas,fourier_elas,mode_flamb ) ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - INST =SIMP(statut='f',typ='R',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - LIST_FREQ =SIMP(statut='f',typ=listr8), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - LIST_ORDRE =SIMP(statut='f',typ=listis), - - OPTION =SIMP(statut='o',typ='TXM',max='**', - into=("FORC_NODA","REAC_NODA", - "DCHA_NOEU_SIGM", - "DEGE_NOEU_DEPL", - "DETE_NOEU_DLTE", - "DEDE_NOEU_DLDE", - "DESI_NOEU_DLSI", - "DURT_NOEU_META", - "EFGE_NOEU_CART","EFGE_NOEU_DEPL", - "ENDO_NOEU_SINO", - "ENEL_NOEU_ELGA", - "EPMG_NOEU_DEPL", - "EPSA_NOEU", - "EPSG_NOEU" ,"EPSG_NOEU_DEPL", - "EPSI_NOEU_DEPL","EPSI_NOEU_DPGE", - "EPSP_NOEU" ,"EPSP_NOEU_ZAC", - "EQUI_NOEU_EPME","EQUI_NOEU_EPSI","EQUI_NOEU_SIGM", - "ERRE_NOEU_ELGA", - "FLUX_NOEU_TEMP", - "GRAD_NOEU_THETA", - "HYDR_NOEU_ELGA", - "INTE_NOEU_ACTI","INTE_NOEU_REAC", - "META_NOEU_TEMP", - "PMPB_NOEU_SIEF", - "PRES_NOEU_DBEL","PRES_NOEU_IMAG","PRES_NOEU_REEL", - "RADI_NOEU_SIGM", - "SIEF_NOEU" ,"SIEF_NOEU_ELGA", - "SIGM_NOEU_CART","SIGM_NOEU_COQU","SIGM_NOEU_DEPL","SIGM_NOEU_DPGE", - "SIGM_NOEU_SIEF","SIGM_NOEU_VARI","SIGM_NOEU_ZAC", - "SIPO_NOEU_DEPL","SIPO_NOEU_SIEF", - "SIRE_NOEU_DEPL", - "VARI_NOEU" ,"VARI_NOEU_ELGA",) ), - - b_forc_reac =BLOC(condition = """(OPTION == 'FORC_NODA') or (type(OPTION) == type(()) and 'FORC_NODA' in OPTION) or\ - (OPTION == 'REAC_NODA') or (type(OPTION) == type(()) and 'REAC_NODA' in OPTION)""", - MODELE =SIMP(statut='o',typ=modele), - ), - - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='f',min=1,max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ), - FONC_MULT =SIMP(statut='f',typ=fonction), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV") ), - ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,docu="U4.82.02-e",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) ), - THETA_3D =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - UN_PARMI('MODULE','MODULE_FO'), - ENSEMBLE('MODULE','R_INF','R_SUP'), - ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - MODULE =SIMP(statut='f',typ='R'), - R_INF =SIMP(statut='f',typ='R'), - R_SUP =SIMP(statut='f',typ='R'), - MODULE_FO =SIMP(statut='f',typ=fonction), - R_INF_FO =SIMP(statut='f',typ=fonction), - R_SUP_FO =SIMP(statut='f',typ=fonction), - ), - 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',min=1,max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - MODULE =SIMP(statut='o',typ='R'), - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - THETA_BANDE =FACT(statut='f',min=1,max='**', - MODULE =SIMP(statut='o',typ='R'), - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - GRAD_NOEU_THETA =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - IMPRESSION =FACT(statut='f',min=1,max=1, - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def calc_vect_elem_prod(OPTION,**args): - if OPTION == "CHAR_MECA" : return vect_elem_depl_r - if OPTION == "CHAR_MECA_LAGR" : return vect_elem_depl_r - if OPTION == "CHAR_THER" : return vect_elem_temp_r - if OPTION == "CHAR_ACOU" : return vect_elem_pres_c - if OPTION == "FORC_NODA" : return vect_elem_depl_r - raise AsException("type de concept resultat non prevu") - -CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,docu="U4.61.02-g",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Calcul des seconds membres élémentaires", - OPTION =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU", - "FORC_NODA","CHAR_MECA_LAGR") ), - b_char_meca =BLOC(condition = "OPTION=='CHAR_MECA'", - regles=(AU_MOINS_UN('CHARGE','MODELE'),), - CHARGE =SIMP(statut='f',typ=char_meca,max='**'), - MODELE =SIMP(statut='f',typ=modele), - b_charge =BLOC(condition = "CHARGE != None", fr="modèle ne contenant pas de sous-structure", - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - b_modele =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure", - SOUS_STRUC =FACT(statut='o',min=01, - regles=(UN_PARMI('TOUT','MAILLE'),), - CAS_CHARGE =SIMP(statut='o',typ='TXM' ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**',), - ), - ), - ), - b_char_ther =BLOC(condition = "OPTION=='CHAR_THER'", - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHARGE =SIMP(statut='o',typ=char_ther,max='**'), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_char_acou =BLOC(condition = "OPTION=='CHAR_ACOU'", - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CHARGE =SIMP(statut='o',typ=char_acou,max='**'), - ), - - b_forc_noda =BLOC(condition = "OPTION=='FORC_NODA'", - SIEF_ELGA =SIMP(statut='o',typ=cham_elem_sief_r), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - MODELE =SIMP(statut='f',typ=modele), - ), - - b_meca_lagr =BLOC(condition = "OPTION=='CHAR_MECA_LAGR'", - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - THETA =SIMP(statut='o',typ=theta_geom), - PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - CHARGE =SIMP(statut='f',typ=char_meca,max='**'), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -def comb_cham_elem_prod(COMB_R=None,COMB_C=None,COMB_FOURIER=None,**args): - - if COMB_R != None: - vale=COMB_R.get_child('CHAM_ELEM').get_valeur() - elif COMB_C != None: - vale=COMB_C.get_child('CHAM_ELEM').get_valeur() - elif COMB_FOURIER != None: - vale=COMB_FOURIER.get_child('CHAM_ELEM').get_valeur() - else : - raise AsException("type de concept resultat non prevu") - - if AsType(vale) == cham_elem_sief_r : return cham_elem_sief_r - if AsType(vale) == cham_elem_flux_r : return cham_elem_flux_r - if AsType(vale) == cham_elem_epsi_r : return cham_elem_epsi_r - if AsType(vale) == cham_elem_ener_r : return cham_elem_ener_r - if AsType(vale) == cham_elem_crit_r : return cham_elem_crit_r - if AsType(vale) == cham_elem_dbel_r : return cham_elem_dbel_r - if AsType(vale) == cham_elem_pres_r : return cham_elem_pres_r - if AsType(vale) == cham_elem_sief_c : return cham_elem_sief_c - raise AsException("type de concept resultat non prevu") - -COMB_CHAM_ELEM=OPER(nom="COMB_CHAM_ELEM",op= 139,sd_prod=comb_cham_elem_prod,reentrant='f', - fr="Combinaison linéaire de champs par éléments",docu="U4.72.03-f", - UIinfo={"groupes":("Résultats et champs",)}, - regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'), - PRESENT_PRESENT('COMB_FOURIER','ANGL'),), - COMB_R =FACT(statut='f',min=1,max='**', - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), - COEF_R =SIMP(statut='o',typ='R'), - CHAM_ELEM =SIMP(statut='o', - typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r, - cham_elem_ener_r,cham_elem_crit_r,cham_elem_dbel_r, - cham_elem_pres_r,cham_elem_sief_c ) ), - ), - COMB_C =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('COEF_R','COEF_C', ),), - COEF_R =SIMP(statut='f',typ='R'), - COEF_C =SIMP(statut='f',typ='C'), - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r) ), - ), - COMB_FOURIER =FACT(statut='f',min=1,max='**', - COEF_R =SIMP(statut='f',typ='R',defaut= 1.), - NUME_MODE =SIMP(statut='o',typ='I'), - TYPE_MODE =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ), - CHAM_ELEM =SIMP(statut='o',typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r ) ), - ), - ANGL =SIMP(statut='f',typ='R' ), -) ; - -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -def comb_cham_no_prod(COMB_R,COMB_C,COMB_FOURIER,**args): - if COMB_C != None: - type_mat = AsType(COMB_C.get_child('CHAM_NO').get_valeur()) - if type_mat in (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_c - if type_mat in (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_c - if type_mat in (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_c - elif COMB_R != None: - type_mat = AsType(COMB_R.get_child('CHAM_NO').get_valeur()) - if type_mat in (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_r - if type_mat in (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_r - if type_mat in (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_r - if type_mat == matr_asse_gene_r : return matr_asse_gene_r - elif COMB_FOURIER != None: - type_mat = AsType(COMB_FOURIER.get_child('CHAM_NO').get_valeur()) - if type_mat == cham_no_temp_r : return cham_no_temp_r - if type_mat == cham_no_depl_r : return cham_no_depl_r - raise AsException("type de concept resultat non prevu") - - -COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op= 30,sd_prod=comb_cham_no_prod - ,fr="Combinaison linéaire de champs aux noeuds", - docu="U4.72.02-g",reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, - regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),), - COMB_R =FACT(statut='f',min=1,max='**', - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG",) ), - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_temp_c,cham_no_depl_r,cham_no_depl_c - ,cham_no_pres_r,cham_no_pres_c ) ), - COEF_R =SIMP(statut='o',typ='R' ), - ), - COMB_C =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('COEF_R','COEF_C' ),), - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r,cham_no_temp_c - ,cham_no_depl_c,cham_no_pres_c ) ), - COEF_R =SIMP(statut='f',typ='R' ), - COEF_C =SIMP(statut='f',typ='C' ), - ), - COMB_FOURIER =FACT(statut='f',min=1,max='**', - CHAM_NO =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r) ), - COEF_R =SIMP(statut='f',typ='R',defaut= 1. ), - NUME_MODE =SIMP(statut='o',typ='I' ), - TYPE_MODE =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ), - ), - b_angl = BLOC ( condition = "COMB_FOURIER != None", - ANGL =SIMP(statut='o',typ='R' ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier, - docu="U4.83.31-d",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - RESULTAT =SIMP(statut='o',typ=fourier_elas ), - ANGL =SIMP(statut='o',typ='R',max='**'), - NOM_CHAM =SIMP(statut='o',typ='TXM',max=5, - into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args): - if COMB_C != None: - type_mat = AsType(COMB_C.get_child('MATR_ASSE').get_valeur()) - if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_c - if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_c - if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c - if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c - elif COMB_R != None: - type_mat = AsType(COMB_R.get_child('MATR_ASSE').get_valeur()) - if type_mat in (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r - if type_mat in (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r - if type_mat in (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r - if type_mat in (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r - elif CALC_AMOR_GENE != None: return matr_asse_gene_r - raise AsException("type de concept resultat non prevu") - -COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op= 31,sd_prod=comb_matr_asse_prod, - fr="Combinaison linéaire de matrices assemblées", - docu="U4.72.01-g",reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, - regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),), - COMB_R =FACT(statut='f',min=1,max='**', - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c - ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ), - COEF_R =SIMP(statut='o',typ='R' ), - ), - COMB_C =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('COEF_R','COEF_C' ),), - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_temp_c - ,matr_asse_pres_r,matr_asse_pres_c,matr_asse_gene_r,matr_asse_gene_c ) ), - COEF_R =SIMP(statut='f',typ='R' ), - COEF_C =SIMP(statut='f',typ='C' ), - ), - CALC_AMOR_GENE =FACT(statut='f',min=1,max=1, - regles=(UN_PARMI('AMOR_REDUIT','LIST_AMOR' ),), - MASS_GENE = SIMP(statut='f', typ=matr_asse_gene_r), - RIGI_GENE = SIMP(statut='f', typ=matr_asse_gene_r), - AMOR_REDUIT = SIMP(statut='f',typ='R',max='**'), - LIST_AMOR = SIMP(statut='f',typ=listr8 ), - ), - SANS_CMP =SIMP(statut='f',typ='TXM',into=("LAGR",) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat, - fr="Réponse sismique par recombinaison modale par une méthode spectrale", - docu="U4.84.01-e",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'), - UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - b_freq =BLOC(condition = "FREQ != None or LIST_FREQ != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - MODE_CORR =SIMP(statut='f',typ=mode_stat_acce ), - - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8 ), - AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), - - MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ), - CORR_FREQ =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - - EXCIT =FACT(statut='o',min=1,max='**', - regles=(UN_PARMI('MONO_APPUI','NOEUD','GROUP_NO'), - UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),), - - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - AXE =SIMP(statut='f',fr="Excitation suivant un seul axe", - typ='R',max=3), - TRI_AXE =SIMP(statut='f',fr="Excitation suivant les trois axes mais avec le meme spectre", - typ='R',max=3), - TRI_SPEC =SIMP(statut='f',fr="Excitation suivant les trois axes avec trois spectres", - typ='TXM',into=("OUI",) ), - b_axe =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe", - SPEC_OSCI =SIMP(statut='o',typ=fonction,max=1 ), - ECHELLE =SIMP(statut='f',typ='R',max=1), - ), - b_tri_axe =BLOC(condition = "TRI_AXE != None",fr="Excitation suivant les trois axes mais avec le meme spectre", - SPEC_OSCI =SIMP(statut='o',typ=fonction,max=1 ), - ECHELLE =SIMP(statut='f',typ='R',max=1), - ), - b_tri_spec =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes avec trois spectres", - SPEC_OSCI =SIMP(statut='o',typ=fonction,min=3,max=3 ), - ECHELLE =SIMP(statut='f',typ='R',min=3,max=3), - ), - NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ), - ), - COMB_MODE =FACT(statut='o',min=1,max=1, - TYPE =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ), - DUREE =SIMP(statut='f',typ='R' ), - ), - COMB_DIRECTION =FACT(statut='f',min=1,max=1, - TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ), - ), - COMB_MULT_APPUI =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE",) ), - ), - COMB_DEPL_APPUI=FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','LIST_CAS'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - LIST_CAS =SIMP(statut='f',typ='I',max='**'), - TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ), - ), - DEPL_MULT_APPUI =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO'), - AU_MOINS_UN('DX','DY','DZ' ),), - NOM_CAS =SIMP(statut='o',typ='TXM',max='**'), - NUME_CAS =SIMP(statut='o',typ='I',max='**'), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,), ), - NOEUD_REFE =SIMP(statut='f',typ=no), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - ), - OPTION =SIMP(statut='o',typ='TXM',max=9, - into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "EFGE_ELNO_DEPL","REAC_NODA","FORC_NODA","EFGE_ELNO_CART", - "SIPO_ELNO_DEPL") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - IMPRESSION =FACT(statut='f',min=1,max='**', - regles=(EXCLUS('TOUT','NIVEAU'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NIVEAU =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),max=3 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# RESPONSABLE VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== -def crea_champ_prod(TYPE_CHAM,**args): - if TYPE_CHAM == "CART_DBEL_R" : return carte_dbel_r - if TYPE_CHAM == "CART_DEPL_C" : return carte_depl_c - if TYPE_CHAM == "CART_DEPL_F" : return carte_depl_f - if TYPE_CHAM == "CART_DEPL_R" : return carte_depl_r - if TYPE_CHAM == "CART_DURT_R" : return carte_durt_r - if TYPE_CHAM == "CART_ENER_R" : return carte_ener_r - if TYPE_CHAM == "CART_EPSI_R" : return carte_epsi_r - if TYPE_CHAM == "CART_ERREUR" : return carte_erreur - if TYPE_CHAM == "CART_FLUX_R" : return carte_flux_r - if TYPE_CHAM == "CART_GEOM_R" : return carte_geom_r - if TYPE_CHAM == "CART_G_DEPL_R" : return carte_g_depl_r - if TYPE_CHAM == "CART_HYDR_R" : return carte_hydr_r - if TYPE_CHAM == "CART_INST_R" : return carte_inst_r - if TYPE_CHAM == "CART_INTE_R" : return carte_inte_r - if TYPE_CHAM == "CART_META_R" : return carte_meta_r - if TYPE_CHAM == "CART_NEUT_F" : return carte_neut_f - if TYPE_CHAM == "CART_NEUT_R" : return carte_neut_r - if TYPE_CHAM == "CART_PRES_R" : return carte_pres_r - if TYPE_CHAM == "CART_SIEF_R" : return carte_sief_r - if TYPE_CHAM == "CART_SOUR_R" : return carte_sour_r - if TYPE_CHAM == "CART_TEMP_F" : return carte_temp_f - if TYPE_CHAM == "CART_TEMP_R" : return carte_temp_r - if TYPE_CHAM == "CART_VAR2_R" : return carte_var2_r - if TYPE_CHAM == "CART_VNOR_C" : return carte_vnor_c - if TYPE_CHAM == "NOEU_DBEL_R" : return cham_no_dbel_r - if TYPE_CHAM == "NOEU_DEPL_C" : return cham_no_depl_c - if TYPE_CHAM == "NOEU_DEPL_F" : return cham_no_depl_f - if TYPE_CHAM == "NOEU_DEPL_R" : return cham_no_depl_r - if TYPE_CHAM == "NOEU_DURT_R" : return cham_no_durt_r - if TYPE_CHAM == "NOEU_ENER_R" : return cham_no_ener_r - if TYPE_CHAM == "NOEU_EPSI_R" : return cham_no_epsi_r - if TYPE_CHAM == "NOEU_ERREUR" : return cham_no_erreur - if TYPE_CHAM == "NOEU_FLUX_R" : return cham_no_flux_r - if TYPE_CHAM == "NOEU_GEOM_R" : return cham_no_geom_r - if TYPE_CHAM == "NOEU_G_DEPL_R" : return cham_no_g_depl_r - if TYPE_CHAM == "NOEU_HYDR_R" : return cham_no_hydr_r - if TYPE_CHAM == "NOEU_INST_R" : return cham_no_inst_r - if TYPE_CHAM == "NOEU_INTE_R" : return cham_no_inte_r - if TYPE_CHAM == "NOEU_META_R" : return cham_no_meta_r - if TYPE_CHAM == "NOEU_NEUT_F" : return cham_no_neut_f - if TYPE_CHAM == "NOEU_NEUT_R" : return cham_no_neut_r - if TYPE_CHAM == "NOEU_PRES_R" : return cham_no_pres_r - if TYPE_CHAM == "NOEU_SIEF_R" : return cham_no_sief_r - if TYPE_CHAM == "NOEU_SOUR_R" : return cham_no_sour_r - if TYPE_CHAM == "NOEU_TEMP_F" : return cham_no_temp_f - if TYPE_CHAM == "NOEU_TEMP_R" : return cham_no_temp_r - if TYPE_CHAM == "NOEU_VAR2_R" : return cham_no_var2_r - if TYPE_CHAM == "NOEU_VNOR_C" : return cham_no_vnor_c - if TYPE_CHAM == "ELEM_DBEL_R" : return cham_elem_dbel_r - if TYPE_CHAM == "ELEM_DEPL_C" : return cham_elem_depl_c - if TYPE_CHAM == "ELEM_DEPL_F" : return cham_elem_depl_f - if TYPE_CHAM == "ELEM_DEPL_R" : return cham_elem_depl_r - if TYPE_CHAM == "ELEM_DURT_R" : return cham_elem_durt_r - if TYPE_CHAM == "ELEM_ENER_R" : return cham_elem_ener_r - if TYPE_CHAM == "ELEM_EPSI_R" : return cham_elem_epsi_r - if TYPE_CHAM == "ELEM_ERREUR" : return cham_elem_erreur - if TYPE_CHAM == "ELEM_FLUX_R" : return cham_elem_flux_r - if TYPE_CHAM == "ELEM_GEOM_R" : return cham_elem_geom_r - if TYPE_CHAM == "ELEM_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM == "ELEM_HYDR_R" : return cham_elem_hydr_r - if TYPE_CHAM == "ELEM_INST_R" : return cham_elem_inst_r - if TYPE_CHAM == "ELEM_INTE_R" : return cham_elem_inte_r - if TYPE_CHAM == "ELEM_META_R" : return cham_elem_meta_r - if TYPE_CHAM == "ELEM_NEUT_F" : return cham_elem_neut_f - if TYPE_CHAM == "ELEM_NEUT_R" : return cham_elem_neut_r - if TYPE_CHAM == "ELEM_PRES_R" : return cham_elem_pres_r - if TYPE_CHAM == "ELEM_SIEF_R" : return cham_elem_sief_r - if TYPE_CHAM == "ELEM_SOUR_R" : return cham_elem_sour_r - if TYPE_CHAM == "ELEM_TEMP_F" : return cham_elem_temp_f - if TYPE_CHAM == "ELEM_TEMP_R" : return cham_elem_temp_r - if TYPE_CHAM == "ELEM_VARI_R" : return cham_elem_vari_r - if TYPE_CHAM == "ELEM_VNOR_C" : return cham_elem_vnor_c - if TYPE_CHAM == "ELNO_DBEL_R" : return cham_elem_dbel_r - if TYPE_CHAM == "ELNO_DEPL_C" : return cham_elem_depl_c - if TYPE_CHAM == "ELNO_DEPL_F" : return cham_elem_depl_f - if TYPE_CHAM == "ELNO_DEPL_R" : return cham_elem_depl_r - if TYPE_CHAM == "ELNO_DURT_R" : return cham_elem_durt_r - if TYPE_CHAM == "ELNO_ENER_R" : return cham_elem_ener_r - if TYPE_CHAM == "ELNO_EPSI_R" : return cham_elem_epsi_r - if TYPE_CHAM == "ELNO_ERREUR" : return cham_elem_erreur - if TYPE_CHAM == "ELNO_FLUX_R" : return cham_elem_flux_r - if TYPE_CHAM == "ELNO_GEOM_R" : return cham_elem_geom_r - if TYPE_CHAM == "ELNO_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM == "ELNO_HYDR_R" : return cham_elem_hydr_r - if TYPE_CHAM == "ELNO_INST_R" : return cham_elem_inst_r - if TYPE_CHAM == "ELNO_INTE_R" : return cham_elem_inte_r - if TYPE_CHAM == "ELNO_META_R" : return cham_elem_meta_r - if TYPE_CHAM == "ELNO_NEUT_F" : return cham_elem_neut_f - if TYPE_CHAM == "ELNO_NEUT_R" : return cham_elem_neut_r - if TYPE_CHAM == "ELNO_PRES_R" : return cham_elem_pres_r - if TYPE_CHAM == "ELNO_SIEF_R" : return cham_elem_sief_r - if TYPE_CHAM == "ELNO_SOUR_R" : return cham_elem_sour_r - if TYPE_CHAM == "ELNO_TEMP_F" : return cham_elem_temp_f - if TYPE_CHAM == "ELNO_TEMP_R" : return cham_elem_temp_r - if TYPE_CHAM == "ELNO_VARI_R" : return cham_elem_vari_r - if TYPE_CHAM == "ELNO_VNOR_C" : return cham_elem_vnor_c - if TYPE_CHAM == "ELGA_DBEL_R" : return cham_elem_dbel_r - if TYPE_CHAM == "ELGA_DEPL_C" : return cham_elem_depl_c - if TYPE_CHAM == "ELGA_DEPL_F" : return cham_elem_depl_f - if TYPE_CHAM == "ELGA_DEPL_R" : return cham_elem_depl_r - if TYPE_CHAM == "ELGA_DURT_R" : return cham_elem_durt_r - if TYPE_CHAM == "ELGA_ENER_R" : return cham_elem_ener_r - if TYPE_CHAM == "ELGA_EPSI_R" : return cham_elem_epsi_r - if TYPE_CHAM == "ELGA_ERREUR" : return cham_elem_erreur - if TYPE_CHAM == "ELGA_FLUX_R" : return cham_elem_flux_r - if TYPE_CHAM == "ELGA_GEOM_R" : return cham_elem_geom_r - if TYPE_CHAM == "ELGA_G_DEPL_R" : return cham_elem_g_depl - if TYPE_CHAM == "ELGA_HYDR_R" : return cham_elem_hydr_r - if TYPE_CHAM == "ELGA_INST_R" : return cham_elem_inst_r - if TYPE_CHAM == "ELGA_INTE_R" : return cham_elem_inte_r - if TYPE_CHAM == "ELGA_META_R" : return cham_elem_meta_r - if TYPE_CHAM == "ELGA_NEUT_F" : return cham_elem_neut_f - if TYPE_CHAM == "ELGA_NEUT_R" : return cham_elem_neut_r - if TYPE_CHAM == "ELGA_PRES_R" : return cham_elem_pres_r - if TYPE_CHAM == "ELGA_SIEF_R" : return cham_elem_sief_r - if TYPE_CHAM == "ELGA_SOUR_R" : return cham_elem_sour_r - if TYPE_CHAM == "ELGA_TEMP_F" : return cham_elem_temp_f - if TYPE_CHAM == "ELGA_TEMP_R" : return cham_elem_temp_r - if TYPE_CHAM == "ELGA_VARI_R" : return cham_elem_vari_r - if TYPE_CHAM == "ELGA_VNOR_C" : return cham_elem_vnor_c - if TYPE_CHAM == "CART_IRRA_R" : return carte_irra_r - if TYPE_CHAM == "NOEU_IRRA_R" : return cham_no_irra_r - if TYPE_CHAM == "ELEM_IRRA_R" : return cham_elem_irra_r - if TYPE_CHAM == "ELNO_IRRA_R" : return cham_elem_irra_r - if TYPE_CHAM == "ELGA_IRRA_R" : return cham_elem_irra_r - raise AsException("type de concept resultat non prevu") - -CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, - fr=" ",docu="U4.72.04-b",reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - TYPE_CHAM =SIMP(statut='o',typ='TXM', - into=("CART_DBEL_R","NOEU_DBEL_R","ELEM_DBEL_R", - "ELNO_DBEL_R","ELGA_DBEL_R","CART_DEPL_C", - "NOEU_DEPL_C","ELEM_DEPL_C","ELNO_DEPL_C", - "ELGA_DEPL_C","CART_DEPL_F","NOEU_DEPL_F", - "ELEM_DEPL_F","ELNO_DEPL_F","ELGA_DEPL_F", - "CART_DEPL_R","NOEU_DEPL_R","ELEM_DEPL_R", - "ELNO_DEPL_R","ELGA_DEPL_R","CART_DURT_R", - "NOEU_DURT_R","ELEM_DURT_R","ELNO_DURT_R", - "ELGA_DURT_R","CART_ENER_R","NOEU_ENER_R", - "ELEM_ENER_R","ELNO_ENER_R","ELGA_ENER_R", - "CART_EPSI_R","NOEU_EPSI_R","ELEM_EPSI_R", - "ELNO_EPSI_R","ELGA_EPSI_R","CART_ERREUR", - "NOEU_ERREUR","ELEM_ERREUR","ELNO_ERREUR", - "ELGA_ERREUR","CART_FLUX_R","NOEU_FLUX_R", - "ELEM_FLUX_R","ELNO_FLUX_R","ELGA_FLUX_R", - "CART_GEOM_R","NOEU_GEOM_R","ELEM_GEOM_R", - "ELNO_GEOM_R","ELGA_GEOM_R","CART_G_DEPL_R", - "NOEU_G_DEPL_R","ELEM_G_DEPL_R","ELNO_G_DEPL_R", - "ELGA_G_DEPL_R","CART_HYDR_R","NOEU_HYDR_R", - "ELEM_HYDR_R","ELNO_HYDR_R","ELGA_HYDR_R", - "CART_INST_R","NOEU_INST_R","ELEM_INST_R", - "ELNO_INST_R","ELGA_INST_R","CART_INTE_R", - "NOEU_INTE_R","ELEM_INTE_R","ELNO_INTE_R", - "ELGA_INTE_R","CART_META_R","NOEU_META_R", - "ELEM_META_R","ELNO_META_R","ELGA_META_R", - "CART_NEUT_F","NOEU_NEUT_F","ELEM_NEUT_F", - "ELNO_NEUT_F","ELGA_NEUT_F","CART_NEUT_R", - "NOEU_NEUT_R","ELEM_NEUT_R","ELNO_NEUT_R", - "ELGA_NEUT_R","CART_PRES_R","NOEU_PRES_R", - "ELEM_PRES_R","ELNO_PRES_R","ELGA_PRES_R", - "CART_SIEF_R","NOEU_SIEF_R","ELEM_SIEF_R", - "ELNO_SIEF_R","ELGA_SIEF_R","CART_SOUR_R", - "NOEU_SOUR_R","ELEM_SOUR_R","ELNO_SOUR_R", - "ELGA_SOUR_R","CART_TEMP_F","NOEU_TEMP_F", - "ELEM_TEMP_F","ELNO_TEMP_F","ELGA_TEMP_F", - "CART_TEMP_R","NOEU_TEMP_R","ELEM_TEMP_R", - "ELNO_TEMP_R","ELGA_TEMP_R","CART_VAR2_R", - "NOEU_VAR2_R","ELEM_VARI_R","ELNO_VARI_R", - "ELGA_VARI_R","CART_VNOR_C","NOEU_VNOR_C", - "ELEM_VNOR_C","ELNO_VNOR_C","ELGA_VNOR_C", - "CART_IRRA_R","NOEU_IRRA_R","ELEM_IRRA_R", - "ELNO_IRRA_R","ELGA_IRRA_R",) ), - -# SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS : -# ------------------------------------------------------------------ - regles=(EXCLUS('NUME_DDL','CHAM_NO',)), - NUME_DDL =SIMP(statut='f',typ=(nume_ddl) ), - CHAM_NO =SIMP(statut='f',typ=(cham_no) ), - -# 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) ), - MODELE =SIMP(statut='f',typ=(modele) ), - b_affe_modele =BLOC(condition = "MODELE != None", - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ), - AFFE =FACT(statut='o',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), - UN_PARMI('VALE','VALE_I','VALE_C','VALE_F', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - VALE =SIMP(statut='f',typ='R',max='**' ), - VALE_I =SIMP(statut='f',typ='I',max='**' ), - VALE_C =SIMP(statut='f',typ='C',max='**' ), - VALE_F =SIMP(statut='f',typ=fonction,max='**'), - ), - ), - b_asse =BLOC(condition = "OPERATION == 'ASSE'", - regles=(UN_PARMI('MAILLAGE','MODELE'),), - MAILLAGE =SIMP(statut='f',typ=(maillage) ), - MODELE =SIMP(statut='f',typ=(modele) ), - b_asse_modele =BLOC(condition = "MODELE != None", - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ), - ASSE =FACT(statut='o',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',), - PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - CHAM_GD =SIMP(statut='o',typ=(cham_gd)), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), - NOM_CMP_RESU =SIMP(statut='f',typ='TXM',max='**' ), - CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - COEF_R =SIMP(statut='f',typ='R',defaut= 1. ), - ), - ), - b_eval =BLOC(condition = "OPERATION == 'EVAL'", - CHAM_F =SIMP(statut='o',typ=(cham_gd)), - CHAM_PARA =SIMP(statut='o',typ=(cham_gd),max='**'), - ), - b_disc =BLOC(condition = "OPERATION == 'DISC'", - MODELE =SIMP(statut='f',typ=(modele) ), - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - CHAM_GD =SIMP(statut='o',typ=(cham_gd)), - ), - b_extr =BLOC(condition = "OPERATION == 'EXTR'", - regles=(UN_PARMI('MAILLAGE','RESULTAT'),), - MAILLAGE =SIMP(statut='f',typ=(maillage) ), - RESULTAT =SIMP(statut='f',typ=(resultat) ), - b_extr_maillage =BLOC(condition = "MAILLAGE != None", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("GEOMETRIE",)), - ), - b_extr_resultat =BLOC(condition = "RESULTAT != None", - regles=(EXCLUS('TYPE_MAXI','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','NOM_CAS','ANGL', ),), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), - NOM_CHAM =SIMP(statut='o',typ='TXM', - into=("DEPL","VITE","ACCE", - "DEPL_ABSOLU","VITE_ABSOLU", - "TEMP","IRRA","ACCE_ABSOLU", - "FORC_NODA","REAC_NODA","EFGE_NOEU_DEPL", - "EFGE_NOEU_CART","EPSI_NOEU_DEPL", - "SIGM_NOEU_DEPL","SIGM_NOEU_CART", - "SIPO_NOEU_DEPL","EQUI_NOEU_SIGM", - "EQUI_NOEU_EPSI","FLUX_NOEU_TEMP", - "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP", - "META_ELGA_TEMP","META_ELNO_TEMP", - "META_NOEU_TEMP","DURT_ELGA_META", - "DURT_ELNO_META","DURT_NOEU_META","SIEF_ELGA", - "SIEF_ELNO_ELGA","SIEF_ELGA_DEPL", - "VARI_ELNO_ELGA","VARI_ELGA","EPOT_ELEM_DEPL", - "ECIN_ELEM_DEPL","SOUR_ELGA_ELEC", - "PRES_ELNO_REEL","PRES_ELNO_IMAG", - "PRES_ELNO_DBEL","INTE_ELNO_ACTI", - "INTE_ELNO_REAC","EFGE_ELNO_DEPL", - "SIGM_ELNO_DEPL","EFGE_ELNO_CART", - "SIGM_ELNO_CART","SIPO_ELNO_DEPL", - "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL", - "EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO", - "EPSP_ELGA","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI", - "ERRE_ELNO_ELGA","ERRE_ELGA_NORE", - "ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2", - "SIGM_NOZ1_ELGA","SIGM_NOZ2_ELGA", - "DEGE_ELNO_DEPL","SIRE_ELNO_DEPL", - "VNOR_ELEM_DEPL","SIEF_ELNO","VARI_ELNO", - "SIEF_NOEU_ELGA","VARI_NOEU_ELGA", - "PRES_NOEU_DBEL","PRES_NOEU_REEL", - "PRES_NOEU_IMAG","INTE_NOEU_ACTI", - "INTE_NOEU_REAC","DCHA_ELGA_SIGM", - "DCHA_ELNO_SIGM","RADI_ELGA_SIGM", - "RADI_ELNO_SIGM","ENDO_ELNO_SIGA", - "ENDO_ELNO_SINO","ENDO_ELNO_SIGM", - "SIGM_ELNO_VARI","SIGM_NOEU_VARI", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL", - "EPME_ELNO_DPGE","EPMG_ELNO_DEPL", - "EPMG_ELGA_DEPL","GRAD_ELGA_THETA", - "GTHE_ELNO_ELGA","GRAD_NOEU_THETA", - "HYDR_ELGA","HYDR_ELNO_ELGA","HYDR_NOEU_ELGA", - "THETA","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF", - "VALE_CONT",) ), - TYPE_MAXI =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE",into=("VALE","INST",) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - LIST_INST =SIMP(statut='f',typ=(listr8) ), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - FREQ =SIMP(statut='f',typ='R'), - NUME_MODE =SIMP(statut='f',typ='I'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM'), - ANGL =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ), - ), - - ), -# FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULAT : -#----------------------------------------------------- - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage, - docu="U4.23.02-d",reentrant='n', - UIinfo={"groupes":("Maillage",)}, - regles=(EXCLUS('ECLA_PG','CREA_MAILLE'), - EXCLUS('ECLA_PG','CREA_GROUP_MA'), - EXCLUS('ECLA_PG','DETR_GROUP_MA'), - EXCLUS('ECLA_PG','MODI_MAILLE'),), - MAILLAGE =SIMP(statut='o',typ=maillage ), - CREA_POI1 =FACT(statut='f',min=1,max='**',fr="Création de mailles de type POI1 à partir de noeuds", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD' ),), - NOM_GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - ), - CREA_MAILLE =FACT(statut='f',min=1,max='**',fr="Duplication de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - PREF_MAILLE =SIMP(statut='o',typ='TXM' ), - PREF_NUME =SIMP(statut='f',typ='I' ), - ), - CREA_GROUP_MA =FACT(statut='f',min=1,max='**',fr="Duplication de mailles et création de groupes de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - NOM =SIMP(statut='o',typ='TXM'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - PREF_MAILLE =SIMP(statut='o',typ='TXM' ), - PREF_NUME =SIMP(statut='f',typ='I' ), - ), - DETR_GROUP_MA =FACT(statut='f',min=1,max=1,fr="Destruction de groupes de mailles", - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - NB_MAILLE =SIMP(statut='f',typ='I',defaut= 0, - fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit", ), - ), - MODI_MAILLE =FACT(statut='f',min=1,max='**',fr="Modification du type de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=grma,max='**'), - GROUP_MA =SIMP(statut='f',typ=ma,max='**'), - OPTION =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4"),fr="Choix de la transformation" ), - PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - REPERE =FACT(statut='f',min=1,max='**', - fr="changement de repère servant à déterminer les caractéristiques d une section de poutre", - TABLE =SIMP(statut='o',typ=tabl_cara_geom, - fr="Nom de la table contenant les caractéristiques de la section de poutre" ), - NOM_ORIG =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ), - NOM_ROTA =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére" ), - b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'", - GROUP_MA =SIMP(statut='f',typ=grma, - fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"), - ), - ), - ECLA_PG =FACT(statut='f',min=1,max=1, - fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss", - MODELE =SIMP(statut='o',typ=modele ), - SHRINK =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 04/06/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. -# ====================================================================== -def crea_resu_prod(TYPE_RESU,**args): - if TYPE_RESU == "EVOL_ELAS" : return evol_elas - if TYPE_RESU == "EVOL_NOLI" : return evol_noli - if TYPE_RESU == "EVOL_THER" : return evol_ther - if TYPE_RESU == "MULT_ELAS" : return mult_elas - if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas - if TYPE_RESU == "EVOL_VARC" : return evol_varc - raise AsException("type de concept resultat non prevu") - -CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,docu="U4.44.12-e",reentrant='f', - UIinfo={"groupes":("Modélisation",)}, - fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes", - - OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ECLA_PG","PERM_CHAM","PROL_RTZ",), - fr="choix de la fonction a activer",), - - b_affe =BLOC(condition = "OPERATION == 'AFFE'", - - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS", - "EVOL_THER","EVOL_VARC",) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","TEMP","IRRA","HYDR_ELGA",),max=1 ), - AFFE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('NOM_CAS','NUME_MODE','LIST_INST','INST',),), - CHAM_GD =SIMP(statut='f',typ=(cham_gd)), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - NUME_MODE =SIMP(statut='f',typ='I'), - TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - NUME_INIT =SIMP(statut='f',typ='I',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='f',min=1,max=1, - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',max='**', - into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ), - MODELE_INIT =SIMP(statut='o',typ=modele), - RESU_INIT =SIMP(statut='o',typ=resultat), - MAILLAGE =SIMP(statut='o',typ=maillage), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - ), - ), - - b_perm_cham =BLOC(condition = "OPERATION == 'PERM_CHAM'", - - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_NOLI",) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","SIEF_ELGA","VARI_ELGA",),max='**' ), - RESU_INIT =SIMP(statut='o',typ=evol_noli), - INST_INIT =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',into=('RELATIF','ABSOLU'),defaut='RELATIF'), - MAILLAGE_INIT =SIMP(statut='o',typ=maillage,), - RESU_FINAL =SIMP(statut='o',typ=evol_noli,), - MAILLAGE_FINAL =SIMP(statut='o',typ=maillage,), - PERM_CHAM =FACT(statut='o',min=1,max=1, - GROUP_MA_FINAL =SIMP(statut='o',typ=grma), - GROUP_MA_INIT =SIMP(statut='o',typ=grma), - TRAN =SIMP(statut='o',typ='R',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - ), - ), - - b_prol_rtz =BLOC(condition = "OPERATION == 'PROL_RTZ'", - - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER",) ), - - PROL_RTZ =FACT(statut='f',min=1,max=1, - regles=(EXCLUS('INST','LIST_INST'),), - MAILLAGE_FINAL =SIMP(statut='o',typ=maillage,), - TABLE =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t"), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),), - REPERE =SIMP(statut='o',typ='TXM',into=("CYLINDRIQUE",),), - ORIGINE =SIMP(statut='o',typ='R',min=3,max=3), - AXE_Z =SIMP(statut='o',typ='R',min=3,max=3), - ), - ), - -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEBUT=MACRO(nom="DEBUT",op=0 ,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"), - BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX", - statut='f',min=1,max=3, - FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM', - into=('GLOBALE','VOLATILE','LOCALE'),), - TITRE =SIMP(statut='f',typ='TXM'), - CAS =SIMP(statut='f',typ='TXM'), - NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'), - LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'), - LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'), - ), - IMPRESSION =FACT(statut='f',min=1,max=3, - FICHIER =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='o',typ='I'), - ), - CATALOGUE =FACT(statut='f',min=1,max=10, - FICHIER =SIMP(statut='o',typ='TXM'), - TITRE =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - ), - CODE =FACT(fr="définition d un nom pour l'esemble d'une étude", - statut='f',min=1,max=1, - NOM =SIMP(statut='o',typ='TXM'), - NIV_PUB_WEB =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')), - UNITE =SIMP(statut='f',typ='I',defaut=15), - ), - DEBUG =FACT(fr="option de déboggage reservée aux développeurs", - statut='f',min=1,max=1, - JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - JEVEUX =SIMP(fr="force les déchargement sur disque", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA", - statut='f',typ='TXM',into=('TEST',)), - ), - MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1, - GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'), - TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1), - TAILLE =SIMP(statut='f',typ='I'), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.), - PARTITION =SIMP(statut='f',typ='R'), - ), - ); -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=base_modale, - docu="U4.64.02-f",reentrant='f', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS'),), - CLASSIQUE =FACT(statut='f',min=1,max=1, - INTERF_DYNA =SIMP(statut='o',typ=interf_dyna_clas ), - MODE_MECA =SIMP(statut='o',typ=mode_meca,max='**' ), - NMAX_MODE =SIMP(statut='f',typ='I',defaut= 10 ), - ), - RITZ =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MODE_STAT','MODE_MECA','MULT_ELAS','BASE_MODALE'),), - MODE_MECA =SIMP(statut='f',typ=mode_meca,max='**' ), - NMAX_MODE =SIMP(statut='f',typ='I',defaut= 999 ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - MULT_ELAS =SIMP(statut='f',typ=mult_elas ), - BASE_MODALE =SIMP(statut='f',typ=base_modale ), - ), - DIAG_MASS =FACT(statut='f',min=1,max='**', - MODE_MECA =SIMP(statut='o',typ=mode_meca,max='**' ), - MODE_STAT =SIMP(statut='o',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - ), -# le bloc conditionnel remplace-t-il PRESENT_PRESENT('RITZ','NUME_REF'), -# PRESENT_ABSENT('INTERF_DYNA','CLASSIQUE'), - b_ritz =BLOC(condition = "RITZ != None", - INTERF_DYNA =SIMP(statut='f',typ=interf_dyna_clas ), - NUME_REF =SIMP(statut='o',typ=nume_ddl ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_CABLE_BP=OPER(nom="DEFI_CABLE_BP",op= 180,sd_prod=cabl_precont, - fr=" ", - docu="U4.42.04-a",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - GROUP_MA_BETON =SIMP(statut='o',typ=grma), - DEFI_CABLE =FACT(statut='o',min=1,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),), - MAILLE =SIMP(statut='f',typ=ma,min=2,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD_ANCRAGE =SIMP(statut='f',typ=no,max=2), - GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,max=2), - TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',min=2,max=2, - into=("ACTIF","PASSIF") ), - ), - TENSION_INIT =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RECUL_ANCRAGE =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RELAXATION =FACT(statut='f',min=0,max=1, - R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op= 2,sd_prod=fonction, - fr="Définition d une fonction constante", - docu="U4.31.01-g",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - VALE =SIMP(statut='o',typ='R',max=1 ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater,docu="U4.42.03-f",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="Définition d une coque composite couche par couche", - COUCHE =FACT(statut='o',min=1,max='**', - EPAIS =SIMP(statut='o',typ='R',val_min=0.E+0 ), - MATER =SIMP(statut='o',typ=(mater) ), - ORIENTATION =SIMP(statut='f',typ='R',defaut= 0.E+0, - val_min=-90.E+0,val_max=90.E+0 ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - IMPRESSION =FACT(statut='f',min=1,max=1, - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT",) ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru, - docu="U4.25.01-e",reentrant='n', - UIinfo={"groupes":("Maillage",)}, - regles=( UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),), - FAISCEAU_TRANS =FACT(statut='f',min=1,max='**', - COUPLAGE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ), - PROF_RHO_F_INT =SIMP(statut='f',typ=fonction ), - PROF_RHO_F_EXT =SIMP(statut='f',typ=fonction ), - NOM_CMP =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ), - COEF_MASS_AJOU =SIMP(statut='f',typ='R' ), - TYPE_PAS =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ), - TYPE_RESEAU =SIMP(statut='f',typ='I' ), - UNITE_CD =SIMP(statut='f',typ='I',defaut=70), - UNITE_CK =SIMP(statut='f',typ='I',defaut=71), - PAS =SIMP(statut='f',typ='R' ), - ), - GRAPPE =FACT(statut='f',max=1, - regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',), - PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),), -# peut on créer un bloc a partir de la valeur de couplage - COUPLAGE =SIMP(statut='o',typ='TXM',into=("OUI","NON") ), - GRAPPE_2 =SIMP(statut='f',typ='TXM', - into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ), - NOEUD =SIMP(statut='f',typ=no), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODELE =SIMP(statut='f',typ=modele ), - COEF_MASS_AJOU =SIMP(statut='f',typ='R' ), - RHO_FLUI =SIMP(statut='f',typ='R' ), - UNITE_CA =SIMP(statut='f',typ='I',defaut=70), - UNITE_KA =SIMP(statut='f',typ='I',defaut=71), - ), - FAISCEAU_AXIAL =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'), - UN_PARMI('CARA_ELEM','RAYON_TUBE'), - ENSEMBLE('RAYON_TUBE','COOR_TUBE'), - PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'), - ENSEMBLE('CARA_PAROI','VALE_PAROI'), - ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG', - 'COOR_GRILLE','TYPE_GRILLE', ),), -# on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - TRI_GROUP_MA =SIMP(statut='f',typ='TXM' ), - VECT_X =SIMP(statut='f',typ='R',max=3), - PROF_RHO_FLUI =SIMP(statut='f',typ=fonction ), - PROF_VISC_CINE =SIMP(statut='f',typ=fonction ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - RAYON_TUBE =SIMP(statut='f',typ='R' ), - COOR_TUBE =SIMP(statut='f',typ='R',max='**'), - PESANTEUR =SIMP(statut='f',typ='R',min=4,max=4), - RUGO_TUBE =SIMP(statut='f',typ='R' ), - CARA_PAROI =SIMP(statut='f',typ='TXM',max=5, - into=("YC","ZC","R","HY","HZ") ), - VALE_PAROI =SIMP(statut='f',typ='R',max=5), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - LONG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - LARG_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - EPAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - RUGO_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - COEF_TRAI_TYPG =SIMP(statut='f',typ='R',max='**',val_min=0.E+0), - COEF_DPOR_TYPG =SIMP(statut='f',typ='R',max='**'), - COOR_GRILLE =SIMP(statut='f',typ='R',max='**'), - TYPE_GRILLE =SIMP(statut='f',typ='I',max='**'), - ), - COQUE_COAX =FACT(statut='f',max=1, - MASS_AJOU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - GROUP_MA_INT =SIMP(statut='o',typ=grma), - GROUP_MA_EXT =SIMP(statut='o',typ=grma), - VECT_X =SIMP(statut='o',typ='R',max='**'), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - MATER_INT =SIMP(statut='o',typ=mater ), - MATER_EXT =SIMP(statut='o',typ=mater ), - RHO_FLUI =SIMP(statut='o',typ='R' ), - VISC_CINE =SIMP(statut='o',typ='R' ), - RUGOSITE =SIMP(statut='o',typ='R' ), - PDC_MOY_1 =SIMP(statut='o',typ='R' ), - PDC_DYN_1 =SIMP(statut='o',typ='R' ), - PDC_MOY_2 =SIMP(statut='o',typ='R' ), - PDC_DYN_2 =SIMP(statut='o',typ='R' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 03/12/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction,docu="U4.mk.10-e",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Définition d une fonction du temps pour calculer des forces de LAPLACE", - regles=(UN_PARMI('COUR_PRIN','COUR'), - EXCLUS('COUR','COUR_SECO'), ), - FREQ =SIMP(statut='f',typ='R',defaut= 50.), - SIGNAL =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ), - COUR =FACT(statut='f',min=1,max='**', - fr="Définition du courant de court-circuit", - regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'), - UN_PARMI('PHI_CC_2','INTC_CC_2'),), - INTE_CC_1 =SIMP(statut='o',typ='R'), - TAU_CC_1 =SIMP(statut='o',typ='R'), - PHI_CC_1 =SIMP(statut='f',typ='R'), - INTC_CC_1 =SIMP(statut='f',typ='R'), - INTE_CC_2 =SIMP(statut='o',typ='R'), - TAU_CC_2 =SIMP(statut='o',typ='R'), - PHI_CC_2 =SIMP(statut='f',typ='R'), - INTC_CC_2 =SIMP(statut='f',typ='R'), - INST_CC_INIT =SIMP(statut='o',typ='R'), - INST_CC_FIN =SIMP(statut='o',typ='R'), - ), - COUR_PRIN =FACT(statut='f',min=1,max=1, - fr="Définition du courant de court-circuit avec réenclenchement", - regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),), - INTE_CC_1 =SIMP(statut='o',typ='R'), - TAU_CC_1 =SIMP(statut='o',typ='R'), - PHI_CC_1 =SIMP(statut='f',typ='R'), - INTC_CC_1 =SIMP(statut='f',typ='R'), - INTE_RENC_1 =SIMP(statut='f',typ='R'), - TAU_RENC_1 =SIMP(statut='f',typ='R'), - PHI_RENC_1 =SIMP(statut='f',typ='R'), - INST_CC_INIT =SIMP(statut='o',typ='R'), - INST_CC_FIN =SIMP(statut='o',typ='R'), - INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0), - INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 0.0E+0), - ), - COUR_SECO =FACT(statut='f',min=1,max='**', - fr="Définition du courant de court-circuit avec un intervalle de temps différent de celui de COUR_PRIN", - regles=(UN_PARMI('PHI_CC_2','INTC_CC_2'),), - INTE_CC_2 =SIMP(statut='o',typ='R'), - TAU_CC_2 =SIMP(statut='o',typ='R'), - PHI_CC_2 =SIMP(statut='f',typ='R'), - INTC_CC_2 =SIMP(statut='f',typ='R'), - INTE_RENC_2 =SIMP(statut='f',typ='R'), - TAU_RENC_2 =SIMP(statut='f',typ='R'), - PHI_RENC_2 =SIMP(statut='f',typ='R'), - DIST =SIMP(statut='f',typ='R',defaut=1.0E+0), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction, - docu="U4.35.01-d",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - MAILLAGE =SIMP(statut='o',typ=(maillage) ), - NOEUD_INIT =SIMP(statut='o',typ=no), - NOEUD_FIN =SIMP(statut='o',typ=no), - VITE =FACT(statut='o',min=1,max=1, - VALE =SIMP(statut='f',typ='R',defaut= 1. ), - PROFIL =SIMP(statut='o',typ='TXM',into=("UNIFORME","LEONARD") ), - NB_BAV =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 2 , 3 ) ), - ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN", - into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU", - into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM' ,defaut="EXCLU", - into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,**args): - if VALE != None : return fonction - if VALE_C != None : return fonction_c - if VALE_PARA != None : return fonction - if NOEUD_PARA != None : return fonction - raise AsException("type de concept resultat non prevu") - -DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod - ,fr="Définition des valeurs réelles ou complexes d une fonction réelle", - docu="U4.31.02-g",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA'),), - NOM_PARA =SIMP(statut='o',typ='TXM', - into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","META","FREQ","PULS", - "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT", - "PGAZ","PCAP","VITE") ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - VALE =SIMP(statut='f',typ='R',min=2,max='**', - fr ="Fonction réelle définie par une liste de couples (abscisse,ordonnée)"), - VALE_C =SIMP(statut='f',typ='R',min=2,max='**', - fr ="Fonction complexe définie par une liste de couples"), - VALE_PARA =SIMP(statut='f',typ=listr8, - fr ="Fonction réelle définie par deux concepts de type listr8" ), - b_vale_para =BLOC(condition = "VALE_PARA != None", - VALE_FONC =SIMP(statut='o',typ=listr8 ), - ), - NOEUD_PARA =SIMP(statut='f',typ=no,max='**', - fr ="Fonction réelle définie par une liste de noeuds et un maillage"), - b_noeud_para =BLOC(condition = "NOEUD_PARA != None", - MAILLAGE =SIMP(statut='o',typ=maillage ), - VALE_Y =SIMP(statut='o',typ='R',max='**'), - ), - - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - VERIF =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,docu="U4.82.01-f",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Définition de lèvres et d un fond de fissure en 3D", - regles=(UN_PARMI('FOND','FOND_FERME'), - EXCLUS('FOND_FERME','DTAN_ORIG'), - EXCLUS('FOND_FERME','DTAN_EXTR'), - EXCLUS('FOND_FERME','VECT_GRNO_ORIG'), - EXCLUS('FOND_FERME','VECT_GRNO_EXTR'), - UN_PARMI('LEVRE_SUP','NORMALE'), - EXCLUS('LEVRE_INF','NORMALE'), - ENSEMBLE('DTAN_ORIG','DTAN_EXTR'), - ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'), - EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'), - EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,), - MAILLAGE =SIMP(statut='o',typ=maillage ), - FOND =FACT(statut='f',min=1,max=1, - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), -# à mettre à jour le max vaut-il 1 - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - NOEUD_EXTR =SIMP(statut='f',typ=no,max=1), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1), - ), - FOND_FERME =FACT(statut='f',min=1,max=1, - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - MAILLE_ORIG =SIMP(statut='f',typ=ma,max=1), - GROUP_MA_ORIG =SIMP(statut='f',typ=ma,max=1), - ), - LEVRE_SUP =FACT(statut='f',min=1,max=1, - regles=(UN_PARMI('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - LEVRE_INF =FACT(statut='f',min=1,max=1, - regles=(UN_PARMI('GROUP_MA','MAILLE', ),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - NORMALE =SIMP(statut='f',typ='R',max='**'), - DTAN_ORIG =SIMP(statut='f',typ='R',max='**'), - DTAN_EXTR =SIMP(statut='f',typ='R',max='**'), - VECT_GRNO_ORIG =SIMP(statut='f',typ=grno,max=2), - VECT_GRNO_EXTR =SIMP(statut='f',typ=grno,max=2), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def defi_group_prod(MAILLAGE,**args): - if AsType(MAILLAGE) == maillage : return maillage - if AsType(MAILLAGE) == squelette : return squelette - raise AsException("type de concept resultat non prevu") - -DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, - fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage", - docu="U4.22.01-f",reentrant='o', - UIinfo={"groupes":("Maillage",)}, - regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO'),), - MAILLAGE =SIMP(statut='o',typ=(maillage,squelette) ), - - CREA_GROUP_MA =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),), -# quel est le concept attendu deriere NOM - NOM =SIMP(statut='o',typ=grma), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - INTERSEC =SIMP(statut='f',typ=grma,max='**'), - UNION =SIMP(statut='f',typ=grma,max='**'), - DIFFE =SIMP(statut='f',typ=grma,max='**'), - OPTION =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE","BANDE") ), - b_group_ma =BLOC(condition = "GROUP_MA != None", - regles=(EXCLUS('POSITION','NUME_INIT'),), - NUME_INIT =SIMP(statut='f',typ='I'), - POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), - b_nume_init =BLOC(condition = "NUME_INIT != None", - NUME_FIN =SIMP(statut='f',typ='I' ), - ), - ), - b_face_normale =BLOC(condition = "OPTION == 'FACE_NORMALE'", - regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - ANGL_NAUT =SIMP(statut='f',typ='R',max=2), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - ANGL_PREC =SIMP(statut='f',typ='R',defaut= 0.5 ), - VERI_SIGNE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_sphere =BLOC(condition = "OPTION == 'SPHERE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE'),), - POINT =SIMP(statut='f',typ='R',max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - RAYON =SIMP(statut='o',typ='R' ), - ), - b_cylindre =BLOC(condition = "OPTION == 'CYLINDRE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R',max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - RAYON =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=2), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - ), - b_bande =BLOC(condition = "OPTION == 'BANDE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R',max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - DIST =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=2), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - ), - ), - CREA_GROUP_NO =FACT(statut='f',min=1,max='**', - regles = ( - AU_MOINS_UN ('TOUT_GROUP_MA','GROUP_MA','NOEUD', - 'INTERSEC','UNION','DIFFE','GROUP_NO','OPTION'), - EXCLUS ('TOUT_GROUP_MA','GROUP_MA','NOEUD','INTERSEC','UNION','DIFFE'),), - TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - - NOEUD =SIMP(statut='f',typ=no,max='**'), - INTERSEC =SIMP(statut='f',typ=grno,max='**'), - UNION =SIMP(statut='f',typ=grno,max='**'), - DIFFE =SIMP(statut='f',typ=grno,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - OPTION =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN", - "SEGM_DROI_ORDO","NOEUD_ORDO") ), - b_nom_group_ma =BLOC(condition = "GROUP_MA != None", - NOM =SIMP(statut='f',typ=grma,max='**'), - ), - b_crit_noeud = BLOC(condition = "GROUP_MA != None", - CRIT_NOEUD = SIMP(statut='f',typ='TXM',defaut="TOUS", - into=("TOUS","SOMMET","MILIEU","CENTRE"),),), - b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" , - NOM =SIMP(statut='o',typ=geom), - ), - b_group_no =BLOC(condition = "GROUP_NO != None", - regles=(EXCLUS('POSITION','NUME_INIT'),), - NUME_INIT =SIMP(statut='f',typ='I'), - POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), - b_nume_init =BLOC(condition = "NUME_INIT != None", - NUME_FIN =SIMP(statut='f',typ='I' ), - ), - ), - b_env_sphere =BLOC(condition = "OPTION == 'ENV_SPHERE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE'),), - POINT =SIMP(statut='f',typ='R',max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no,max=1), - RAYON =SIMP(statut='o',typ='R' ), - PRECISION =SIMP(statut='f',typ='R' ), - CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ), - ), - b_env_cylindre =BLOC(condition = "OPTION == 'ENV_CYLINDRE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R',max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no,max=1), - RAYON =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - PRECISION =SIMP(statut='f',typ='R' ), - CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ), - ), - b_env_plan =BLOC(condition = "OPTION == 'PLAN'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R',max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no,max=1), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - PRECISION =SIMP(statut='f',typ='R' ), - CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ), - ), - b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'", - regles=(UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),), - NOEUD_ORIG =SIMP(statut='f',typ=no), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno), - NOEUD_EXTR =SIMP(statut='f',typ=no), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno), - PRECISION =SIMP(statut='f',typ='R' ), - CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ), - ), - b_noeud_ordo =BLOC(condition = "OPTION == 'NOEUD_ORDO'", - regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), - NOEUD_ORIG =SIMP(statut='f',typ=no), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno), - NOEUD_EXTR =SIMP(statut='f',typ=no), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno), - PRECISION =SIMP(statut='f',typ='R' ), - CRITERE =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ), - ), - ), - INFO =SIMP(statut='f',typ='I',into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp, - docu="U4.36.02-f",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - - DIMENSION =SIMP(statut='f',typ='I',defaut= 1 ), - - PAR_FONCTION =FACT(statut='f',min=1,max='**', - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FONCTION =SIMP(statut='o',typ=fonction_c ), - ), - KANAI_TAJIMI =FACT(statut='f',min=1,max='**', - regles=(EXCLUS('VALE_R','VALE_C'),), - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), - PAS =SIMP(statut='f',typ='R',defaut= 1. ), - AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.6 ), - FREQ_MOY =SIMP(statut='f',typ='R',defaut= 5. ), - VALE_R =SIMP(statut='f',typ='R' ), - VALE_C =SIMP(statut='f',typ='C' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - CONSTANT =FACT(statut='f',min=1,max='**', - regles=(EXCLUS('VALE_R','VALE_C'),), - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), - PAS =SIMP(statut='f',typ='R',defaut= 1. ), - VALE_R =SIMP(statut='f',typ='R' ), - VALE_C =SIMP(statut='f',typ='C' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, - docu="U4.64.01-f",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - NUME_DDL =SIMP(statut='o',typ=nume_ddl ), - INTERFACE =FACT(statut='o',min=1,max='**', - regles=(ENSEMBLE('NOM','TYPE'), -# erreur doc U sur la condition qui suit - UN_PARMI('NOEUD','GROUP_NO'),), - NOM =SIMP(statut='f',typ='TXM' ), - TYPE =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'), - MASQUE =SIMP(statut='f',typ='TXM',max='**'), - ), - FREQ =SIMP(statut='f',typ='R',defaut= 1.), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis, - fr="Définition d une suite croissante d entiers", - docu="U4.34.02-g",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE','DEBUT'), - EXCLUS('VALE','INTERVALLE'),), - VALE =SIMP(statut='f',typ='I',max='**'), - DEBUT =SIMP(statut='f',typ='I'), - INTERVALLE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('NOMBRE','PAS'),), - JUSQU_A =SIMP(statut='o',typ='I'), - NOMBRE =SIMP(statut='f',typ='I',val_min=1,), - PAS =SIMP(statut='f',typ='I',val_min=1,), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8, - fr="Définition d une suite croissante de réels", - docu="U4.34.01-g",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE','DEBUT',), - EXCLUS('VALE','INTERVALLE'), - ENSEMBLE('DEBUT','INTERVALLE')), - VALE =SIMP(statut='f',typ='R',max='**'), - DEBUT =SIMP(statut='f',typ='R'), - INTERVALLE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('NOMBRE','PAS'),), - JUSQU_A =SIMP(statut='o',typ='R'), - NOMBRE =SIMP(statut='f',typ='I'), - PAS =SIMP(statut='f',typ='R'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op= 88,sd_prod=maillage, - fr="Définition d un nouveau maillage à partir de macro éléments", - docu="U4.23.01-f",reentrant='n', - UIinfo={"groupes":("Maillage",)}, - DEFI_MAILLE =FACT(statut='o',min=1,max='**', - MACR_ELEM_STAT =SIMP(statut='o',typ=macr_elem_stat,max='**' ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - TRAN =SIMP(statut='f',typ='R',max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - b_angl_naut =BLOC(condition = "ANGL_NAUT != None", - CENTRE =SIMP(statut='f',typ='R',max=3), - ), - ), - RECO_GLOBAL =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - RECO_MAILLE =FACT(statut='f',min=1,max='**', - MAILLE =SIMP(statut='o',typ=ma,max='**'), - GROUP_NO =SIMP(statut='o',typ=grno,max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ), - geometrique =BLOC(condition = "OPTION == 'GEOMETRIQUE'", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), - DEFI_NOEUD =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','NOEUD_INIT'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Renommage de tous les noeuds" ), - NOEUD_INIT =SIMP(statut='f',typ=no, - fr="Renommage d un seul noeud"), - b_tout =BLOC(condition = "TOUT != None", - PREFIXE =SIMP(statut='f',typ='TXM' ), - INDEX =SIMP(statut='o',typ='I',max='**'), - ), - b_noeud_init =BLOC(condition = "NOEUD_INIT != None", - MAILLE =SIMP(statut='o',typ=ma), - NOEUD_FIN =SIMP(statut='o',typ=no), - ), - ), - DEFI_GROUP_NO =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','MAILLE'), - AU_MOINS_UN('INDEX','GROUP_NO_FIN'), - ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),), -# la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Création de plusieurs groupes de noeuds" ), - MAILLE =SIMP(statut='f',typ=ma, - fr="Création de plusieurs groupes de noeuds"), - GROUP_NO_INIT =SIMP(statut='f',typ=grno, - fr="Création d un seul groupe de noeuds"), - PREFIXE =SIMP(statut='f',typ='TXM' ), - INDEX =SIMP(statut='f',typ='I',max='**'), - GROUP_NO_FIN =SIMP(statut='f',typ=grno), - ), -) ; -#& MODIF COMMANDE DATE 07/06/2004 AUTEUR SMICHEL S.MICHEL-PONNELLE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater, - fr="Définition des paramètres décrivant le comportement d un matériau", - docu="U4.43.01-g",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'), -#DEBR ,'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'), -#DEBR EXCLUS('VISCOCHAB','VISCOCHAB_FO'), - EXCLUS('POLY_CFC','POLY_CFC_FO'), - EXCLUS('LEMAITRE','LEMAITRE_FO','ZIRC_CYRA2','ZIRC_EPRI'), -#DEBR EXCLUS('OHNO','OHNO_FO'), - EXCLUS('LMARC','LMARC_FO'), - EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'), -#DEBR EXCLUS('VENDOCHAB','VENDOCHAB_FO'), - PRESENT_PRESENT('BPEL_ACIER','ELAS'), - EXCLUS('RCCM','RCCM_FO'), - EXCLUS('WEIBULL','WEIBULL_FO'), - PRESENT_PRESENT('CAM_CLAY','ELAS'), - PRESENT_PRESENT('LAIGLE','ELAS'), - EXCLUS('MAZARS','MAZARS_FO'), - PRESENT_PRESENT('BAZANT_FD','ELAS_FO'), - ), - -# -# comportement élastique -# - ELAS =FACT(statut='f',min=0,max=1, - E =SIMP(statut='o',typ='R',val_min=0.E+0), - NU =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=0.5E+0), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - AMOR_ALPHA =SIMP(statut='f',typ='R'), - AMOR_BETA =SIMP(statut='f',typ='R'), - AMOR_HYST =SIMP(statut='f',typ='R'), - ), - ELAS_FO =FACT(statut='f',min=0,max=1, - regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),), - E =SIMP(statut='o',typ=fonction), - NU =SIMP(statut='o',typ=fonction), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.), - ALPHA =SIMP(statut='f',typ=fonction), - AMOR_ALPHA =SIMP(statut='f',typ=fonction), - AMOR_BETA =SIMP(statut='f',typ=fonction), - AMOR_HYST =SIMP(statut='f',typ=fonction), - K_DESSIC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - B_ENDOGE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FONC_DESORP =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="INST",into=("TEMP","INST",) ), - VERI_P3 =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ), - VERI_P4 =SIMP(statut='c',typ='TXM',defaut="SECH",into=("SECH",) ), - ), - ELAS_FLUI =FACT(statut='f',min=0,max=1, - E =SIMP(statut='o',typ='R'), - NU =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='o',typ='R'), - PROF_RHO_F_INT =SIMP(statut='o',typ=fonction), - PROF_RHO_F_EXT =SIMP(statut='o',typ=fonction), - COEF_MASS_AJOU =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="ABSC",into=("ABSC",) ), - ), - ELAS_ISTR =FACT(statut='f',min=0,max=1, - E_L =SIMP(statut='o',typ='R'), - E_N =SIMP(statut='o',typ='R'), - NU_LT =SIMP(statut='o',typ='R'), - NU_LN =SIMP(statut='o',typ='R'), - G_LN =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ELAS_ISTR_FO =FACT(statut='f',min=0,max=1, - regles=( - PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'), - ), - E_L =SIMP(statut='o',typ=fonction), - E_N =SIMP(statut='o',typ=fonction), - NU_LT =SIMP(statut='o',typ=fonction), - NU_LN =SIMP(statut='o',typ=fonction), - G_LN =SIMP(statut='o',typ=fonction), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.), - ALPHA_L =SIMP(statut='f',typ=fonction), - ALPHA_N =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST")), - ), - ELAS_ORTH =FACT(statut='f',min=0,max=1, - E_L =SIMP(statut='o',typ='R'), - E_T =SIMP(statut='o',typ='R'), - E_N =SIMP(statut='f',typ='R'), - NU_LT =SIMP(statut='o',typ='R'), - NU_LN =SIMP(statut='f',typ='R'), - NU_TN =SIMP(statut='f',typ='R'), - G_LT =SIMP(statut='o',typ='R'), - G_LN =SIMP(statut='f',typ='R'), - G_TN =SIMP(statut='f',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_T =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - XT =SIMP(statut='f',typ='R',defaut= 1. ), - XC =SIMP(statut='f',typ='R',defaut= 1. ), - YT =SIMP(statut='f',typ='R',defaut= 1. ), - YC =SIMP(statut='f',typ='R',defaut= 1. ), - S_LT =SIMP(statut='f',typ='R',defaut= 1. ), - ), - ELAS_ORTH_FO =FACT(statut='f',min=0,max=1, - regles=( - PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('ALPHA_T','TEMP_DEF_ALPHA'), - ), - E_L =SIMP(statut='o',typ=fonction), - E_T =SIMP(statut='o',typ=fonction), - E_N =SIMP(statut='o',typ=fonction), - NU_LT =SIMP(statut='o',typ=fonction), - NU_LN =SIMP(statut='o',typ=fonction), - NU_TN =SIMP(statut='o',typ=fonction), - G_LT =SIMP(statut='o',typ=fonction), - G_LN =SIMP(statut='o',typ=fonction), - G_TN =SIMP(statut='o',typ=fonction), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1. ), - ALPHA_L =SIMP(statut='f',typ=fonction), - ALPHA_T =SIMP(statut='f',typ=fonction), - ALPHA_N =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ), - ), - ELAS_THM =FACT(statut='f',min=0,max=1, - RHO_S =SIMP(statut='o',typ='R'), - UN_SUR_KS =SIMP(statut='o',typ='R'), - E =SIMP(statut='f',typ='R'), - KB =SIMP(statut='f',typ='R'), - D_KB_T =SIMP(statut='f',typ='R'), - ALPHA_S =SIMP(statut='f',typ='R'), - ALPHA_D =SIMP(statut='f',typ='R'), - ), -#DEBR SURF_ETAT_SATU =FACT(statut='f',min=0,max=1, -#DEBR E_CHAR =SIMP(statut='o',typ='R'), -#DEBR E_DECHAR =SIMP(statut='o',typ='R'), -#DEBR XN =SIMP(statut='f',typ='R'), -#DEBR RF =SIMP(statut='f',typ='R'), -#DEBR EV_KB =SIMP(statut='f',typ='R'), -#DEBR EV_XM =SIMP(statut='f',typ='R'), -#DEBR D_E_T =SIMP(statut='f',typ='R'), -#DEBR ALPHA0 =SIMP(statut='f',typ='R'), -#DEBR ALPHA1 =SIMP(statut='f',typ='R'), -#DEBR ALPHA2 =SIMP(statut='f',typ='R'), -#DEBR ALPHA3 =SIMP(statut='f',typ='R'), -#DEBR ALPHA_S =SIMP(statut='f',typ='R'), -#DEBR ANG_FRT =SIMP(statut='o',typ='R'), -#DEBR COHE =SIMP(statut='o',typ='R'), -#DEBR RESI_TRAC =SIMP(statut='o',typ='R'), -#DEBR ), -#DEBR CAM_CLAY_THM =FACT(statut='f',min=0,max=1, -#DEBR NU =SIMP(statut='f',typ='R'), -#DEBR LAMBDA =SIMP(statut='o',typ='R'), -#DEBR KAPA =SIMP(statut='o',typ='R'), -#DEBR M =SIMP(statut='f',typ='R'), -#DEBR PRES_CRIT =SIMP(statut='f',typ='R'), -#DEBR GAMA =SIMP(statut='o',typ='R'), -#DEBR A0_PC =SIMP(statut='o',typ='R'), -#DEBR A1_PC =SIMP(statut='f',typ='R'), -#DEBR A2_PC =SIMP(statut='f',typ='R'), -#DEBR ALPHA0_PC =SIMP(statut='f',typ='R'), -#DEBR ALPHA1_PC =SIMP(statut='f',typ='R'), -#DEBR ALPHA2_PC =SIMP(statut='f',typ='R'), -#DEBR ALPHA3_PC =SIMP(statut='f',typ='R'), -#DEBR ALPHA_S =SIMP(statut='f',typ='R'), -#DEBR ), -#DEBR SURF_ETAT_NSAT =FACT(statut='f',min=0,max=1, -#DEBR E_CHAR =SIMP(statut='o',typ='R'), -#DEBR E_DECHAR =SIMP(statut='o',typ='R'), -#DEBR XN =SIMP(statut='f',typ='R'), -#DEBR RF =SIMP(statut='f',typ='R'), -#DEBR EV_KB =SIMP(statut='f',typ='R'), -#DEBR EV_XM =SIMP(statut='f',typ='R'), -#DEBR EV_A =SIMP(statut='f',typ='R'), -#DEBR EV_B =SIMP(statut='f',typ='R'), -#DEBR EV_CT =SIMP(statut='f',typ='R'), -#DEBR EV_SIGB =SIMP(statut='f',typ='R'), -#DEBR D_E_T =SIMP(statut='f',typ='R'), -#DEBR D_E_SUCC =SIMP(statut='f',typ='R'), -#DEBR ANG_FRT =SIMP(statut='o',typ='R'), -#DEBR COHE =SIMP(statut='o',typ='R'), -#DEBR D_COEH_SUCC =SIMP(statut='f',typ='R'), -#DEBR ANG_FRT_ULT =SIMP(statut='f',typ='R'), -#DEBR SUCC_ULTM =SIMP(statut='f',typ='R'), -#DEBR RESI_TRAC =SIMP(statut='f',typ='R'), -#DEBR A_SURF_SATU =SIMP(statut='f',typ='R'), -#DEBR B_SURF_SATU =SIMP(statut='f',typ='R'), -#DEBR C_SURF_SATU =SIMP(statut='f',typ='R'), -#DEBR D_SURF_SATU =SIMP(statut='f',typ='R'), -#DEBR ), - ELAS_COQUE =FACT(statut='f',min=0,max=1, - regles=(EXCLUS('MEMB_L','M_LLLL',), - PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', - 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), - PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', - 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL', - 'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ', - 'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ', - 'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ', - 'C_LZTZ','C_TZTZ'),), - MEMB_L =SIMP(statut='f',typ='R'), - MEMB_LT =SIMP(statut='f',typ='R'), - MEMB_T =SIMP(statut='f',typ='R'), - MEMB_G_LT =SIMP(statut='f',typ='R'), - FLEX_L =SIMP(statut='f',typ='R'), - FLEX_LT =SIMP(statut='f',typ='R'), - FLEX_T =SIMP(statut='f',typ='R'), - FLEX_G_LT =SIMP(statut='f',typ='R'), - CISA_L =SIMP(statut='f',typ='R'), - CISA_T =SIMP(statut='f',typ='R'), - M_LLLL =SIMP(statut='f',typ='R'), - M_LLTT =SIMP(statut='f',typ='R'), - M_LLLT =SIMP(statut='f',typ='R'), - M_TTTT =SIMP(statut='f',typ='R'), - M_TTLT =SIMP(statut='f',typ='R'), - M_LTLT =SIMP(statut='f',typ='R'), - F_LLLL =SIMP(statut='f',typ='R'), - F_LLTT =SIMP(statut='f',typ='R'), - F_LLLT =SIMP(statut='f',typ='R'), - F_TTTT =SIMP(statut='f',typ='R'), - F_TTLT =SIMP(statut='f',typ='R'), - F_LTLT =SIMP(statut='f',typ='R'), - MF_LLLL =SIMP(statut='f',typ='R'), - MF_LLTT =SIMP(statut='f',typ='R'), - MF_LLLT =SIMP(statut='f',typ='R'), - MF_TTTT =SIMP(statut='f',typ='R'), - MF_TTLT =SIMP(statut='f',typ='R'), - MF_LTLT =SIMP(statut='f',typ='R'), - MC_LLLZ =SIMP(statut='f',typ='R'), - MC_LLTZ =SIMP(statut='f',typ='R'), - MC_TTLZ =SIMP(statut='f',typ='R'), - MC_TTTZ =SIMP(statut='f',typ='R'), - MC_LTLZ =SIMP(statut='f',typ='R'), - MC_LTTZ =SIMP(statut='f',typ='R'), - FC_LLLZ =SIMP(statut='f',typ='R'), - FC_LLTZ =SIMP(statut='f',typ='R'), - FC_TTLZ =SIMP(statut='f',typ='R'), - FC_TTTZ =SIMP(statut='f',typ='R'), - FC_LTLZ =SIMP(statut='f',typ='R'), - FC_LTTZ =SIMP(statut='f',typ='R'), - C_LZLZ =SIMP(statut='f',typ='R'), - C_LZTZ =SIMP(statut='f',typ='R'), - C_TZTZ =SIMP(statut='f',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - ), - ELAS_COQUE_FO =FACT(statut='f',min=0,max=1, - regles=(EXCLUS('MEMB_L','M_LLLL',), - PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', - 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), - PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', - 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT', - 'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ', - 'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ', - 'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),), - MEMB_L =SIMP(statut='f',typ=fonction), - MEMB_LT =SIMP(statut='f',typ=fonction), - MEMB_T =SIMP(statut='f',typ=fonction), - MEMB_G_LT =SIMP(statut='f',typ=fonction), - FLEX_L =SIMP(statut='f',typ=fonction), - FLEX_LT =SIMP(statut='f',typ=fonction), - FLEX_T =SIMP(statut='f',typ=fonction), - FLEX_G_LT =SIMP(statut='f',typ=fonction), - CISA_L =SIMP(statut='f',typ=fonction), - CISA_T =SIMP(statut='f',typ=fonction), - M_LLLL =SIMP(statut='f',typ=fonction), - M_LLTT =SIMP(statut='f',typ=fonction), - M_LLLT =SIMP(statut='f',typ=fonction), - M_TTTT =SIMP(statut='f',typ=fonction), - M_TTLT =SIMP(statut='f',typ=fonction), - M_LTLT =SIMP(statut='f',typ=fonction), - F_LLLL =SIMP(statut='f',typ=fonction), - F_LLTT =SIMP(statut='f',typ=fonction), - F_LLLT =SIMP(statut='f',typ=fonction), - F_TTTT =SIMP(statut='f',typ=fonction), - F_TTLT =SIMP(statut='f',typ=fonction), - F_LTLT =SIMP(statut='f',typ=fonction), - MF_LLLL =SIMP(statut='f',typ=fonction), - MF_LLTT =SIMP(statut='f',typ=fonction), - MF_LLLT =SIMP(statut='f',typ=fonction), - MF_TTTT =SIMP(statut='f',typ=fonction), - MF_TTLT =SIMP(statut='f',typ=fonction), - MF_LTLT =SIMP(statut='f',typ=fonction), - MC_LLLZ =SIMP(statut='f',typ=fonction), - MC_LLTZ =SIMP(statut='f',typ=fonction), - MC_TTLZ =SIMP(statut='f',typ=fonction), - MC_TTTZ =SIMP(statut='f',typ=fonction), - MC_LTLZ =SIMP(statut='f',typ=fonction), - MC_LTTZ =SIMP(statut='f',typ=fonction), - FC_LLLZ =SIMP(statut='f',typ=fonction), - FC_LLTZ =SIMP(statut='f',typ=fonction), - FC_TTLZ =SIMP(statut='f',typ=fonction), - FC_TTTZ =SIMP(statut='f',typ=fonction), - FC_LTLZ =SIMP(statut='f',typ=fonction), - FC_LTTZ =SIMP(statut='f',typ=fonction), - C_LZLZ =SIMP(statut='f',typ=fonction), - C_LZTZ =SIMP(statut='f',typ=fonction), - C_TZTZ =SIMP(statut='f',typ=fonction), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST") ), - ), - APPUI_ELAS =FACT(statut='f',min=0,max=1, - E_N =SIMP(statut='o',typ='R'), - E_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0), - ), - CABLE =FACT(statut='f',min=0,max=1, - E =SIMP(statut='o',typ='R'), - EC_SUR_E =SIMP(statut='f',typ='R',defaut= 1.E-4 ), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - AMOR_ALPHA =SIMP(statut='f',typ='R'), - AMOR_BETA =SIMP(statut='f',typ='R'), - ), -# -# comportement mécanique non linéaire -# - TRACTION =FACT(statut='f',min=0,max=1, - SIGM =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="EPSI",into=("EPSI",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - VERI_P3 =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ), - VERI_P4 =SIMP(statut='c',typ='TXM',defaut="SECH",into=("SECH",) ), - ), - ECRO_LINE =FACT(statut='f',min=0,max=1, - D_SIGM_EPSI =SIMP(statut='o',typ='R'), - SY =SIMP(statut='o',typ='R'), - ), - ECRO_LINE_FO =FACT(statut='f',min=0,max=1, - D_SIGM_EPSI =SIMP(statut='o',typ=fonction), - SY =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - PRAGER =FACT(statut='f',min=0,max=1, - C =SIMP(statut='o',typ='R'), - ), - PRAGER_FO =FACT(statut='f',min=0,max=1, - C =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - ECRO_FLEJOU =FACT(statut='f',min=0,max=1, - EP =SIMP(statut='o',typ='R'), - SY =SIMP(statut='o',typ='R'), - SU =SIMP(statut='o',typ='R'), - PUISS =SIMP(statut='o',typ='R'), - ), - TAHERI =FACT(statut='f',min=0,max=1, - R_0 =SIMP(statut='o',typ='R'), - ALPHA =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - C_INF =SIMP(statut='o',typ='R'), - S =SIMP(statut='o',typ='R'), - ), - TAHERI_FO =FACT(statut='f',min=0,max=1, - R_0 =SIMP(statut='o',typ=fonction), - ALPHA =SIMP(statut='o',typ=fonction), - M =SIMP(statut='o',typ=fonction), - A =SIMP(statut='o',typ=fonction), - B =SIMP(statut='o',typ=fonction), - C1 =SIMP(statut='o',typ=fonction), - C_INF =SIMP(statut='o',typ=fonction), - S =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - ROUSSELIER =FACT(statut='f',min=0,max=1, - D =SIMP(statut='o',typ='R'), - SIGM_1 =SIMP(statut='o',typ='R'), - PORO_INIT =SIMP(statut='o',typ='R'), - PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ), - D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ), - AN =SIMP(statut='f',typ='R',defaut= 0. ), - ), - ROUSSELIER_FO =FACT(statut='f',min=0,max=1, - D =SIMP(statut='o',typ=fonction), - SIGM_1 =SIMP(statut='o',typ=fonction), - PORO_INIT =SIMP(statut='o',typ=fonction), - PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ), - D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ), - AN =SIMP(statut='f',typ='R',defaut= 0. ), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - ROUSS_VISC =FACT(statut='f',min=0,max=1, - SIGM_0 =SIMP(statut='o',typ='R'), - EPSI_0 =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - ), - CHABOCHE =FACT(statut='f',min=0,max=1, - R_I =SIMP(statut='o',typ='R'), - R_0 =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - W =SIMP(statut='o',typ='R'), - A1 =SIMP(statut='o',typ='R'), - A2 =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - C2 =SIMP(statut='o',typ='R'), - ), - CIN1_CHAB =FACT(statut='f',min=0,max=1, - R_0 =SIMP(statut='o',typ='R'), - R_I =SIMP(statut='f',typ='R'), - B =SIMP(statut='f',typ='R',defaut= 0.0E+0), - C_I =SIMP(statut='o',typ='R'), - K =SIMP(statut='f',typ='R',defaut= 1.0E+0), - W =SIMP(statut='f',typ='R',defaut= 0.0E+0), - G_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ), - CIN1_CHAB_FO =FACT(statut='f',min=0,max=1, - R_0 =SIMP(statut='o',typ=fonction), - R_I =SIMP(statut='o',typ=fonction), - B =SIMP(statut='o',typ=fonction), - C_I =SIMP(statut='o',typ=fonction), - K =SIMP(statut='o',typ=fonction), - W =SIMP(statut='o',typ=fonction), - G_0 =SIMP(statut='o',typ=fonction), - A_I =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)), - ), - CIN2_CHAB =FACT(statut='f',min=0,max=1, - R_0 =SIMP(statut='o',typ='R'), - R_I =SIMP(statut='f',typ='R'), - B =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - C1_I =SIMP(statut='o',typ='R'), - C2_I =SIMP(statut='o',typ='R'), - K =SIMP(statut='f',typ='R',defaut= 1.), - W =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - G1_0 =SIMP(statut='o',typ='R'), - G2_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - ), - CIN2_CHAB_FO =FACT(statut='f',min=0,max=1, - R_0 =SIMP(statut='o',typ=fonction), - R_I =SIMP(statut='o',typ=fonction), - B =SIMP(statut='o',typ=fonction), - C1_I =SIMP(statut='o',typ=fonction), - C2_I =SIMP(statut='o',typ=fonction), - K =SIMP(statut='o',typ=fonction), - W =SIMP(statut='o',typ=fonction), - G1_0 =SIMP(statut='o',typ=fonction), - G2_0 =SIMP(statut='o',typ=fonction), - A_I =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), -#DEBR VISCOCHAB =FACT(statut='f',min=0,max=1, -#DEBR K_0 =SIMP(statut='o',typ='R'), -#DEBR A_K =SIMP(statut='o',typ='R'), -#DEBR A_R =SIMP(statut='o',typ='R'), -#DEBR K =SIMP(statut='o',typ='R'), -#DEBR N =SIMP(statut='o',typ='R'), -#DEBR ALP =SIMP(statut='o',typ='R'), -#DEBR B =SIMP(statut='o',typ='R'), -#DEBR M_R =SIMP(statut='o',typ='R'), -#DEBR G_R =SIMP(statut='o',typ='R'), -#DEBR MU =SIMP(statut='o',typ='R'), -#DEBR Q_M =SIMP(statut='o',typ='R'), -#DEBR Q_0 =SIMP(statut='o',typ='R'), -#DEBR QR_0 =SIMP(statut='o',typ='R'), -#DEBR ETA =SIMP(statut='o',typ='R'), -#DEBR C1 =SIMP(statut='o',typ='R'), -#DEBR M_1 =SIMP(statut='o',typ='R'), -#DEBR D1 =SIMP(statut='o',typ='R'), -#DEBR G_X1 =SIMP(statut='o',typ='R'), -#DEBR G1_0 =SIMP(statut='o',typ='R'), -#DEBR C2 =SIMP(statut='o',typ='R'), -#DEBR M_2 =SIMP(statut='o',typ='R'), -#DEBR D2 =SIMP(statut='o',typ='R'), -#DEBR G_X2 =SIMP(statut='o',typ='R'), -#DEBR G2_0 =SIMP(statut='o',typ='R'), -#DEBR A_I =SIMP(statut='o',typ='R'), -#DEBR ), -#DEBR VISCOCHAB_FO =FACT(statut='f',min=0,max=1, -#DEBR K_0 =SIMP(statut='o',typ=fonction), -#DEBR A_K =SIMP(statut='o',typ=fonction), -#DEBR A_R =SIMP(statut='o',typ=fonction), -#DEBR K =SIMP(statut='o',typ=fonction), -#DEBR N =SIMP(statut='o',typ=fonction), -#DEBR ALP =SIMP(statut='o',typ=fonction), -#DEBR B =SIMP(statut='o',typ=fonction), -#DEBR M_R =SIMP(statut='o',typ=fonction), -#DEBR G_R =SIMP(statut='o',typ=fonction), -#DEBR MU =SIMP(statut='o',typ=fonction), -#DEBR Q_M =SIMP(statut='o',typ=fonction), -#DEBR Q_0 =SIMP(statut='o',typ=fonction), -#DEBR QR_0 =SIMP(statut='o',typ=fonction), -#DEBR ETA =SIMP(statut='o',typ=fonction), -#DEBR C1 =SIMP(statut='o',typ=fonction), -#DEBR M_1 =SIMP(statut='o',typ=fonction), -#DEBR D1 =SIMP(statut='o',typ=fonction), -#DEBR G_X1 =SIMP(statut='o',typ=fonction), -#DEBR G1_0 =SIMP(statut='o',typ=fonction), -#DEBR C2 =SIMP(statut='o',typ=fonction), -#DEBR M_2 =SIMP(statut='o',typ=fonction), -#DEBR D2 =SIMP(statut='o',typ=fonction), -#DEBR G_X2 =SIMP(statut='o',typ=fonction), -#DEBR G2_0 =SIMP(statut='o',typ=fonction), -#DEBR A_I =SIMP(statut='o',typ=fonction), -#DEBR VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), -#DEBR ), - POLY_CFC =FACT(statut='f',min=0,max=1, - TEXTURE =SIMP(statut='o',typ=(tabl_texture) ), - DL =SIMP(statut='f',typ='R'), - DA =SIMP(statut='f',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - TAU_0 =SIMP(statut='o',typ='R'), - Q1 =SIMP(statut='o',typ='R'), - B1 =SIMP(statut='o',typ='R'), - HL =SIMP(statut='o',typ='R'), - Q2 =SIMP(statut='o',typ='R'), - B2 =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - D1 =SIMP(statut='o',typ='R'), - C2 =SIMP(statut='o',typ='R'), - ), - POLY_CFC_FO =FACT(statut='f',min=0,max=1, - TEXTURE =SIMP(statut='o',typ=(tabl_texture) ), - DL =SIMP(statut='o',typ=fonction), - DA =SIMP(statut='o',typ=fonction), - N =SIMP(statut='o',typ=fonction), - K =SIMP(statut='o',typ=fonction), - TAU_0 =SIMP(statut='o',typ=fonction), - Q1 =SIMP(statut='o',typ=fonction), - B1 =SIMP(statut='o',typ=fonction), - HL =SIMP(statut='o',typ=fonction), - Q2 =SIMP(statut='o',typ=fonction), - B2 =SIMP(statut='o',typ=fonction), - C1 =SIMP(statut='o',typ=fonction), - D1 =SIMP(statut='o',typ=fonction), - C2 =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - LEMAITRE =FACT(statut='f',min=0,max=1, - N =SIMP(statut='o',typ='R'), - UN_SUR_K =SIMP(statut='o',typ='R'), - UN_SUR_M =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ZIRC_CYRA2 =FACT(statut='f',min=0,max=1, - EPSI_FAB =SIMP(statut='o',typ=fonction), - TEMP_RECUIT =SIMP(statut='o',typ=fonction), - FLUX_PHI =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ), - ), - ZIRC_EPRI =FACT(statut='f',min=0,max=1, - FLUX_PHI =SIMP(statut='o',typ='R'), - R_P =SIMP(statut='o',typ='R'), - THETA_MAX =SIMP(statut='o',typ='R'), - ), - LEMAITRE_FO =FACT(statut='f',min=0,max=1, - N =SIMP(statut='o',typ=fonction), - UN_SUR_K =SIMP(statut='o',typ=fonction), - UN_SUR_M =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - GRAN_IRRA =FACT(statut='f',min=0,max=1, - A =SIMP(statut='f',typ='R',defaut= 0.E+0), - B =SIMP(statut='f',typ='R',defaut= 0.E+0), - S =SIMP(statut='f',typ='R',defaut= 0.E+0), - ), - FLU_IRRA =FACT(statut='f',min=0,max=1, - QSR_K =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PHI_ZERO =SIMP(statut='f',typ='R',defaut= 1.E+20), - L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), -#DEBR OHNO =FACT(statut='f',min=0,max=1, -#DEBR R_I =SIMP(statut='o',typ='R'), -#DEBR R_0 =SIMP(statut='o',typ='R'), -#DEBR B =SIMP(statut='o',typ='R'), -#DEBR PHI =SIMP(statut='o',typ='R'), -#DEBR A1 =SIMP(statut='o',typ='R'), -#DEBR A2 =SIMP(statut='o',typ='R'), -#DEBR A3 =SIMP(statut='o',typ='R'), -#DEBR A4 =SIMP(statut='o',typ='R'), -#DEBR A5 =SIMP(statut='o',typ='R'), -#DEBR GAMMA1 =SIMP(statut='o',typ='R'), -#DEBR GAMMA2 =SIMP(statut='o',typ='R'), -#DEBR GAMMA3 =SIMP(statut='o',typ='R'), -#DEBR GAMMA4 =SIMP(statut='o',typ='R'), -#DEBR GAMMA5 =SIMP(statut='o',typ='R'), -#DEBR M1 =SIMP(statut='o',typ='R'), -#DEBR M2 =SIMP(statut='o',typ='R'), -#DEBR M3 =SIMP(statut='o',typ='R'), -#DEBR M4 =SIMP(statut='o',typ='R'), -#DEBR M5 =SIMP(statut='o',typ='R'), -#DEBR ), -#DEBR OHNO_FO =FACT(statut='f',min=0,max=1, -#DEBR R_I =SIMP(statut='o',typ=fonction), -#DEBR R_0 =SIMP(statut='o',typ=fonction), -#DEBR B =SIMP(statut='o',typ=fonction), -#DEBR PHI =SIMP(statut='o',typ=fonction), -#DEBR A1 =SIMP(statut='o',typ=fonction), -#DEBR A2 =SIMP(statut='o',typ=fonction), -#DEBR A3 =SIMP(statut='o',typ=fonction), -#DEBR A4 =SIMP(statut='o',typ=fonction), -#DEBR A5 =SIMP(statut='o',typ=fonction), -#DEBR GAMMA1 =SIMP(statut='o',typ=fonction), -#DEBR GAMMA2 =SIMP(statut='o',typ=fonction), -#DEBR GAMMA3 =SIMP(statut='o',typ=fonction), -#DEBR GAMMA4 =SIMP(statut='o',typ=fonction), -#DEBR GAMMA5 =SIMP(statut='o',typ=fonction), -#DEBR M1 =SIMP(statut='o',typ=fonction), -#DEBR M2 =SIMP(statut='o',typ=fonction), -#DEBR M3 =SIMP(statut='o',typ=fonction), -#DEBR M4 =SIMP(statut='o',typ=fonction), -#DEBR M5 =SIMP(statut='o',typ=fonction), -#DEBR VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), -#DEBR ), - LMARC =FACT(statut='f',min=0,max=1, - DE_0 =SIMP(statut='o',typ='R'), - R_0 =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - Y_I =SIMP(statut='o',typ='R'), - Y_0 =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - A_0 =SIMP(statut='o',typ='R'), - RM =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - P =SIMP(statut='o',typ='R'), - P1 =SIMP(statut='o',typ='R'), - P2 =SIMP(statut='o',typ='R'), - M11 =SIMP(statut='o',typ='R'), - M22 =SIMP(statut='o',typ='R'), - M33 =SIMP(statut='o',typ='R'), - M66 =SIMP(statut='o',typ='R'), - N11 =SIMP(statut='o',typ='R'), - N22 =SIMP(statut='o',typ='R'), - N33 =SIMP(statut='o',typ='R'), - N66 =SIMP(statut='o',typ='R'), - Q11 =SIMP(statut='o',typ='R'), - Q22 =SIMP(statut='o',typ='R'), - Q33 =SIMP(statut='o',typ='R'), - Q66 =SIMP(statut='o',typ='R'), - R11 =SIMP(statut='o',typ='R'), - R22 =SIMP(statut='o',typ='R'), - R33 =SIMP(statut='o',typ='R'), - R66 =SIMP(statut='o',typ='R'), - ), - LMARC_FO =FACT(statut='f',min=0,max=1, - DE_0 =SIMP(statut='o',typ=fonction), - R_0 =SIMP(statut='o',typ=fonction), - N =SIMP(statut='o',typ=fonction), - K =SIMP(statut='o',typ=fonction), - Y_I =SIMP(statut='o',typ=fonction), - Y_0 =SIMP(statut='o',typ=fonction), - B =SIMP(statut='o',typ=fonction), - A_0 =SIMP(statut='o',typ=fonction), - RM =SIMP(statut='o',typ=fonction), - M =SIMP(statut='o',typ=fonction), - P =SIMP(statut='o',typ=fonction), - P1 =SIMP(statut='o',typ=fonction), - P2 =SIMP(statut='o',typ=fonction), - M11 =SIMP(statut='o',typ=fonction), - M22 =SIMP(statut='o',typ=fonction), - M33 =SIMP(statut='o',typ=fonction), - M66 =SIMP(statut='o',typ=fonction), - N11 =SIMP(statut='o',typ=fonction), - N22 =SIMP(statut='o',typ=fonction), - N33 =SIMP(statut='o',typ=fonction), - N66 =SIMP(statut='o',typ=fonction), - Q11 =SIMP(statut='o',typ=fonction), - Q22 =SIMP(statut='o',typ=fonction), - Q33 =SIMP(statut='o',typ=fonction), - Q66 =SIMP(statut='o',typ=fonction), - R11 =SIMP(statut='o',typ=fonction), - R22 =SIMP(statut='o',typ=fonction), - R33 =SIMP(statut='o',typ=fonction), - R66 =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - VMIS_POUTRE =FACT(statut='f',min=0,max=1, - NP =SIMP(statut='o',typ='R'), - MEY =SIMP(statut='o',typ='R'), - MPY =SIMP(statut='o',typ='R'), - CAY =SIMP(statut='o',typ='R'), - CBY =SIMP(statut='o',typ='R'), - MEZ =SIMP(statut='o',typ='R'), - MPZ =SIMP(statut='o',typ='R'), - CAZ =SIMP(statut='o',typ='R'), - CBZ =SIMP(statut='o',typ='R'), - MPX =SIMP(statut='o',typ='R'), - ), - VMIS_POUTRE_FO =FACT(statut='f',min=0,max=1, - NP =SIMP(statut='o',typ=fonction), - MEY =SIMP(statut='o',typ=fonction), - MPY =SIMP(statut='o',typ=fonction), - CAY =SIMP(statut='o',typ=fonction), - CBY =SIMP(statut='o',typ=fonction), - MEZ =SIMP(statut='o',typ=fonction), - MPZ =SIMP(statut='o',typ=fonction), - CAZ =SIMP(statut='o',typ=fonction), - CBZ =SIMP(statut='o',typ=fonction), - MPX =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - ARME =FACT(statut='f',min=0,max=1, - KYE =SIMP(statut='o',typ='R'), - DLE =SIMP(statut='o',typ='R'), - KYP =SIMP(statut='o',typ='R'), - DLP =SIMP(statut='o',typ='R'), - KYG =SIMP(statut='o',typ='R'), - ), - ASSE_CORN =FACT(statut='f',min=0,max=1, - NU_1 =SIMP(statut='o',typ='R'), - MU_1 =SIMP(statut='o',typ='R'), - DXU_1 =SIMP(statut='o',typ='R'), - DRYU_1 =SIMP(statut='o',typ='R'), - C_1 =SIMP(statut='o',typ='R'), - NU_2 =SIMP(statut='o',typ='R'), - MU_2 =SIMP(statut='o',typ='R'), - DXU_2 =SIMP(statut='o',typ='R'), - DRYU_2 =SIMP(statut='o',typ='R'), - C_2 =SIMP(statut='o',typ='R'), - KY =SIMP(statut='o',typ='R'), - KZ =SIMP(statut='o',typ='R'), - KRX =SIMP(statut='o',typ='R'), - KRZ =SIMP(statut='o',typ='R'), - ), - DIS_CONTACT =FACT(statut='f',min=0,max=1, - RIGI_NOR =SIMP(statut='f',typ='R' ), - DIST_1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DIST_2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - JEU =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - KT_ULTM =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - EFFO_N_INIT =SIMP(statut='f',typ=fonction), - regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA',),), - RIGI_N_IRRA =SIMP(statut='f',typ=fonction), - RIGI_N_FO =SIMP(statut='f',typ=fonction), - RELA_MZ =SIMP(statut='f',typ=fonction), - C_PRAGER_MZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="DRZ",into=("DRZ",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ), - VERI_P3 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), -#DEBR NADAI_B =FACT(statut='f',min=0,max=1, -#DEBR F_C =SIMP(statut='o',typ='R'), -#DEBR F_T =SIMP(statut='o',typ='R'), -#DEBR CRIT_E_C =SIMP(statut='o',typ='R'), -#DEBR EPSP_P_C =SIMP(statut='o',typ='R'), -#DEBR EPSP_R_C =SIMP(statut='o',typ='R'), -#DEBR EPSI_R_T =SIMP(statut='o',typ='R'), -#DEBR FAC_T_C =SIMP(statut='o',typ='R'), -#DEBR ), - BETON_DOUBLE_DP =FACT(statut='f',min=0,max=1, - F_C =SIMP(statut='o',typ=fonction), - F_T =SIMP(statut='o',typ=fonction), - COEF_BIAX =SIMP(statut='o',typ=fonction), - ENER_COMP_RUPT =SIMP(statut='o',typ=fonction), - ENER_TRAC_RUPT =SIMP(statut='o',typ=fonction), - COEF_ELAS_COMP =SIMP(statut='o',typ='R'), - LONG_CARA =SIMP(statut='f',typ='R'), - ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ), - ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="INST",into=("TEMP","INST",) ), - VERI_P3 =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ), - VERI_P4 =SIMP(statut='c',typ='TXM',defaut="SECH",into=("SECH",) ), - ), - LABORD_1D=FACT(statut='f',min=0 ,max=1, - Y01 =SIMP(statut='o',typ='R'), - Y02 =SIMP(statut='o',typ='R'), - A1 =SIMP(statut='o',typ='R'), - A2 =SIMP(statut='o',typ='R'), - B1 =SIMP(statut='o',typ='R'), - B2 =SIMP(statut='o',typ='R'), - BETA1 =SIMP(statut='o',typ='R'), - BETA2 =SIMP(statut='o',typ='R'), - SIGF =SIMP(statut='o',typ='R'), - ), - MAZARS=FACT(statut='f',min=0 ,max=1, - EPSD0 =SIMP(statut='o',typ='R'), - BETA =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ='R'), - BC =SIMP(statut='o',typ='R'), - AT =SIMP(statut='o',typ='R'), - BT =SIMP(statut='o',typ='R'), - ), - MAZARS_FO=FACT(statut='f',min=0 ,max=1, - EPSD0 =SIMP(statut='o',typ=fonction), - BETA =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ=fonction), - BC =SIMP(statut='o',typ=fonction), - AT =SIMP(statut='o',typ=fonction), - BT =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), -#DEBR VENDOCHAB =FACT(statut='f',min=0,max=1, -#DEBR S_VP =SIMP(statut='o',typ='R'), -#DEBR SEDVP1 =SIMP(statut='o',typ='R'), -#DEBR SEDVP2 =SIMP(statut='o',typ='R'), -#DEBR N_VP =SIMP(statut='o',typ='R'), -#DEBR M_VP =SIMP(statut='o',typ='R'), -#DEBR K_VP =SIMP(statut='o',typ='R'), -#DEBR R_D =SIMP(statut='o',typ='R'), -#DEBR A_D =SIMP(statut='o',typ='R'), -#DEBR K_D =SIMP(statut='o',typ='R'), -#DEBR ), -#DEBR VENDOCHAB_FO =FACT(statut='f',min=0,max=1, -#DEBR S_VP =SIMP(statut='o',typ=fonction), -#DEBR SEDVP1 =SIMP(statut='o',typ=fonction), -#DEBR SEDVP2 =SIMP(statut='o',typ=fonction), -#DEBR N_VP =SIMP(statut='o',typ=fonction), -#DEBR M_VP =SIMP(statut='o',typ=fonction), -#DEBR K_VP =SIMP(statut='o',typ=fonction), -#DEBR R_D =SIMP(statut='o',typ=fonction), -#DEBR A_D =SIMP(statut='o',typ=fonction), -#DEBR K_D =SIMP(statut='o',typ=fonction), -#DEBR VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), -#DEBR VERI_P2 =SIMP(statut='c',typ='TXM',defaut="X",into=("X",) ), -#DEBR ), - PINTO_MENEGOTTO =FACT(statut='f',min=0,max=1, - SY =SIMP(statut='o',typ='R'), - EPSI_ULTM =SIMP(statut='o',typ='R'), - SIGM_ULTM =SIMP(statut='o',typ='R'), - ELAN =SIMP(statut='f',typ='R',defaut= 4. ), - EPSP_HARD =SIMP(statut='o',typ='R'), - R_PM =SIMP(statut='f',typ='R',defaut= 20. ), - EP_SUR_E =SIMP(statut='f',typ='R'), - A1_PM =SIMP(statut='f',typ='R',defaut= 18.5 ), - A2_PM =SIMP(statut='f',typ='R',defaut= 0.15 ), - A6_PM =SIMP(statut='f',typ='R',defaut= 620. ), - C_PM =SIMP(statut='f',typ='R',defaut= 0.5 ), - A_PM =SIMP(statut='f',typ='R',defaut= 6.0E-3 ), - ), - BPEL_BETON =FACT(statut='f',min=0,max=1, - PERT_FLUA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PERT_RETR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - BPEL_ACIER =FACT(statut='f',min=0,max=1, - RELAX_1000 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - MU0_RELAX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SY =SIMP(statut='o',typ='R'), - FROT_COURB =SIMP(statut='o',typ='R'), - FROT_LINE =SIMP(statut='o',typ='R'), - ), - CAM_CLAY =FACT(statut='f',min=0,max=1, - PORO =SIMP(statut='o',typ='R'), - LAMBDA =SIMP(statut='o',typ='R'), - KAPA =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - PRES_CRIT =SIMP(statut='o',typ='R'), - PA =SIMP(statut='o',typ='R'), - ), - CJS =FACT(statut='f',min=0,max=1, - BETA_CJS =SIMP(statut='o',typ='R'), - RM =SIMP(statut='o',typ='R'), - N_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - KP =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - A_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - B_CJS =SIMP(statut='f',typ='R',defaut= 1.0E+25 ), - C_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GAMMA_CJS =SIMP(statut='o',typ='R'), - MU_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PCO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PA =SIMP(statut='o',typ='R'), - Q_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - R_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ECRO_ASYM_LINE =FACT(statut='f',min=0,max=1, - DC_SIGM_EPSI =SIMP(statut='o',typ='R'), - SY_C =SIMP(statut='o',typ='R'), - DT_SIGM_EPSI =SIMP(statut='o',typ='R'), - SY_T =SIMP(statut='o',typ='R'), - ), - GRANGER_FP =FACT(statut='f',min=0,max=1, - J1 =SIMP(statut='f',typ='R'), - J2 =SIMP(statut='f',typ='R'), - J3 =SIMP(statut='f',typ='R'), - J4 =SIMP(statut='f',typ='R'), - J5 =SIMP(statut='f',typ='R'), - J6 =SIMP(statut='f',typ='R'), - J7 =SIMP(statut='f',typ='R'), - J8 =SIMP(statut='f',typ='R'), - TAUX_1 =SIMP(statut='f',typ='R'), - TAUX_2 =SIMP(statut='f',typ='R'), - TAUX_3 =SIMP(statut='f',typ='R'), - TAUX_4 =SIMP(statut='f',typ='R'), - TAUX_5 =SIMP(statut='f',typ='R'), - TAUX_6 =SIMP(statut='f',typ='R'), - TAUX_7 =SIMP(statut='f',typ='R'), - TAUX_8 =SIMP(statut='f',typ='R'), - QSR_K =SIMP(statut='f',typ='R'), - ), - V_GRANGER_FP =FACT(statut='f',min=0,max=1, - QSR_VEIL =SIMP(statut='f',typ='R'), - FONC_V =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ), - ), - BAZANT_FD =FACT(statut='f',min=0,max=1, - LAM_VISC =SIMP(statut='o',typ='R'), - ), - -# -# comportement thermique -# - THER_NL =FACT(statut='f',min=0,max=1, - regles=(UN_PARMI('BETA','RHO_CP', ),), - LAMBDA =SIMP(statut='o',typ=fonction), - BETA =SIMP(statut='f',typ=fonction), - RHO_CP =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - THER_HYDR =FACT(statut='f',min=0,max=1, - LAMBDA =SIMP(statut='o',typ=fonction), - BETA =SIMP(statut='f',typ=fonction), - AFFINITE =SIMP(statut='o',typ=fonction), - CHALHYDR =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='o',typ='R'), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("HYDR",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ), - ), - THER =FACT(statut='f',min=0,max=1, - LAMBDA =SIMP(statut='o',typ='R'), - RHO_CP =SIMP(statut='f',typ='R'), - ), - THER_FO =FACT(statut='f',min=0,max=1, - LAMBDA =SIMP(statut='o',typ=fonction), - RHO_CP =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ), - ), - THER_ORTH =FACT(statut='f',min=0,max=1, - LAMBDA_L =SIMP(statut='o',typ='R'), - LAMBDA_T =SIMP(statut='o',typ='R'), - LAMBDA_N =SIMP(statut='f',typ='R'), - RHO_CP =SIMP(statut='f',typ='R'), - ), - THER_COQUE =FACT(statut='f',min=0,max=1, - COND_LMM =SIMP(statut='o',typ='R'), - COND_TMM =SIMP(statut='o',typ='R'), - COND_LMP =SIMP(statut='o',typ='R'), - COND_TMP =SIMP(statut='o',typ='R'), - COND_LPP =SIMP(statut='o',typ='R'), - COND_TPP =SIMP(statut='o',typ='R'), - COND_LSI =SIMP(statut='o',typ='R'), - COND_TSI =SIMP(statut='o',typ='R'), - COND_NMM =SIMP(statut='o',typ='R'), - COND_NMP =SIMP(statut='o',typ='R'), - COND_NPP =SIMP(statut='o',typ='R'), - COND_NSI =SIMP(statut='o',typ='R'), - CMAS_MM =SIMP(statut='f',typ='R'), - CMAS_MP =SIMP(statut='f',typ='R'), - CMAS_PP =SIMP(statut='f',typ='R'), - CMAS_SI =SIMP(statut='f',typ='R'), - ), - THER_COQUE_FO =FACT(statut='f',min=0,max=1, - COND_LMM =SIMP(statut='o',typ=fonction), - COND_TMM =SIMP(statut='o',typ=fonction), - COND_LMP =SIMP(statut='o',typ=fonction), - COND_TMP =SIMP(statut='o',typ=fonction), - COND_LPP =SIMP(statut='o',typ=fonction), - COND_TPP =SIMP(statut='o',typ=fonction), - COND_LSI =SIMP(statut='o',typ=fonction), - COND_TSI =SIMP(statut='o',typ=fonction), - COND_NMM =SIMP(statut='o',typ=fonction), - COND_NMP =SIMP(statut='o',typ=fonction), - COND_NPP =SIMP(statut='o',typ=fonction), - COND_NSI =SIMP(statut='o',typ=fonction), - CMAS_MM =SIMP(statut='f',typ=fonction), - CMAS_MP =SIMP(statut='f',typ=fonction), - CMAS_PP =SIMP(statut='f',typ=fonction), - CMAS_SI =SIMP(statut='f',typ=fonction), - ), - SECH_GRANGER =FACT(statut='f',min=0,max=1, - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='o',typ='R'), - TEMP_0_C =SIMP(statut='o',typ='R'), - ), - SECH_MENSI =FACT(statut='f',min=0,max=1, - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - ), - SECH_BAZANT =FACT(statut='f',min=0,max=1, - D1 =SIMP(statut='o',typ='R'), - ALPHA_BAZANT =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - FONC_DESORP =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - SECH_NAPPE =FACT(statut='f',min=0,max=1, - FONCTION =SIMP(statut='o',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="TSEC",into=("TSEC",) ), - ), -# -# comportement métallurgique -# - META_ACIER =FACT(statut='f',min=0,max=1, - TRC =SIMP(statut='o',typ=(tabl_trc) ), - AR3 =SIMP(statut='o',typ='R'), - ALPHA =SIMP(statut='o',typ='R'), - MS0 =SIMP(statut='o',typ='R'), - AC1 =SIMP(statut='o',typ='R'), - AC3 =SIMP(statut='o',typ='R'), - TAUX_1 =SIMP(statut='o',typ='R'), - TAUX_3 =SIMP(statut='o',typ='R'), - LAMBDA0 =SIMP(statut='f',typ='R'), - QSR_K =SIMP(statut='f',typ='R'), - D10 =SIMP(statut='f',typ='R'), - WSR_K =SIMP(statut='f',typ='R'), - ), - META_ZIRC =FACT(statut='f',min=0,max=1, - TDEQ =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - TDC =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='f',typ='R'), - TDR =SIMP(statut='o',typ='R'), - AR =SIMP(statut='o',typ='R'), - BR =SIMP(statut='o',typ='R'), - ), - DURT_META =FACT(statut='f',min=0,max=1, - F1_DURT =SIMP(statut='o',typ='R'), - F2_DURT =SIMP(statut='o',typ='R'), - F3_DURT =SIMP(statut='o',typ='R'), - F4_DURT =SIMP(statut='o',typ='R'), - C_DURT =SIMP(statut='o',typ='R'), - ), - ELAS_META =FACT(statut='f',min=0,max=1, - E =SIMP(statut='o',typ='R'), - NU =SIMP(statut='o',typ='R'), - F_ALPHA =SIMP(statut='o',typ='R'), - C_ALPHA =SIMP(statut='o',typ='R'), - PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), - EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), - F1_SY =SIMP(statut='f',typ='R'), - F2_SY =SIMP(statut='f',typ='R'), - F3_SY =SIMP(statut='f',typ='R'), - F4_SY =SIMP(statut='f',typ='R'), - C_SY =SIMP(statut='f',typ='R'), - SY_MELANGE =SIMP(statut='f',typ=fonction), - F1_S_VP =SIMP(statut='f',typ='R'), - F2_S_VP =SIMP(statut='f',typ='R'), - F3_S_VP =SIMP(statut='f',typ='R'), - F4_S_VP =SIMP(statut='f',typ='R'), - C_S_VP =SIMP(statut='f',typ='R' ), - S_VP_MELANGE =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="META",into=("META",)), - ), - ELAS_META_FO =FACT(statut='f',min=0,max=1, - regles=( - PRESENT_PRESENT('F_ALPHA','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('C_ALPHA','TEMP_DEF_ALPHA'), - ), - E =SIMP(statut='o',typ=fonction), - NU =SIMP(statut='o',typ=fonction), - F_ALPHA =SIMP(statut='o',typ=fonction), - C_ALPHA =SIMP(statut='o',typ=fonction), - PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), - EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), - F1_SY =SIMP(statut='f',typ=fonction), - F2_SY =SIMP(statut='f',typ=fonction), - F3_SY =SIMP(statut='f',typ=fonction), - F4_SY =SIMP(statut='f',typ=fonction), - C_SY =SIMP(statut='f',typ=fonction), - SY_MELANGE =SIMP(statut='f',typ=fonction), - F1_S_VP =SIMP(statut='f',typ=fonction), - F2_S_VP =SIMP(statut='f',typ=fonction), - F3_S_VP =SIMP(statut='f',typ=fonction), - F4_S_VP =SIMP(statut='f',typ=fonction), - C_S_VP =SIMP(statut='f',typ=fonction), - S_VP_MELANGE =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="META",into=("META",)), - ), - META_ECRO_LINE =FACT(statut='f',min=0,max=1, - F1_D_SIGM_EPSI =SIMP(statut='f',typ=fonction), - F2_D_SIGM_EPSI =SIMP(statut='f',typ=fonction), - F3_D_SIGM_EPSI =SIMP(statut='f',typ=fonction), - F4_D_SIGM_EPSI =SIMP(statut='f',typ=fonction), - C_D_SIGM_EPSI =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)), - ), - META_TRACTION =FACT(statut='f',min=0,max=1, - SIGM_F1 =SIMP(statut='f',typ=fonction), - SIGM_F2 =SIMP(statut='f',typ=fonction), - SIGM_F3 =SIMP(statut='f',typ=fonction), - SIGM_F4 =SIMP(statut='f',typ=fonction), - SIGM_C =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="EPSI",into=("EPSI",)), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)), - ), - META_VISC_FO =FACT(statut='f',min=0,max=1, - F1_ETA =SIMP(statut='f',typ=fonction), - F1_N =SIMP(statut='f',typ=fonction), - F1_C =SIMP(statut='f',typ=fonction), - F1_M =SIMP(statut='f',typ=fonction), - F2_ETA =SIMP(statut='f',typ=fonction), - F2_N =SIMP(statut='f',typ=fonction), - F2_C =SIMP(statut='f',typ=fonction), - F2_M =SIMP(statut='f',typ=fonction), - F3_ETA =SIMP(statut='f',typ=fonction), - F3_N =SIMP(statut='f',typ=fonction), - F3_C =SIMP(statut='f',typ=fonction), - F3_M =SIMP(statut='f',typ=fonction), - F4_ETA =SIMP(statut='f',typ=fonction), - F4_N =SIMP(statut='f',typ=fonction), - F4_C =SIMP(statut='f',typ=fonction), - F4_M =SIMP(statut='f',typ=fonction), - C_ETA =SIMP(statut='f',typ=fonction), - C_N =SIMP(statut='f',typ=fonction), - C_C =SIMP(statut='f',typ=fonction), - C_M =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - META_PT =FACT(statut='f',min=0,max=1, - F1_K =SIMP(statut='f',typ='R'), - F2_K =SIMP(statut='f',typ='R'), - F3_K =SIMP(statut='f',typ='R'), - F4_K =SIMP(statut='f',typ='R'), - F1_D_F_META =SIMP(statut='f',typ=fonction), - F2_D_F_META =SIMP(statut='f',typ=fonction), - F3_D_F_META =SIMP(statut='f',typ=fonction), - F4_D_F_META =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="META",into=("META",) ), - ), - META_RE =FACT(statut='f',min=0,max=1, - C_F1_THETA =SIMP(statut='f',typ='R'), - C_F2_THETA =SIMP(statut='f',typ='R'), - C_F3_THETA =SIMP(statut='f',typ='R'), - C_F4_THETA =SIMP(statut='f',typ='R'), - F1_C_THETA =SIMP(statut='f',typ='R'), - F2_C_THETA =SIMP(statut='f',typ='R'), - F3_C_THETA =SIMP(statut='f',typ='R'), - F4_C_THETA =SIMP(statut='f',typ='R'), - ), -# -# comportement fluide -# - FLUIDE =FACT(statut='f',min=0,max=1, - regles=(EXCLUS('CELE_C','CELE_R'),), - RHO =SIMP(statut='o',typ='R'), - CELE_C =SIMP(statut='f',typ='C'), - CELE_R =SIMP(statut='f',typ='R'), - ), - PORO_JOINT =FACT(statut='f',min=0,max=1, - RHO_FLUI =SIMP(statut='o',typ='R'), - ENTRO_FLUI =SIMP(statut='o',typ='R'), - BIOT_M =SIMP(statut='o',typ='R'), - C_0 =SIMP(statut='o',typ='R'), - T_R =SIMP(statut='o',typ='R'), - ALPHA_M =SIMP(statut='o',typ='R'), - LAMBDA_T =SIMP(statut='o',typ='R'), - LAMBDA_H =SIMP(statut='o',typ='R'), - SOURCE_INIT =SIMP(statut='o',typ='R'), - OMEGA_0 =SIMP(statut='o',typ='R'), - ), - THM_LIQU =FACT(statut='f',min=0,max=1, - RHO =SIMP(statut='o',typ='R'), - UN_SUR_K =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=fonction), - D_VISC_TEMP =SIMP(statut='f',typ=fonction), - LAMBDA =SIMP(statut='f',typ=fonction), - D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction), - COEF_HENRY =SIMP(statut='f',typ='R'), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)), - ), - THM_GAZ =FACT(statut='f',min=0,max=1, - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=fonction), - D_VISC_TEMP =SIMP(statut='f',typ=fonction), - LAMBDA =SIMP(statut='f',typ=fonction), - D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)), - ), - THM_VAPE_GAZ =FACT(statut='f',min=0,max=1, - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=fonction), - D_VISC_TEMP =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)), - ), - THM_INIT =FACT(statut='f',min=0,max=1, - TEMP =SIMP(statut='o',typ='R'), - PRE1 =SIMP(statut='o',typ='R'), - PRE2 =SIMP(statut='o',typ='R'), - PORO =SIMP(statut='o',typ='R'), - PRES_VAPE =SIMP(statut='o',typ='R'), - DEGR_SATU =SIMP(statut='f',typ='R'), - PRES_ATMO =SIMP(statut='f',typ='R'), - ), - THM_DIFFU =FACT(statut='f',min=0,max=1, - R_GAZ =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - BIOT_COEF =SIMP(statut='f',typ='R'), - SATU_PRES =SIMP(statut='f',typ=fonction), - D_SATU_PRES =SIMP(statut='f',typ=fonction), - PESA_X =SIMP(statut='f',typ='R'), - PESA_Y =SIMP(statut='f',typ='R'), - PESA_Z =SIMP(statut='f',typ='R'), - PERM_IN =SIMP(statut='f',typ=fonction), - PERM_LIQU =SIMP(statut='f',typ=fonction), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=fonction), - PERM_GAZ =SIMP(statut='f',typ=fonction), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=fonction), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=fonction), - FICK =SIMP(statut='f',typ=fonction), - D_FICK_TEMP =SIMP(statut='f',typ=fonction), - D_FICK_GAZ_PRES =SIMP(statut='f',typ=fonction), - LAMBDA =SIMP(statut='f',typ=fonction), - D_LAMBDA_TEMP =SIMP(statut='f',typ=fonction), - SIGMA_T =SIMP(statut='f',typ=fonction), - D_SIGMA_T =SIMP(statut='f',typ=fonction), - PERM_G_INTR =SIMP(statut='f',typ=fonction), - CHAL_VAPO =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="SAT",into=("SAT",) ), - VERI_P3 =SIMP(statut='c',typ='TXM',defaut="PORO",into=("PORO",) ), - VERI_P4 =SIMP(statut='c',typ='TXM',defaut="PGAZ",into=("PGAZ",) ), - VERI_P5 =SIMP(statut='c',typ='TXM',defaut="PCAP",into=("PCAP",) ), - ), -# -# courbes et coefficients associés à la fatigue et au dommage -# - FATIGUE =FACT(statut='f',min=0,max=1, - regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'), - PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'), - PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'), - ENSEMBLE('A_BASQUIN','BETA_BASQUIN'), - ENSEMBLE('A0','A1','A2','A3','SL'), - PRESENT_PRESENT('A0','E_REFE'), - ENSEMBLE('D0','TAU0'),), - WOHLER =SIMP(statut='f',typ=fonction), - A_BASQUIN =SIMP(statut='f',typ='R'), - BETA_BASQUIN =SIMP(statut='f',typ='R'), - A0 =SIMP(statut='f',typ='R'), - A1 =SIMP(statut='f',typ='R'), - A2 =SIMP(statut='f',typ='R'), - A3 =SIMP(statut='f',typ='R'), - SL =SIMP(statut='f',typ='R'), - MANSON_COFFIN =SIMP(statut='f',typ=fonction), - E_REFE =SIMP(statut='f',typ='R'), - D0 =SIMP(statut='f',typ='R'), - TAU0 =SIMP(statut='f',typ='R'), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="SIGM",into=("SIGM",) ), - VERI_P2 =SIMP(statut='c',typ='TXM',defaut="EPSI",into=("EPSI",) ), - ), - DOMMA_LEMAITRE =FACT(statut='f',min=0,max=1, - S =SIMP(statut='o',typ=fonction), - EPSP_SEUIL =SIMP(statut='o',typ='R'), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - CISA_PLAN_CRIT =FACT(statut='f',min=0,max=1, - MATAKE_A =SIMP(statut='o',typ='R'), - MATAKE_B =SIMP(statut='o',typ='R'), - ENDU_FT =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), - ), -# -# autres comportements ... -# - WEIBULL =FACT(statut='f',min=0,max=1, - M =SIMP(statut='o',typ='R'), - VOLU_REFE =SIMP(statut='o',typ='R'), - SIGM_REFE =SIMP(statut='o',typ='R'), - SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ), - WEIBULL_FO =FACT(statut='f',min=0,max=1, - M =SIMP(statut='o',typ='R'), - VOLU_REFE =SIMP(statut='o',typ='R'), - SIGM_CNV =SIMP(statut='o',typ='R'), - SIGM_REFE =SIMP(statut='o',typ=fonction), - SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - CONTACT =FACT(statut='f',min=0,max=1, - E_N =SIMP(statut='o',typ='R'), - E_T =SIMP(statut='f',typ='R',defaut= 0.E+0), - COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0), - ), - NON_LOCAL =FACT(statut='f',min=0,max=1, - LONG_CARA =SIMP(statut='o',typ='R'), - COEF_RIGI_MINI =SIMP(statut='f',typ='R'), - ), - RUPT_FRAG =FACT(statut='f',min=0,max=1, - GC =SIMP(statut='o',typ='R'), - SIGM_C =SIMP(statut='f',typ='R'), - SAUT_C =SIMP(statut='f',typ='R'), - ), - RCCM =FACT(statut='f',min=0,max=1, - SY_02 =SIMP(statut='f',typ='R'), - SM =SIMP(statut='f',typ='R'), - SU =SIMP(statut='f',typ='R'), - SC =SIMP(statut='f',typ='R'), - SH =SIMP(statut='f',typ='R'), - N_KE =SIMP(statut='f',typ='R'), - M_KE =SIMP(statut='f',typ='R'), - ), - RCCM_FO =FACT(statut='f',min=0,max=1, - SY_02 =SIMP(statut='f',typ=fonction), - SM =SIMP(statut='f',typ=fonction), - SU =SIMP(statut='f',typ=fonction), - S =SIMP(statut='f',typ=fonction), - N_KE =SIMP(statut='f',typ=fonction), - M_KE =SIMP(statut='f',typ=fonction), - VERI_P1 =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ), - ), - LAIGLE =FACT(statut='f',min=0,max=1, - GAMMA_ULT =SIMP(statut='o',typ='R'), - GAMMA_E =SIMP(statut='o',typ='R'), - M_ULT =SIMP(statut='o',typ='R'), - M_E =SIMP(statut='o',typ='R'), - A_E =SIMP(statut='o',typ='R'), - M_PIC =SIMP(statut='o',typ='R'), - A_PIC =SIMP(statut='o',typ='R'), - ETA =SIMP(statut='o',typ='R'), - SIGMA_C =SIMP(statut='o',typ='R'), - GAMMA =SIMP(statut='o',typ='R'), - KSI =SIMP(statut='o',typ='R'), - GAMMA_CJS =SIMP(statut='o',typ='R'), - SIGMA_P1 =SIMP(statut='o',typ='R'), - SIGMA_P2 =SIMP(statut='o',typ='R'), - PA =SIMP(statut='o',typ='R'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene, - docu="U4.65.02-e",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - SOUS_STRUC =FACT(statut='o',min=1,max='**', - NOM =SIMP(statut='o',typ='TXM' ), - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - TRANS =SIMP(statut='f',typ='R',max=3), - ), - LIAISON =FACT(statut='o',min=1,max='**', - SOUS_STRUC_1 =SIMP(statut='o',typ='TXM' ), - INTERFACE_1 =SIMP(statut='o',typ='TXM' ), - SOUS_STRUC_2 =SIMP(statut='o',typ='TXM' ), - INTERFACE_2 =SIMP(statut='o',typ='TXM' ), - ), - VERIF =FACT(statut='f',min=1,max='**', -# dans la doc U stop_erreur est obligatoire - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op= 4,sd_prod=fonction, - fr="Définition des valeurs d une fonction de deux variables réelles", - docu="U4.31.03-g",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('FONCTION','DEFI_FONCTION'), - EXCLUS('FONCTION','NOM_PARA_FONC',), - ENSEMBLE('NOM_PARA_FONC','DEFI_FONCTION'),), - NOM_PARA =SIMP(statut='o',typ='TXM',into=("TEMP","INST","X","Y","Z","FREQ","PULS", - "AMOR","EPAIS","TSEC","HYDR","SECH", - "SAT", "PGAZ","PCAP" - ) ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - PARA =SIMP(statut='o',typ='R',max='**'), - FONCTION =SIMP(statut='f',typ=fonction,max='**' ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("TEMP","INST","X","Y","Z","EPSI","FREQ", - "PULS","AMOR","EPAIS","SAT", "PGAZ","PCAP") ), - DEFI_FONCTION =FACT(statut='f',max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op= 73,sd_prod=obstacle - ,fr="Définition d un obstacle plan perpendiculaire à une structure filaire", - docu="U4.44.21-f",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 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op= 2,sd_prod=para_sensi, - fr="Définition d'un paramètre de sensibilité", - ang="Definition of a sensitive parameter", - docu="U4.31.06-a",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - NOM_RESU =SIMP(statut='c',typ='TXM',into=("TOUTRESU",),defaut="TOUTRESU", - fr="Nom du concept créé", - ang="Name of the concept"), - VALE =SIMP(statut='o',typ='R',max=1, - fr="Valeur du parametre", - ang="Value of the parameter"), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre, - fr="Définition d'un spectre d'excitation turbulente", - docu="U4.44.31-d",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(UN_PARMI('SPEC_LONG_COR_1','SPEC_LONG_COR_2','SPEC_LONG_COR_3', - 'SPEC_LONG_COR_4','SPEC_CORR_CONV_1','SPEC_CORR_CONV_2', - 'SPEC_FONC_FORME','SPEC_EXCI_POINT'),), - SPEC_LONG_COR_1 =FACT(statut='f',max=1, - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ), - VISC_CINE =SIMP(statut='o',typ='R' ), - ), - SPEC_LONG_COR_2 =FACT(statut='f',max=1, - regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ), - FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.1 ), - PHI0 =SIMP(statut='f',typ='R',defaut= 1.5E-3 ), - BETA =SIMP(statut='f',typ='R',defaut= 2.7 ), - ), - SPEC_LONG_COR_3 =FACT(statut='f',max=1, - regles=(ENSEMBLE('PHI0_1','BETA_1','PHI0_2','BETA_2','FREQ_COUP'),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ), - FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.2 ), - PHI0_1 =SIMP(statut='f',typ='R',defaut= 5.E-3 ), - BETA_1 =SIMP(statut='f',typ='R',defaut= 0.5 ), - PHI0_2 =SIMP(statut='f',typ='R',defaut= 4.E-5 ), - BETA_2 =SIMP(statut='f',typ='R',defaut= 3.5 ), - ), - SPEC_LONG_COR_4 =FACT(statut='f',max=1, - regles=(ENSEMBLE('BETA','GAMMA'),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=fonction ), - TAUX_VIDE =SIMP(statut='o',typ='R' ), - BETA =SIMP(statut='f',typ='R',defaut= 2. ), - GAMMA =SIMP(statut='f',typ='R',defaut= 4. ), - ), - SPEC_CORR_CONV_1=FACT(statut='f',max=1, - LONG_COR_1 =SIMP(statut='o',typ='R' ), - LONG_COR_2 =SIMP(statut='f',typ='R' ), - VITE_FLUI =SIMP(statut='o',typ='R' ), - RHO_FLUI =SIMP(statut='o',typ='R' ), - FREQ_COUP =SIMP(statut='f',typ='R' ), - K =SIMP(statut='f',typ='R',defaut= 5.8E-3 ), - D_FLUI =SIMP(statut='o',typ='R' ), - COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), - COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), - METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", - into=("AU_YANG","GENERALE","CORCOS") ), - ), - SPEC_CORR_CONV_2=FACT(statut='f',max=1, - FONCTION =SIMP(statut='o',typ=fonction ), - VITE_FLUI =SIMP(statut='o',typ='R' ), - FREQ_COUP =SIMP(statut='f',typ='R' ), - METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", - into=("AU_YANG","GENERALE","CORCOS",) ), - COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), - COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), - ), - SPEC_FONC_FORME =FACT(statut='f',max=1, - regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'), - ENSEMBLE('INTE_SPEC','FONCTION'),), - INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ), - FONCTION =SIMP(statut='f',typ=fonction,max='**'), - GRAPPE_1 =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ), - NOEUD =SIMP(statut='o',typ=no), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - MODELE =SIMP(statut='o',typ=modele ), - ), - SPEC_EXCI_POINT =FACT(statut='f',max=1, - regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),), - INTE_SPEC =SIMP(statut='f',typ=tabl_intsp ), - GRAPPE_2 =SIMP(statut='f',typ='TXM', - into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ), -# Quels sont les statuts des mots cles à l interieur des deux blocs qui suivent - b_inte_spec =BLOC(condition = "INTE_SPEC != None", - NATURE =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ), - ANGL =SIMP(statut='o',typ='R',max='**'), - NOEUD =SIMP(statut='o',typ=no,max='**'), - ), - b_grappe_2 =BLOC(condition = "GRAPPE_2 != None", - RHO_FLUI =SIMP(statut='o',typ='R' ), - NOEUD =SIMP(statut='o',typ=no), - ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - MODELE =SIMP(statut='o',typ=modele ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette, - fr="Définition d un maillage de visualisation", - docu="U4.24.01-f",reentrant='n', - UIinfo={"groupes":("Maillage",)}, - regles=(UN_PARMI('MODE_CYCL','MODELE_GENE','MAILLAGE'), - PRESENT_PRESENT('MODE_CYCL','SECTEUR'), - EXCLUS('SOUS_STRUC','SECTEUR'), - PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'), - PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),), - MODE_CYCL =SIMP(statut='f',typ=mode_cycl ), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - SQUELETTE =SIMP(statut='f',typ=squelette ), - RECO_GLOBAL =FACT(statut='f',min=1,max='**', - regles=(EXCLUS('TOUT','GROUP_NO_1'), - PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'), - PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'), - PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'), - PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),), - TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - DIST_REFE =SIMP(statut='f',typ='R' ), - ), - NOM_GROUP_MA =FACT(statut='f',min=1,max='**', - NOM =SIMP(statut='o',typ='TXM' ), - SOUS_STRUC =SIMP(statut='o',typ='TXM' ), - GROUP_MA =SIMP(statut='o',typ=grma), - ), - EXCLUSIF =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - MAILLAGE =SIMP(statut='f',typ=maillage ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRANS =SIMP(statut='f',typ='R',min=3,max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), - SOUS_STRUC =FACT(statut='f',min=1,max='**', - NOM =SIMP(statut='f',typ='TXM' ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - SECTEUR =FACT(statut='f',min=1,max='**', - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture, - fr=" ",docu="U4.43.05-b",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - SYST_GLISSEMENT =FACT(statut='o',min=3,max=3, - N =SIMP(statut='o',typ='R',min=12,max=12 ), - L =SIMP(statut='o',typ='R',max='**' ), - ), - PLAN =FACT(statut='o',min=40,max=40, - ANGL_NAUT =SIMP(statut='o',typ='R',max='**' ), - PROPORTION =SIMP(statut='o',typ='R' ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 03/12/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction,docu="U4.mk.20-d",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Calculer la fonction d évolution temporelle de température due à l effet JOULE dans un cable", - LIST_INST =SIMP(statut='o',typ=listr8), - INST_CC_INIT =SIMP(statut='f',typ='R',defaut= 0.0E+0 ), - INST_CC_FIN =SIMP(statut='f',typ='R',defaut= 1.0E+10), - INST_RENC_INIT =SIMP(statut='f',typ='R',defaut= 1.0E+10), - INST_RENC_FIN =SIMP(statut='f',typ='R',defaut= 1.0E+10), - TEMP_EXT_POSE =SIMP(statut='f',typ='R',defaut= 15.0E+0), - TEMP_EXT =SIMP(statut='f',typ='R',defaut= 15.0E+0), - TEMP_RESI_REF =SIMP(statut='f',typ='R',defaut= 20.0E+0), - PARA_COND_1D =FACT(statut='f',min=1,max='**', - INTE_CC =SIMP(statut='f',typ='R',defaut= 0.0E+0), - INTE_RENC =SIMP(statut='f',typ='R',defaut= 0.0E+0), - A =SIMP(statut='f',typ='R',defaut= 1.0E+0), - SECTION =SIMP(statut='f',typ='TXM',defaut="CERCLE",into=("CERCLE",) ), - RESI_R0 =SIMP(statut='f',typ='R',defaut= 0.0E+0), - RESI_R1 =SIMP(statut='f',typ='R',defaut= 0.E+0), - RHO_CP =SIMP(statut='f',typ='R',defaut= 1.0E+0), - COEF_H =SIMP(statut='f',typ='R',defaut= 40.0E+0), - TEMP_INIT =SIMP(statut='f',typ='R',defaut= 15.0E+0), - ), -) ; - -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,docu="U4.43.04-f",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="Définition d un diagramme de transformations en refroidissement continu d un acier", - HIST_EXP =FACT(statut='o',min=1,max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - ), - TEMP_MS =FACT(statut='o',min=1,max='**', - SEUIL =SIMP(statut='o',typ='R'), - AKM =SIMP(statut='o',typ='R'), - BKM =SIMP(statut='o',typ='R'), - TPLM =SIMP(statut='o',typ='R'), - ), - GRAIN_AUST =FACT(statut='f',min=1,max='**', - DREF =SIMP(statut='f',typ='R'), - A =SIMP(statut='f',typ='R'), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def defi_valeur_prod(self,IS=None,R8=None,TX=None,C8=None,LS=None): - if IS != None : return entier - if R8 != None : return reel - if TX != None : return chaine - if C8 != None : return complexe - if LS != None : return liste - raise AsException("type de concept resultat non prevu") - -DEFI_VALEUR=MACRO(nom="DEFI_VALEUR",op=-4,sd_prod=defi_valeur_prod, - fr="Affectation d une valeur à une variable Superviseur", - docu="U4.31.04-f",reentrant='f', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('IS','R8','TX','C8','LS'),), - IS =SIMP(statut='f',typ='I',max='**'), - R8 =SIMP(statut='f',typ='R',max='**'), - TX =SIMP(statut='f',typ='TXM',max='**'), - C8 =SIMP(statut='f',typ='C',max='**'), - LS =SIMP(statut='f',typ='L',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFUFI=PROC(nom="DEFUFI",op=21,docu="U4.12.01-e", - UIinfo={"groupes":("Gestion du travail",)}, - fr="Modification / ajout d une unité logique en sortie en complément de celles définies dans DEBUT", - IMPRESSION =FACT(statut='o',min=1,max='**', - NOM =SIMP(statut='o',typ='TXM',max='**'), - UNITE =SIMP(statut='o',typ='I' ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,docu="U4.62.02-f",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Récupération du champ de déplacement interne à une sous-structure", - DEPL_GLOBAL =SIMP(statut='o',typ=cham_no_depl_r), - MAILLE =SIMP(statut='o',typ=ma,max=1), - NOM_CAS =SIMP(statut='f',typ='TXM',defaut=" "), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DETRUIRE=PROC(nom="DETRUIRE",op=-7,docu="U4.14.01-e", - UIinfo={"groupes":("Gestion du travail",)}, - fr="Destruction d un concept utilisateur dans la base GLOBALE", - op_init=ops.detruire, - CONCEPT =FACT(statut='o',min=01, - NOM =SIMP(statut='o',typ=assd,max='**'), - ), -); -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction,docu="U4.mk.30-d",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Calcul sous forme d une fonction du temps de la distance minimale entre deux structures filaires", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'), - UN_PARMI('GROUP_MA_2','POIN_FIXE'),), - MODELE =SIMP(statut='o',typ=modele), - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,evol_noli) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - LIST_ORDRE =SIMP(statut='f',typ=listis), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - POIN_FIXE =SIMP(statut='f',typ='R',min=3,max=3), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp - ,fr="Calcule la réponse spectrale d une structure linéaire sous une excitation connue par sa DSP", - docu="U4.53.22-e",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - BASE_MODALE =FACT(statut='o',min=1,max=1, - regles=(UN_PARMI('NUME_ORDRE','BANDE'),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - BANDE =SIMP(statut='f',typ='R',max=2), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - b_bande =BLOC(condition = "BANDE != None", - AMOR_UNIF =SIMP(statut='o',typ='R' ), - ), - b_nume_ordre =BLOC(condition = "NUME_ORDRE != None", - AMOR_REDUIT =SIMP(statut='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',min=1,max=1, - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ), - 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), - 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',min=1,max=1, - regles=( ENSEMBLE('FREQ_MIN','FREQ_MAX'),), - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ,) ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), - FREQ_MIN =SIMP(statut='f',typ='R' ), - FREQ_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - b_defaut_freq =BLOC(condition = "FREQ_MIN == NONE", - FREQ_EXCIT =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ), - NB_POIN_MODE =SIMP(statut='f',typ='I',defaut= 50 ), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def dyna_line_harm_prod(MATR_MASS,**args): - if AsType(MATR_MASS) == matr_asse_depl_r : return dyna_harmo - if AsType(MATR_MASS) == matr_asse_depl_c : return dyna_harmo - if AsType(MATR_MASS) == matr_asse_pres_c : return acou_harmo - if AsType(MATR_MASS) == matr_asse_gene_r : return harm_gene - raise AsException("type de concept resultat non prevu") - -DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, - fr="Réponse dynamique complexe d un système à une excitation harmonique", - docu="U4.53.11-f",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'), - PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'), - PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'), - UN_PARMI('FREQ','LIST_FREQ'),), - MODELE =SIMP(statut='f',typ=modele ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ), - MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c - ,matr_asse_gene_r,matr_asse_gene_c ) ), - MATR_AMOR =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8 ), - MATR_IMPE_PHI =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOM_CHAM =SIMP(statut='f',typ='TXM',max=3,into=("DEPL","VITE","ACCE") ), - EXCIT =FACT(statut='o',min=1,max='**', - regles=(UN_PARMI('VECT_ASSE','CHARGE'), - UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - VECT_ASSE =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_pres_c,vect_asse_gene ) ), - CHARGE =SIMP(statut='f',typ=char_meca ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c ), - COEF_MULT_C =SIMP(statut='f',typ='C' ), - FONC_MULT =SIMP(statut='f',typ=fonction ), - COEF_MULT =SIMP(statut='f',typ='R' ), - PHAS_DEG =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PUIS_PULS =SIMP(statut='f',typ='I',defaut= 0 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), -) ; -# Rajouter test icompatibilite vect_asse et sensibilite -# Peut-on aussi rajouter ici le test d incompatibilite charge complexe - derivation -# presents dans le Fortran -#& MODIF COMMANDE DATE 14/10/2003 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. -# ====================================================================== -DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, - fr="Réponse temporelle d un système à une excitation transitoire", - docu="U4.53.02-g",reentrant='f', - UIinfo={"groupes":("Résolution",)}, -# regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),), - regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),), - MODELE =SIMP(statut='f',typ=modele ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - NEWMARK =FACT(statut='f',min=1,max=1, - ALPHA =SIMP(statut='f',typ='R',defaut= 0.25 ), - DELTA =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - WILSON =FACT(statut='f',min=1,max=1, - THETA =SIMP(statut='f',typ='R',defaut= 1.4 ), - ), - DIFF_CENTRE =FACT(statut='f',min=1,max=1, - ), - ADAPT =FACT(statut='f',min=1,max=1, - ), - ETAT_INIT =FACT(statut='f',min=1,max=1, - regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT',), - PRESENT_ABSENT('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT'),), - DYNA_TRANS =SIMP(statut='f',typ=dyna_trans ), - b_dyna_trans =BLOC(condition = "DYNA_TRANS != None", - regles=(EXCLUS('NUME_INIT','INST_INIT' ),), - NUME_INIT =SIMP(statut='f',typ='I' ), - INST_INIT =SIMP(statut='f',typ='R' ), - b_inst_init =BLOC(condition = "INST_INIT != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - DEPL_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ), - VITE_INIT =SIMP(statut='f',typ=(cham_no_depl_r) ), - ), - EXCIT =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('CHARGE','VECT_ASSE'), - EXCLUS('CHARGE','COEF_MULT'), - EXCLUS('FONC_MULT','COEF_MULT'), - EXCLUS('ACCE','COEF_MULT'), - PRESENT_ABSENT('ACCE','FONC_MULT'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), - ), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), - CHARGE =SIMP(statut='f',typ=char_meca ), - FONC_MULT =SIMP(statut='f',typ=fonction ), - COEF_MULT =SIMP(statut='f',typ='R' ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ACCE =SIMP(statut='f',typ=fonction ), - VITE =SIMP(statut='f',typ=fonction ), - DEPL =SIMP(statut='f',typ=fonction ), - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - ), - AMOR_MODAL =FACT(statut='f',min=1,max=1, - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - REAC_VITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -# ce n est pas le mot clesolveur standard - SOLVEUR =FACT(statut='d',min=1,max=1, - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - INCREMENT =FACT(statut='o',min=1,max='**', - regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),), - LIST_INST =SIMP(statut='f',typ=listr8 ), - FONC_INST =SIMP(statut='f',typ=fonction ), - PAS =SIMP(statut='f',typ='R' ), - b_pas =BLOC(condition = "PAS != None", - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - b_list_fonc =BLOC(condition = "LIST_INST != None or FONC_INST != None", - regles=(EXCLUS('INST_FIN','NUME_FIN'),), - NUME_FIN =SIMP(statut='f',typ='I' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), - COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), - COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.33334 ), - PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), - NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), - PAS_CALCUL =SIMP(statut='f',typ='I',defaut= 1 ), - ), - ARCHIVAGE =FACT(statut='f',min=1,max=1, - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),), - LIST_ARCH =SIMP(statut='f',typ=listis ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**',into=("DEPL","VITE","ACCE") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 14/10/2003 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. -# ====================================================================== -DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f', - fr="Analyse mécanique dynamique non linéaire",docu="U4.53.01-f", - UIinfo={"groupes":("Résolution",)}, - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',), - UN_PARMI('NEWMARK','HHT', ),), - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',min=1,max='**', - regles=(PRESENT_ABSENT('FONC_MULT','ACCE'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), - ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), - CHARGE =SIMP(statut='o',typ=char_meca), - FONC_MULT =SIMP(statut='f',typ=fonction), - DEPL =SIMP(statut='f',typ=fonction), - ACCE =SIMP(statut='f',typ=fonction), - VITE =SIMP(statut='f',typ=fonction), - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - ), - AMOR_MODAL =FACT(statut='f',min=1,max=1, - MODE_MECA =SIMP(statut='f',typ=mode_meca), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**' ), - NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - REAC_VITE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - VARI_COMM =FACT(statut='f', - regles=(AU_MOINS_UN('IRRA',),), - IRRA =SIMP(statut='f',typ=evol_varc), - ), - COMP_INCR =FACT(statut='f',min=1,max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC", - into=( "ELAS", - "VMIS_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VMIS_ECMI_TRAC", - "VMIS_ECMI_LINE", - "LABORD_1D", - "ENDO_FRAGILE", - "ENDO_ISOT_BETON", - "MAZARS", - "RUPT_FRAG", - "BARENBLATT", - "META_P_IL", - "META_P_IL_PT", - "META_P_IL_RE", - "META_P_IL_PT_RE", - "META_V_IL", - "META_V_IL_PT", - "META_V_IL_RE", - "META_V_IL_PT_RE", - "META_P_INL", - "META_P_INL_PT", - "META_P_INL_RE", - "META_P_INL_PT_RE", - "META_V_INL", - "META_V_INL_PT", - "META_V_INL_RE", - "META_V_INL_PT_RE", - "META_P_CL", - "META_P_CL_PT", - "META_P_CL_RE", - "META_P_CL_PT_RE", - "META_V_CL", - "META_V_CL_PT", - "META_V_CL_RE", - "META_V_CL_PT_RE", - "VMIS_CINE_LINE", - "VISC_TAHERI", - "CHABOCHE", -#DEBR "VISCOCHAB", - "VISC_CIN1_CHAB", - "VISC_CIN2_CHAB", - "POLY_CFC", -#DEBR "LMARC", - "ROUSSELIER", - "ROUSS_PR", - "ROUSS_VISC", - "VMIS_POU_LINE", - "VMIS_POU_FLEJOU", - "COULOMB", - "ARME", - "ASSE_CORN", - "NORTON_HOFF", - "LEMAITRE", - "ZIRC_CYRA2", - "ZIRC_EPRI", - "ASSE_COMBU", -#DEBR "VENDOCHAB", -#DEBR "NADAI_B", - "DIS_CONTACT", - "DIS_CHOC", - "DIS_GOUJ2E_PLAS", - "DIS_GOUJ2E_ELAS", - "GRILLE_ISOT_LINE", - "GRILLE_CINE_LINE", - "GRILLE_PINTO_MEN", - "PINTO_MENEGOTTO", - "CJS", - "CAM_CLAY", - "LAIGLE", -#DEBR "OHNO", - "GRANGER_FP", - "GRANGER_FP_V", - "BAZANT_FD", - "BETON_DOUBLE_DP", - "KIT_HM", - "KIT_HHM", - "KIT_THH", - "KIT_THV", - "KIT_THM", - "KIT_THHM", - "VMIS_ASYM_LINE", - "ELAS_THM", -#DEBR "SURF_ETAT_NSAT", -#DEBR "SURF_ETAT_SATU", -#DEBR "CAM_CLAY_THM", - "KIT_DDI", - ) ), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VMIS_ISOT_LINE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VMIS_ECMI_TRAC =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - VMIS_ECMI_LINE =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - LABORD_1D =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ENDO_ISOT_BETON =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - MAZARS =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - RUPT_FRAG =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - BARENBLATT =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - META_P_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_P_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_P_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_P_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - CHABOCHE =SIMP(statut='c',typ='I',defaut=14,into=(14,)), - VISCOCHAB =SIMP(statut='c',typ='I',defaut=28,into=(28,)), - VISC_CIN1_CHAB =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - VISC_CIN2_CHAB =SIMP(statut='c',typ='I',defaut=14,into=(14,)), - POLY_CFC =SIMP(statut='c',typ='I',defaut=1688,into=(1688,)), - LMARC =SIMP(statut='c',typ='I',defaut=20,into=(20,)), - VISC_TAHERI =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - ROUSSELIER =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - ROUSS_PR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - ROUSS_VISC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - VMIS_POU_LINE =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9 ,into=(9,)), - COULOMB =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - ASSE_CORN =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - ARME =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - NORTON_HOFF =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - LEMAITRE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ZIRC_CYRA2 =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ZIRC_EPRI =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ASSE_COMBU =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - NADAI_B =SIMP(statut='c',typ='I',defaut=34,into=(34,)), - VENDOCHAB =SIMP(statut='c',typ='I',defaut=10,into=(10,)), - GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)), - GRILLE_CINE_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)), - GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,)), - DIS_CONTACT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - DIS_CHOC =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - DIS_GOUJ2E_PLAS =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - DIS_GOUJ2E_ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - PINTO_MENEGOTTO =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - CJS =SIMP(statut='c',typ='I',defaut=16,into=(16,)), - CAM_CLAY =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LAIGLE =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - OHNO =SIMP(statut='c',typ='I',defaut=32,into=(32,)), - GRANGER_FP =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - GRANGER_FP_V =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - 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,)), - - RELATION_KIT =SIMP(statut='f',typ='TXM',max='**', - into=( -# MECA - "ELAS", - "CJS", - "CAM_CLAY", - "LAIGLE", - "ELAS_THM", -#DEBR "SURF_ETAT_NSAT", -#DEBR "SURF_ETAT_SATU", -#DEBR "CAM_CLAY_THM", -# THMC - "GAZ", - "LIQU_SATU", -#DEBR "LIQU_SATU_GAT", - "LIQU_GAZ_ATM", - "LIQU_VAPE_GAZ", - "LIQU_VAPE", -#DEBR "LIQU_NSAT_GAT", - "LIQU_GAZ", -# THER - "THER_HOMO", - "THER_POLY", -# HYDR - "HYDR_UTIL", - "HYDR", -# MECA_META - "ACIER", - "ZIRC", -# MECA KIT_DDI - "VMIS_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VMIS_ISOT_CINE", - "GRANGER_FP", - "GRANGER_FP_V", - "ROUSSELIER", - "CHABOCHE", -#DEBR "OHNO", -#DEBR "NADAI_B", - "BETON_DOUBLE_DP", - ) ), - ELAS_THM =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - SURF_ETAT_NSAT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - SURF_ETAT_SATU =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - CAM_CLAY_THM =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - GAZ =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - LIQU_SATU =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LIQU_SATU_GAT =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LIQU_GAZ_ATM =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_VAPE_GAZ =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - LIQU_VAPE =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - LIQU_NSAT_GAT =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_GAZ =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - THER_HOMO =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - THER_POLY =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - HYDR_UTIL =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - HYDR =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - ACIER =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN",)), - ALGO_C_PLAN =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - COMP_ELAS =FACT(statut='f',min=1,max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE")), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), -#------------------------------------------------------------------- - ETAT_INIT =FACT(statut='f',min=1,max=1, - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - VITE =SIMP(statut='f',typ=cham_no_depl_r), - SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), - VARI =SIMP(statut='f',typ=cham_elem_vari_r), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ), -#------------------------------------------------------------------- - INCREMENT =FACT(statut='o',min=1,max=1, - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',), - NOM_CMP =SIMP(statut='f',typ='TXM',), - VALE =SIMP(statut='f',typ='R'), - ), -#------------------------------------------------------------------- - NEWMARK =FACT(statut='f',min=1,max=1, - ALPHA =SIMP(statut='f',typ='R',defaut= 0.25), - DELTA =SIMP(statut='f',typ='R',defaut= 0.5), - ), - HHT =FACT(statut='f',min=1,max=1, - ALPHA =SIMP(statut='f',typ='R' - ,defaut= -0.29999999999999999 ), - ), - NEWTON =FACT(statut='d',min=1,max=1, - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - ), - SOLVEUR =FACT(statut='d',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), - ), - b_gcpc =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -#------------------------------------------------------------------- - RECH_LINEAIRE =FACT(statut='f',min=1,max=1, - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ), - PILOTAGE =FACT(statut='f',min=1,max=1, - regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION") ), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ETA_PILO_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_MIN =SIMP(statut='f',typ='R'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), - ), - CONVERGENCE =FACT(statut='d',min=1,max=1, - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - TYPE_MATR_COMP =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT",)), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), -#------------------------------------------------------------------- - OPTION =SIMP(statut='f',typ='TXM',max='**',defaut="ELNO", - into=("SIEF_ELNO_ELGA","VARI_ELNO_ELGA","EFGE_ELNO_CART","ELNO","SANS") ), - ARCHIVAGE =FACT(statut='f',min=1,max=1, - regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), - EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), - LIST_INST =SIMP(statut='f',typ=(listr8) ), - INST =SIMP(statut='f',typ='R',max='**' ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_INIT =SIMP(statut='f',typ='I'), - DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**', - into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")), - ), - OBSERVATION =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), - PRESENT_PRESENT('MAILLE','POINT'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',max='**', - -into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - LIST_ARCH =SIMP(statut='f',typ=listis), - LIST_INST =SIMP(statut='f',typ=listr8), - INST =SIMP(statut='f',typ='R',max='**' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PAS_OBSE =SIMP(statut='f',typ='I'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - POINT =SIMP(statut='f',typ='I',max='**'), - ), -#------------------------------------------------------------------- - SOLV_NON_LOCAL =FACT(statut='f',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LAGR_NON_LOCAL =FACT(statut='f',max=1, - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - R =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), -#------------------------------------------------------------------- - PARM_THETA =SIMP(statut='f',typ='R' - ,defaut= 1. ), -#------------------------------------------------------------------- - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=tabl_intsp, - fr="Calcul de la réponse par recombinaison modale d'une structure linéaire pour une excitation aléatoire", - docu="U4.53.23-d",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu ), - EXCIT =FACT(statut='o',max=1, - INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, - fr="Réponse dynamique transitoire en coordonnées généralisées par recombinaison modale", - docu="U4.53.21-f",reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'), - PRESENT_ABSENT('MODE_STAT','MODE_CORR'),), - METHODE =SIMP(statut='f',typ='TXM',defaut="EULER", - into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ), - MASS_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), - RIGI_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), - AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8 ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc) ), - MODE_CORR =SIMP(statut='f',typ=(mult_elas,mode_stat_acce) ,), - - ETAT_INIT =FACT(statut='f',min=1,max=1, - regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'), - EXCLUS('RESU_GENE','VITE_INIT_GENE'),), - RESU_GENE =SIMP(statut='f',typ=tran_gene ), - b_resu_gene =BLOC(condition = "RESU_GENE != None", - INST_INIT =SIMP(statut='f',typ='R' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - ), - INCREMENT =FACT(statut='o',min=1,max='**', - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='o',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - VERI_PAS =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), - COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), - COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.3333334 ), - PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6 ), - NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), - NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), - ), - ARCHIVAGE =FACT(statut='f',min=1,max=1, - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),), - LIST_ARCH =SIMP(statut='f',typ=listis ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - ), - - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 20 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ), - - EXCIT =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'), - PRESENT_ABSENT('NUME_MODE','VECT_GENE','COEF_MULT'), - EXCLUS('MULT_APPUI','CORR_STAT'), - PRESENT_ABSENT('MULT_APPUI','COEF_MULT'), - PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),), - VECT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - NUME_MODE =SIMP(statut='f',typ='I' ), - FONC_MULT =SIMP(statut='f',typ=fonction ), - COEF_MULT =SIMP(statut='f',typ='R' ), - ACCE =SIMP(statut='f',typ=fonction ), - VITE =SIMP(statut='f',typ=fonction ), - DEPL =SIMP(statut='f',typ=fonction ), - MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - b_loca =BLOC(condition= "DIRECTION != None", - regles=(EXCLUS('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - ), - CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - D_FONC_DT =SIMP(statut='f',typ=fonction ), - D_FONC_DT2 =SIMP(statut='f',typ=fonction ), - ), - CHOC =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1' ), - PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),), - INTITULE =SIMP(statut='f',typ='TXM' ), - NOEUD_1 =SIMP(statut='f',typ=no), - NOEUD_2 =SIMP(statut='f',typ=no), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - OBSTACLE =SIMP(statut='o',typ=obstacle ), - ORIG_OBST =SIMP(statut='f',typ='R',min=3,max=3), - NORM_OBST =SIMP(statut='o',typ='R',min=3,max=3), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - JEU =SIMP(statut='f',typ='R',defaut= 1. ), - DIST_1 =SIMP(statut='f',typ='R',val_min=0.E+0 ), - DIST_2 =SIMP(statut='f',typ='R',val_min=0.E+0 ), - SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), - SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), - RIGI_NOR =SIMP(statut='f',typ='R' ), - AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - - LAME_FLUIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - b_lame =BLOC(condition="LAME_FLUIDE=='OUI'", - ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - CHI =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ), - VERI_CHOC =FACT(statut='f',min=1,max='**', - STOP_CRITERE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - FLAMBAGE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),), - NOEUD_1 =SIMP(statut='f',typ=no), - NOEUD_2 =SIMP(statut='f',typ=no), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - OBSTACLE =SIMP(statut='o',typ=obstacle ), - ORIG_OBST =SIMP(statut='f',typ='R',max='**'), - NORM_OBST =SIMP(statut='o',typ='R',max='**'), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - JEU =SIMP(statut='f',typ='R',defaut= 1. ), - DIST_1 =SIMP(statut='f',typ='R' ), - DIST_2 =SIMP(statut='f',typ='R' ), - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), - RIGI_NOR =SIMP(statut='f',typ='R' ), - FNOR_CRIT =SIMP(statut='f',typ='R' ), - FNOR_POST_FL =SIMP(statut='f',typ='R' ), - RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ), - ), - ANTI_SISM =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), - UN_PARMI('NOEUD_2','GROUP_NO_2'), - PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'), - PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),), - NOEUD_1 =SIMP(statut='f',typ=no), - NOEUD_2 =SIMP(statut='f',typ=no), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - RIGI_K1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_K2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SEUIL_FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - C =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PUIS_ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DX_MAX =SIMP(statut='f',typ='R',defaut= 1. ), - ), - RELA_EFFO_DEPL =FACT(statut='f',min=1,max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=fonction ), - ), - RELA_TRANSIS =FACT(statut='f',min=1,max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=fonction ), - ), - RELA_EFFO_VITE =FACT(statut='f',min=1,max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=fonction ), - ), - b_itmi =BLOC(condition = "METHODE=='ITMI'", - regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - ETAT_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - PREC_DUREE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - CHOC_FLUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - NB_MODE =SIMP(statut='f',typ='I' ), - NB_MODE_FLUI =SIMP(statut='f',typ='I' ), - NB_MODE_DIAG =SIMP(statut='f',typ='I' ), - TS_REG_ETAB =SIMP(statut='f',typ='R' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - IMPRESSION =FACT(statut='f',min=1,max='**', - regles=(EXCLUS('TOUT','NIVEAU'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NIVEAU =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ), - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - ) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,docu="U4.92.11-c", - UIinfo={"groupes":("Impression",)}, - regles=(UN_PARMI('TOUT','CO'),), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - CO =SIMP(statut='f',typ=assd,max='**'), - TYPE_TEST =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME","RESUME") ), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), - PREC_R =SIMP(statut='f',typ='TXM',defaut="1.E-5"), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183,fr="",docu="U7.00.01-b", - UIinfo={"groupes":("Impression",)}, - LOGICIEL =SIMP(statut='f',typ='TXM' ), - ARGUMENT =FACT(statut='f',min=1,max='**', - NOM_PARA =SIMP(statut='f',typ='TXM' ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def extr_mode_prod(FILTRE_MODE,**args): - vale=FILTRE_MODE[0]['MODE'] - if AsType(vale) == mode_meca : return mode_meca - if AsType(vale) == mode_meca_c : return mode_meca_c - if AsType(vale) == mode_gene : return mode_gene - raise AsException("type de concept resultat non prevu") - -EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod, - docu="U4.52.12-d",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - FILTRE_MODE =FACT(statut='o',min=1,max='**', - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),), - MODE =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_gene ) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - NUME_MODE_EXCLU =SIMP(statut='f',typ='I',max='**'), - FREQ_MIN =SIMP(statut='f',typ='R' ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',into=("MASS_EFFE_UN","MASS_GENE") ), - b_freq_min =BLOC(condition = "FREQ_MIN != None", - FREQ_MAX =SIMP(statut='o',typ='R' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - b_crit_extr =BLOC(condition = "CRIT_EXTR != None", - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - IMPRESSION =FACT(statut='f',min=1,max=1, - CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== -def extr_resu_prod(RESULTAT,**args): - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == evol_ther : return evol_ther - if AsType(RESULTAT) == dyna_trans : return dyna_trans - if AsType(RESULTAT) == dyna_harmo : return dyna_harmo - if AsType(RESULTAT) == acou_harmo : return acou_harmo - if AsType(RESULTAT) == mode_meca : return mode_meca - if AsType(RESULTAT) == mode_acou : return mode_acou - if AsType(RESULTAT) == mode_stat : return mode_stat - if AsType(mode_stat) == mode_stat_depl : return mode_stat_depl - if AsType(mode_stat) == mode_stat_acce : return mode_stat_acce - if AsType(mode_stat) == mode_stat_forc : return mode_stat_forc - if AsType(RESULTAT) == mult_elas : return mult_elas - if AsType(RESULTAT) == fourier_elas : return fourier_elas - raise AsException("type de concept resultat non prevu") - -EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,docu="U4.71.04-c",reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, - mode_acou,mode_stat_depl,mode_stat_acce,mode_stat_forc,evol_ther,evol_noli, - mult_elas,fourier_elas ) ), - - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - - ARCHIVAGE =FACT(statut='f',min=1,max=1, - regles=( UN_PARMI('NUME_ORDRE', 'INST', 'FREQ', 'NUME_MODE', - 'NOEUD_CMP', 'LIST_INST', 'LIST_FREQ', 'LIST_ORDRE', - 'NOM_CAS', 'LIST_ARCH', 'PAS_ARCH' ), - EXCLUS( 'CHAM_EXCLU','NOM_CHAM' ), ), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**'), - NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),defaut="RELATIF"), - LIST_ARCH =SIMP(statut='f',typ=listis), - PAS_ARCH =SIMP(statut='f',typ='I'), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM'), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def fact_grad_prod(MATR_ASSE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r - if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r - if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r - raise AsException("type de concept resultat non prevu") - -FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,docu="U4.55.03-f", - 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 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -FACT_INTE_SPEC=OPER(nom="FACT_INTE_SPEC",op= 117,sd_prod=interspfact, - fr="Factorisation d une matrice interspectrale hermitienne", - docu="U4.36.04-f",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(ENSEMBLE('FREQ_FIN','NB_POIN'),), -# regle non indiquée dans la doc U - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - FREQ_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FREQ_FIN =SIMP(statut='f',typ='R' ), - NB_POIN =SIMP(statut='f',typ='I',defaut= 0 ), - SUR_ECHAN =SIMP(statut='f',typ='R',defaut= 1. ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def fact_ldlt_prod(MATR_ASSE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r - if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c - if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r - if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c - if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r - if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c - raise AsException("type de concept resultat non prevu") - -FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en place ou hors place", - docu="U4.55.01-g",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 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# NEW 5.3.23 -FERMER=PROC(nom="FERMER",op= 10,fr=" ", - docu="U4.12.02-b", - UIinfo={"groupes":("Gestion du travail",)}, - UNITE =SIMP(statut='o',typ='I',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude", - docu="U4.11.02-g", - UIinfo={"groupes":("Gestion du travail",)}, - RETASSAGE =SIMP(fr="provoque le retassage de la base GLOBALE", - statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - PERFORMANCE =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ", - statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données", - statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - FICHIER =SIMP(statut='f',typ='TXM',defaut="MESSAGE"), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction, - docu="U4.35.02-d",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -FORMULE = FORM( nom='FORMULE',op=-5,sd_prod=fonction, - docu="U4.31.05-e", - fr="Définition d une fonction",reentrant = 'n', - regles=(UN_PARMI('REEL','COMPLEXE'),), - -##### fonctions entieres interdites suite au probleme AL2003-072 -##### regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),), -##### ENTIER = SIMP(typ = 'shell',max=1), - - REEL = SIMP(typ = 'shell',max=1), - COMPLEXE = SIMP(typ = 'shell',max=1), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=tabl_fonc, - fr="Génération de la fonction temporelle à partir d une matrice interspectrale factorisée", - docu="U4.36.05-f",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - INTE_SPEC_FACT =SIMP(statut='o',typ=interspfact ), - INIT_ALEA =SIMP(statut='f',typ='I',defaut= 12312745 ), - NB_TIRAGE =SIMP(statut='f',typ='I',defaut= 1 ), - NB_POIN =SIMP(statut='f',typ='I' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 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. -# ====================================================================== -GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op= 27,sd_prod=matr_asse_gene_r, - fr="Generateur de matrice aleatoire", - docu="U4.36.06-a",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - MATR_MOYEN = SIMP(statut='o', typ=matr_asse_gene_r), - DELTA = SIMP(statut='f', typ='R', defaut=0.1), - INIT = SIMP(statut='f', typ='TXM', into=("OUI","NON"),defaut="NON"), -) ; - -#& MODIF COMMANDE DATE 22/04/2003 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. -# ====================================================================== -GENE_VARI_ALEA=OPER(nom="GENE_VARI_ALEA",op= 28,sd_prod=table, - fr="Generateur de variable aleatoire", - docu="U4.36.07-a",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - TYPE = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="EXP_TRONQUEE"), - VALE_MOY = SIMP(statut='f', typ='R', defaut=0.), - DELTA = SIMP(statut='f', typ='R', defaut=0.1), - A = SIMP(statut='f', typ='R', defaut=-1.), - B = SIMP(statut='f', typ='R', defaut=1.), - INIT = SIMP(statut='f', typ='TXM', into=("OUI","NON"),defaut="NON"), -) ; - -#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158, - fr="Impression des charges mécaniques de type ddl imposés et relations linéaires entre les ddl", - docu="U7.04.31-c", - UIinfo={"groupes":("Fonction",)}, - FICHIER =SIMP(statut='f',typ='TXM' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",) ), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - CHARGE =SIMP(statut='o',typ=char_meca,max='**', ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,docu="U7.04.21-b", - UIinfo={"groupes":("Fonction",)}, - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ', - 'LIST_ORDRE' ),), - UNITE_CLASSI =SIMP(statut='o',typ='I' ), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - b_prec_crit =BLOC(condition = "LIST_FREQ != None or FREQ != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - ), - IMPRESSION =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO', ),), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - AMOR =SIMP(statut='o',typ='R',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -IMPR_CO=PROC(nom="IMPR_CO",op=17,docu="U4.91.11-g", - UIinfo={"groupes":("Impression",)}, - fr="Impression du contenu d un concept utilisateur (pour développeur)", - regles=(UN_PARMI('CO','CHAINE', ),), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - NIVEAU =SIMP(statut='f',typ='I',defaut=2,into=(0,1,2) ), - ATTRIBUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ), - CONTENU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ), - BASE =SIMP(statut='f',typ='TXM',defaut="G",into=("","G","V","L") ), - CO =SIMP(statut='f',typ=assd,max='**'), - CHAINE =SIMP(statut='f',typ='TXM'), - POSITION =SIMP(statut='f',typ='I',defaut=1), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -IMPR_COURBE=PROC(nom="IMPR_COURBE",op= 141,fr="Impression, sur fichiers", - docu="U4.33.01-e", - UIinfo={"groupes":("Fonction",)}, - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - FORMAT =SIMP(statut='f',typ='TXM',position='global' - ,into=("AGRAF","EXCEL","POSTSCRIPT","RESULTAT","COMMANDE","SEISME") ), - b_agraf_post =BLOC(condition = "(FORMAT=='AGRAF') or (FORMAT=='POSTSCRIPT')",fr="Mots-clés communs AGRAF et POSTCRIPT", - BORNE_X =SIMP(statut='f',typ='R',min=2,max=2,fr="Intervalles de variation des abcisses"), - ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),fr="Type d'échelle pour les abcisses" ), - BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2,fr="Intervalles de variation des ordonnées"), - ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),fr="Type d'échelle pour les ordonnées" ), - ), - b_agraf =BLOC(condition = "(FORMAT=='AGRAF')",fr="Mots-clés propres à AGRAF", - TITRE_GRAPHIQUE =SIMP(statut='f',typ='TXM',fr="Titre associé au graphique" ), - COMMENTAIRE =SIMP(statut='f',typ='TXM',max='**',fr="Commentaires associés au graphique"), - LEGENDE_X =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des abcisses" ), - LEGENDE_Y =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des ordonnées" ), - FREQ_GRILLE_X =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence de tracage du quadrillage vertical" ), - FREQ_GRILLE_Y =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence de tracage du quadrillage horizontal" ), - ), - b_excel = BLOC(condition = "(FORMAT=='EXCEL')",fr="Mots-clés propres au format Excel", - BORNE_X =SIMP(statut='f',typ='R',min=2,max=2,fr="Intervalles de variation des abcisses"), - BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2,fr="Intervalles de variation des ordonnées"), - ), - b_post = BLOC ( condition = "(FORMAT=='POSTSCRIPT')",fr="Mots-clés propres à POSTCRIPT", - TITRE =SIMP(statut='f',typ='TXM',fr="Titre associé au graphique" ), - LABEL_X =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des abcisses" ), - LABEL_Y =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des ordonnées" ), - SORTIE =SIMP(statut='f',typ='TXM',defaut="COULEUR",into=("MONOCHROME","COULEUR"),fr="Type d impression" ), - DATE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de la date" ), - GRILLE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression du quadrillage" ), - AXE_ZERO_X =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de l axe x égal zéro" ), - AXE_ZERO_Y =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de l axe y égal zéro" ), - PRESENTATION =SIMP(statut='f',typ='TXM',defaut="PAYSAGE",into=("PAYSAGE","PORTRAIT"), - fr="Disposition du graphique sur la feuille" ), - FENETRE =SIMP(statut='f',typ='TXM',defaut="RECTANGLE",into=("CARREE","RECTANGLE"), - fr="Forme de la fenetre contenant le graphique" ), - ), - COURBE =FACT(statut='o',min=1,max='**',fr="Définition de la courbe à tracer", - regles=(UN_PARMI('FONCTION','LIST_RESU','TABLE','FONC_X','RESU_GENE'),), - FONCTION =SIMP(statut='f',typ=(fonction, fonction_c), - fr="Fonction réelle ou complexe", ), - LIST_RESU =SIMP(statut='f',typ=listr8, - fr="Liste des ordonnees d une fonction réelle définie par deux listes", ), -# creer le type table - TABLE =SIMP(statut='f',typ=table, - fr="Nom de la table dont 2 colonnes définissent la fonction",), - FONC_X =SIMP(statut='f',typ=fonction, - fr="Fonction abscisses d une fonction paramétrique",), - RESU_GENE =SIMP(statut='f',typ=tran_gene, ), - b_fonction =BLOC(condition = "FONCTION != None", - LIST_PARA =SIMP(statut='f',typ=listr8 ), - ), - b_fonction_c =BLOC(condition = "AsType(FONCTION) == fonction_c", - fr="Fonction complexe définie par le mot-clé fonction", - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), - ), - b_list_resu =BLOC(condition = "LIST_RESU != None", - LIST_PARA =SIMP(statut='o',typ=listr8 ), - ), - b_table =BLOC(condition = "TABLE != None", - PARA_X =SIMP(statut='o',typ='TXM', - fr="Paramètre de la table associé aux abcisses de la fonction à tracer" ), - PARA_Y =SIMP(statut='o',typ='TXM', - fr="Paramètre de la table associé aux ordonnées de la fonction à tracer" ), - ), - b_fonc_x =BLOC(condition = "FONC_X != None", - FONC_Y =SIMP(statut='o',typ=fonction,fr="Fonction ordonnées d une fonction paramétrique" ), - PARA =SIMP(statut='f',typ='TXM',defaut="FONC_X",into=("FONC_X","FONC_Y"), - fr="Permutation des roles des deux fonctions" ), - LIST_PARA =SIMP(statut='f',typ=listr8 ), - ), - b_resu_gene =BLOC(condition = "RESU_GENE != None", - regles=(UN_PARMI('NOEUD_CHOC','GROUP_NO_CHOC'),), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), - PARA_X =SIMP(statut='o',typ='TXM'), - PARA_Y =SIMP(statut='o',typ='TXM'), - LIST_PARA =SIMP(statut='f',typ=listr8 ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - INTITULE =SIMP(statut='f',typ='TXM' ), - ), - - - LEGENDE =SIMP(statut='f',typ='TXM',fr="Légende associée à la courbe" ), - STYLE =SIMP(statut='f',typ='TXM',defaut="LIGNE",fr="Style de la ligne représentant la courbe", - into=("LIGNE","POINTILLE","POINT","POINT_RELIE") ), - COULEUR =SIMP(statut='f',typ='TXM',fr="Couleur associée à la courbe", - into=("NOIR","ROUGE","VERT_FONCE","BLEU", - "MAGENTA","CYAN","VERT","SIENNE","ORANGE", - "POURPRE","JAUNE","DAIM","TURQUOISE","VIOLET", - "BRUN","CORAIL","MARRON","MAUVE","MARRON_CLAIR") ), - MARQUEUR =SIMP(statut='f',typ='TXM',fr="Type du marqueur associé à la courbe", - into=("POINT_F","CARRE_F","TRIANGLE_F", - "LOSANGE_F","ETOILE_F","FUSEE_F","POINT", - "CARRE","TRIANGLE","LOSANGE","ETOILE","FUSEE", - "PLUS","X","CERCLE","CERCLE_P","CARRE_P", - "LOSANGE_P","CERCLE_P_X","LOSANGE_P_X", - "CERCLE_X","CARRE_X","LOSANGE_X") ), - b_agraf =BLOC(condition = "(FORMAT=='AGRAF')",fr="Mots-clés propres à AGRAF", - TRI =SIMP(statut='f',typ='TXM',defaut="N", - fr="Choix du tri effectué sur les abcisses ou sur les ordonnées", - into=("N","X","Y","XY","YX") ), - FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut= 0, - fr="Fréquence d impression du marqueur associé à la courbe", ), - ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# 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. LE REPERTOIRE OU AURA LIEU LE CALCUL HOMARD -# - REP =SIMP(statut='f',typ='TXM'), -# -# 3. Langue des messages issus de HOMARD -# - LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS", - into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",), - fr="Langue des messages issus de HOMARD.", - ang="Language for HOMARD messages." ), -# -# 4. L'UNITE LOGIQUE D'ECRITURE DU FICHIER DE CONFIGURATION HOMARD -# - UNITE =SIMP(statut='f',typ='I',defaut= 71 ), -# -# 5. LE TYPE DE TRAITEMENT : -# - TRAITEMENT =FACT(statut='o',min=1,max=1, -# -# 5.1. QUATRE CHOIX EXCLUSIFS : -# -# 5.1.1. -# A. ADAPTATION PAR UN INDICATEUR D'ERREUR, AVEC TROIS VARIANTES : -# . RAFFINEMENT ET DERAFFINEMENT -# . RAFFINEMENT SEUL -# . DERAFFINEMENT SEUL -# B. ADAPTATION UNIFORME, AVEC DEUX VARIANTES : -# . RAFFINEMENT SEUL -# . DERAFFINEMENT SEUL -# . RIEN : LE MAILLAGE EST LE MEME A LA SORTIE ET A L'ENTREE -# C. INFORMATION SUR UN MAILLAGE -# D. MISE A JOUR DE SOLUTIONS -# - regles=( UN_PARMI('ADAPTATION','UNIFORME','INFORMATION','MAJSOLUTION'),), - ADAPTATION =SIMP(statut='f',typ='TXM', - fr="Adaptation libre", - ang="Free adaptation", - into=("RAFFINEMENT","DERAFFINEMENT","RAFF_DERA") ), - UNIFORME =SIMP(statut='f',typ='TXM', - fr="Adaptation uniforme", - ang="Uniforme adaptation", - into=("RAFFINEMENT","DERAFFINEMENT","RIEN") ), - INFORMATION =SIMP(statut='f',typ='TXM', - fr="Adaptation libre", - ang="Free adaptation", - into=("OUI",) ), - MAJSOLUTION =SIMP(statut='f',typ='TXM', - fr="Mise à jour de solutions", - ang="Solution updating", - into=("OUI",) ), -# -# 5.1.2. LES CONTRAINTES : -# -# 5.1.2.1. POUR DE L'ADAPTATION LIBRE, IL FAUT : -# A. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART -# B. LE NOM MED DU MAILLAGE D'ENTREE -# C. LE NOM MED DE L'INDICATEUR D'ERREUR -# D. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART -# E. LA MISE A JOUR DE SOLUTION -# F. LE NOM MED DU MAILLAGE DE SORTIE -# REMARQUE : IL FAUT DES CRITERES, MAIS ON NE SAIT PAS LESQUELS -# -# 5.1.2.2. POUR DE L'ADAPTATION UNIFORME -# IL FAUT : -# A. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART -# B. LE NOM MED DU MAILLAGE DE SORTIE -# IL NE FAUT PAS : -# A. LE NOM MED DE L'INDICATEUR D'ERREUR -# B. LE NOM DE LA COMPOSANTE DE L'INDICATEUR D'ERREUR -# C. LES CRITERES -# REMARQUE : A L'ITERATION 0, OU AUX ITERATIONS SUIVANTES SI MAJ DE SOLUTION, -# IL FAUT LE NOM MED DU MAILLAGE D'ENTREE -# -# 5.1.2.3. POUR DE LA MISE A JOUR DE SOLUTION : -# IL FAUT : -# A. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART -# B. LE NOM MED DU MAILLAGE D'ENTREE -# IL NE FAUT PAS : -# A. LE NOM MED DE L'INDICATEUR D'ERREUR -# B. LE NOM DE LA COMPOSANTE DE L'INDICATEUR D'ERREUR -# C. LES CRITERES -# -# -# 5.1.2.4. POUR DE L'INFORMATION : -# IL FAUT : -# A. LE NOM MED DU MAILLAGE D'ENTREE -# IL NE FAUT PAS : -# A. LE NOM MED DE L'INDICATEUR D'ERREUR -# B. LE NOM DE LA COMPOSANTE DE L'INDICATEUR D'ERREUR -# C. LES CRITERES -# D. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART -# E. LA MISE A JOUR DE SOLUTION -# - b_maillage_initial =BLOC(condition = "( INFORMATION != None ) or ( ADAPTATION != None ) or \ - ( MAJSOLUTION != None ) ", - fr="Nom MED du maillage en entrée", - ang="MED name of the in-mesh", - NOM_MED_MAILLAGE_N =SIMP(statut='o',typ='TXM',), - ) , -# - b_maillage_initial_uniforme =BLOC(condition = "( UNIFORME != None ) ", - fr="Nom MED du maillage en entrée", - ang="MED name of the in-mesh", - NOM_MED_MAILLAGE_N =SIMP(statut='f',typ='TXM',), - ) , -# - b_iteration_maj_champ =BLOC(condition = "( UNIFORME != None ) or ( ADAPTATION != None ) or \ - ( MAJSOLUTION != None ) ", - fr="Nom MED du maillage en sortie, numero d'iteration et mise à jour de champs", - ang="MED name of the out-mesh, iteration rank and field updating", - NITER =SIMP(statut='o',typ='I', - fr="Numéro d'itération.", - ang="Iteration number." ), - NOM_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM', - fr="Nom MED du maillage en sortie", - ang="MED name of the out-mesh" ), - MAJ_CHAM =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Mise à jour de champs", - ang="Field updating" ), - ) , -# - b_indicateur_d_erreur =BLOC(condition = "ADAPTATION != None", - fr="Indicateur d'erreur", - ang="Error indicator", - regles=(AU_MOINS_UN('NUMORD_INDICA','NOM_RESU_INDICA'), - EXCLUS('NUMORD_INDICA','NOM_RESU_INDICA'), - PRESENT_PRESENT('NUMORD_INDICA','NUMPT_INDICA'), - PRESENT_PRESENT('NOM_RESU_INDICA','NOM_CHAM_INDICA'),), - NOM_MED_INDICA =SIMP(statut='o',typ='TXM', - fr="Nom MED de l'indicateur d'erreur.", - ang="MED name of error indicator.",), - NOM_CMP_INDICA =SIMP(statut='o',typ='TXM', - fr="Nom de la composante de l'indicateur d'erreur retenue.", - ang="Name of the selected component of the error indicator.",), - NUMORD_INDICA =SIMP(statut='f',typ='I', - fr="Numero d'ordre de l'indicateur.", - ang="Rank number of the error indicator.",), - NUMPT_INDICA =SIMP(statut='f',typ='I', - fr="Numero du pas de temps de l'indicateur.", - ang="Time step number of the error indicator.",), - NOM_RESU_INDICA =SIMP(statut='f',typ='TXM', - fr="Concept contenant l'indicateur.", - ang="Conceipt wich contains the error indicator.",), - NOM_CHAM_INDICA =SIMP(statut='f',typ='TXM', - fr="Nom du champ dans le résultat de l'indicateur.", - ang="Name of the field of the error indicator.",), - ) , -# - b_critere_de_raffinement =BLOC( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' )" , - fr="Critère de raffinement.", - ang="Refinement threshold.", - regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),), - CRIT_RAFF_ABS =SIMP(statut='f',typ='R', - fr="Critère absolu", - ang="Absolute threshold" ), - CRIT_RAFF_REL =SIMP(statut='f',typ='R', - fr="Critère relatif", - ang="Relative threshold" ), - CRIT_RAFF_PE =SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments", - ang="Percentage of elements" ), - ) , -# - b_critere_de_deraffinement =BLOC ( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' )" , - fr="Critère de déraffinement.", - ang="Unrefinement threshold.", - regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),), - CRIT_DERA_ABS =SIMP(statut='f',typ='R' , - fr="Critère absolu", - ang="Absolute threshold" ), - CRIT_DERA_REL =SIMP(statut='f',typ='R', - fr="Critère relatif", - ang="Relative threshold" ), - CRIT_DERA_PE =SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments", - ang="Percentage of elements" ), - ) , -# - b_niveau_maximum =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' ) or \ - ( UNIFORME == 'RAFFINEMENT' )" , - fr="Niveau maximum de profondeur de raffinement", - ang="Maximum level for refinement", - NIVE_MAX =SIMP(statut='f',typ='I' ), - ) , -# - b_niveau_minimum =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' ) or \ - ( UNIFORME == 'DERAFFINEMENT' )" , - fr="Niveau minimum de déraffinement", - ang="Minimum level for unrefinement", - NIVE_MIN =SIMP(statut='f',typ='I' ), - ) , -# - ), -# -# 6. L'ANALYSE DU MAILLAGE -# - ANALYSE =FACT(statut='f',min=1,max=1, - fr="Analyse du maillage.", - ang="Mesh analysis.", -# -# 6.1. CHOIX NON EXCLUSIFS, AVEC DEUX VARIANTES (OUI/NON) : -# A. NOMBRE DES ELEMENTS -# B. QUALITE DES ELEMENTS -# C. INTERPENETRATION DES ELEMENTS -# D. CONNEXITE DU MAILLAGE -# E. TAILLE DES DIFFERENTS SOUS-DOMAINES -# - regles=(AU_MOINS_UN('NOMBRE','QUALITE','INTERPENETRATION','CONNEXITE','TAILLE'),), -# - NOMBRE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et éléments du maillage", - ang="Number of nodes and elements in the mesh" ), -# - QUALITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Mesh quality" ), -# - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des éléments.", - ang="Overlapping checking." ), -# - CONNEXITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Mesh connexity." ), -# - TAILLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Tailles des sous-domaines du maillage.", - ang="Sizes of mesh sub-domains." ), -# - ), -# -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_GENE=PROC(nom="IMPR_GENE",op= 157, - fr="Calcul du dommage subi par une structure soumise à une sollicitation de type aléatoire", - docu="U4.91.02-d", - UIinfo={"groupes":("Impression",)}, - GENE =FACT(statut='o',min=1,max='**', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'), - EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'), - EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'), - EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'), - EXCLUS('TOUT_CHAM','NOM_CHAM'), - EXCLUS('TOUT_PARA','NOM_PARA'),), -# faut-il faire des blocs selon le type de RESU_GENE - RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)), - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ), - FICHIER =SIMP(statut='f',typ='TXM' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8 ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - b_prec_crit =BLOC(condition = "LIST_FREQ != None or FREQ != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - ), - TOUT_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NUME_CMP_GENE =SIMP(statut='f',typ='I',max='**'), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,docu="U4.91.21-g", - UIinfo={"groupes":("Impression",)}, - fr="Impression de caractéristiques d'objets JEVEUX (pour développeur)", - ENTITE =SIMP(fr="choix de l'observation",statut='o',typ='TXM', - into=("DISQUE","MEMOIRE","REPERTOIRE", - "OBJET","ATTRIBUT","SYSTEME") ), - b_objet =BLOC(condition = "(ENTITE=='OBJET')", - NOMOBJ =SIMP(fr="nom d'objet",statut='f',typ='TXM' ), - NUMOC =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ), - NOMOC =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ), - ), - b_attribut =BLOC(condition = "(ENTITE=='ATTRIBUT')", - NOMOBJ =SIMP(fr="nom de collection",statut='f',typ='TXM' ), - NOMATR =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM', - into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG', - '$$LONO','$$LUTI','$$NUM') ), - ), - b_systeme =BLOC(condition = "(ENTITE=='SYSTEME')", - CLASSE =SIMP(statut='o',typ='TXM',into=('G','V','L') ), - NOMATR =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM', - into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$ETAT', - '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG', - '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX', - '$$TLEC','$$TECR','$$IADM','$$ACCE') ), - ), - b_repertoire =BLOC(condition = "(ENTITE=='REPERTOIRE')", - CLASSE =SIMP(statut='f',typ='TXM',into=('G','V','L',' '),defaut=' '), - ), - b_disque =BLOC(condition = "(ENTITE=='DISQUE')", - CLASSE =SIMP(statut='f',typ='TXM' ,into=('G','V','L',' '),defaut=' '), - ), - IMPRESSION =FACT(statut='f',min=1,max=1, - NOM =SIMP(statut='f',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I'), - ), - COMMENTAIRE =SIMP(statut='f',typ='TXM' ), -) ; -#& MODIF COMMANDE DATE 04/02/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. -# ====================================================================== -IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160, - docu="U7.04.33-d", - UIinfo={"groupes":("Impression",)}, - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - FICHIER =SIMP(statut='f',typ='TXM' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", - into=("MISS_3D","IDEAS","CADYRO","PLEXUS") ), - b_ideas =BLOC(condition = "FORMAT == 'PLEXUS'", - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - ), - b_plexus =BLOC(condition = "FORMAT == 'IDEAS'", - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - ), - b_miss_3d =BLOC(condition = "FORMAT == 'MISS_3D'", - 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 ), - 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/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159, - fr="Impression des matrices élémentaires et des matrices assemblées", - docu="U7.04.32-d", - UIinfo={"groupes":("Impression",)}, - regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),), - - MATR_ELEM =FACT(statut='f',min=1,max='**', - FICHIER =SIMP(statut='f',typ='TXM' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", - into=("IDEAS","RESULTAT") ), - b_format =BLOC(condition = "FORMAT == 'IDEAS'", - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - ), -# créer les types matr_elem et vect_elem - MATRICE =SIMP(statut='o',typ=(matr_elem, vect_elem)), -# Quelle regle pour TOUT, NOEUD, GROUP_NO, MAILLE, GROUP_MA - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR", - into=("VALEUR","NOEUD","MAILLE") ), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ), - ), - MATR_ASSE =FACT(statut='f',min=1,max='**', - FICHIER =SIMP(statut='f',typ='TXM' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", - into=("IDEAS","RESULTAT") ), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), -# créer le type matr_elem - MATRICE =SIMP(statut='o',typ=matr_asse), -# Quelle regle pour TOUT, NOEUD, GROUP_NO, MAILLE, GROUP_MA - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="SOUS_MATRICE", - into=("SOUS_MATRICE","LIGNE","COLONNE") ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR", - into=("VALEUR","NOEUD") ), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ), - VALE_ZERO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162, - docu="U7.04.11-d", - UIinfo={"groupes":("Impression",)}, - regles=(UN_PARMI('INST_INIT','FREQ_INIT'), - PRESENT_PRESENT('INST_INIT','INST_FIN'), - PRESENT_PRESENT('FREQ_INIT','FREQ_FIN'),), - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - EXCIT =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r ), - FONC_MULT =SIMP(statut='f',typ=fonction ), - COEF_MULT =SIMP(statut='f',typ='R' ), - ), - EXCIT_SOL =FACT(statut='f',min=1,max='**', - DIRECTION =SIMP(statut='o',typ='R',max='**'), - FONC_SIGNAL =SIMP(statut='f',typ=fonction ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL", - into=("DEPL","VITE","ACCE","FORC",) ), - ), - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - FREQ_INIT =SIMP(statut='f',typ='R' ), - FREQ_FIN =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='o',typ='R' ), - UNITE =SIMP(statut='f',typ='I',defaut= 26 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_RESU=PROC(nom="IMPR_RESU",op=39,docu="U4.91.01-g", - UIinfo={"groupes":("Impression",)}, - fr="Impression du résultat d un calcul (différents formats)", - MODELE =SIMP(statut='f',typ=modele), - RESU =FACT(statut='o',min=1,max='**', - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - - regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'), - EXCLUS('CHAM_GD','RESULTAT'),), - MAILLAGE =SIMP(statut='f',typ=(maillage,squelette)), - INFO_MAILLAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CHAM_GD =SIMP(statut='f',typ=cham_gd), - RESULTAT =SIMP(statut='f',typ=resultat),# CO() sd a creer !!! - - b_sensibilite =BLOC(condition="RESULTAT != None", - fr="Définition des paramètres de sensibilité", - ang="Definition of sensitivity parameters", - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"),), - - b_extrac =BLOC(condition="RESULTAT != None", - fr="extraction d un champ de grandeur", - regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP', - 'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM',max='**'), - ANGL =SIMP(statut='f',typ='R',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - - b_acce_reel =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - - b_parametres =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""", - regles=(EXCLUS('TOUT_PARA','NOM_PARA'),), - INFO_RESU =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - FORM_TABL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON","EXCEL") ), - ), - - b_cmp=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\ - ((FORMAT == 'RESULTAT')or(FORMAT == 'ENSIGHT')or(FORMAT == 'MED'))""", - fr="sélection des composantes", - regles=(EXCLUS('TOUT_CMP','NOM_CMP'),), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - - b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""", - fr="sélection des composantes et des entités toplogiques", - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - - b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\ - ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'MED'))""", - fr="sélection des entités toplogiques", - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - - b_valeurs =BLOC(condition="(FORMAT == 'RESULTAT')", - fr="sélection sur les valeurs", - VALE_MAX =SIMP(statut='f',typ='TXM',into=("OUI",) ), - VALE_MIN =SIMP(statut='f',typ='TXM',into=("OUI",) ), - BORNE_SUP =SIMP(statut='f',typ='R'), - BORNE_INF =SIMP(statut='f',typ='R'), - IMPR_COOR =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), - ), - - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - FICHIER =SIMP(statut='f',typ='TXM'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de valeurs propres dans un intervalle donné", - docu="U4.52.01-g", - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"), - fr="Type d analyse" ), - b_dynamique =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - fr="Recheche du nombre de fréquences propres", - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ), - FREQ_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), - ), - b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - fr="Recherche du nombre de charges critiques", - CHAR_CRIT_MIN =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ), - CHAR_CRIT_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), - ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -IMPR_TABLE=PROC(nom="IMPR_TABLE",op=155,docu="U4.91.03-d", - UIinfo={"groupes":("Impression",)}, - fr="Impression d un concept de type table", - TABLE =SIMP(statut='o',typ=table), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT", ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL", - into=("EXCEL","AGRAF","MOT_CLE","TABLEAU","ASTER") ), - FILTRE =FACT(statut='f',min=1,max='**', - NOM_PARA =SIMP(statut='o',typ='TXM'), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_K =SIMP(statut='f',typ='TXM'),), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - TRI =FACT(statut='f',min=1,max=1, - NOM_PARA =SIMP(statut='o',typ='TXM',max='**'), - ORDRE =SIMP(statut='f',typ='TXM',max='**',defaut="CROISSANT", - into=("CROISSANT","DECROISSANT") ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - PAGINATION =SIMP(statut='f',typ='TXM',max='**'), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), - FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE", - into=("MODULE_PHASE","REEL_IMAG") ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",)), - IMPR_FONCTION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -INCLUDE=MACRO(nom="INCLUDE",op=-1,docu="U4.13.01-f", - 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/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,docu="U4.43.02-b", - UIinfo={"groupes":("Modélisation",)}, - fr=" ", - sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0, - NOM_AFNOR =SIMP(statut='o',typ='TXM' ), - TYPE_MODELE =SIMP(statut='o',typ='TXM',into=("REF","PAR") ), - VARIANTE =SIMP(statut='o',typ='TXM', - into=("A","B","C","D","E","F","G","H","I","J", - "K","L","M","N","O","P","Q","R","S","T","U","V", - "W","X","Y","Z",) ), - TYPE_VALE =SIMP(statut='o',typ='TXM',into=("NOMI","MINI","MAXI") ), - NOM_MATER =SIMP(statut='o',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I',defaut= 32 ), - EXTRACTION =FACT(statut='f',min=1,max=99, - COMPOR =SIMP(statut='o',typ='TXM' ), - TEMP_EVAL =SIMP(statut='o',typ='R' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe,docu="U4.81.11-f", - UIinfo={"groupes":("Post traitements",)}, - fr="Définition d une courbe sur un maillage 2D",reentrant='n', - - MAILLAGE =SIMP(statut='o',typ=(maillage) ), - - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'), - PRESENT_ABSENT('DEFI_CHEMIN','DEFI_SEGMENT','DEFI_ARC'), - PRESENT_ABSENT('DEFI_SEGMENT','NOEUD_ORIG','GROUP_NO_ORIG'), - PRESENT_ABSENT('DEFI_ARC','NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'), - EXCLUS('DEFI_CHEMIN','DEFI_ARC'),), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - - DEFI_SEGMENT =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - EXTREMITE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_EXTR =SIMP(statut='f',typ=no,max=1), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1), - ), - - DEFI_ARC =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('RAYON','ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('RAYON','EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'), - PRESENT_PRESENT('RAYON','SECTEUR'),), - CENTRE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_CENTRE =SIMP(statut='f',typ=no,max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,max=1), - RAYON =SIMP(statut='f',typ='R',max=1,val_min=0.E+0), - SECTEUR =SIMP(statut='f',typ='R',min=2,max=2, - val_min=-180.E+0,val_max=180E+0), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - EXTREMITE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_EXTR =SIMP(statut='f',typ=no,max=1), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU",) ), - ), - - DEFI_CHEMIN =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ), - - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface,docu="U4.81.12-f", - UIinfo={"groupes":("Post traitements",)}, - fr="Définition d un chemin sur un maillage 3D",reentrant='n', - MAILLAGE =SIMP(statut='o',typ=maillage), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - DEFI_SEGMENT =FACT(statut='o',min=1,max='**', - regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), - ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - EXTREMITE =SIMP(statut='f',typ='R',min=3,max=3), - NOEUD_EXTR =SIMP(statut='f',typ=no,max=1), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1), - ), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def lire_champ_prod(TYPE_CHAM=None,**args): - if TYPE_CHAM == "CHAM_NO_TEMP_R" : return cham_no_temp_r - if TYPE_CHAM == "CHAM_NO_DEPL_R" : return cham_no_depl_r - raise AsException("type de concept resultat non prevu") - -LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod, - fr="Lire un champ dans un fichier et le stocker dans un concept.", - ang="To read a field in a file and to save it in a concept.", - docu="U7.02.02-b",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, -# -# 1. Le maillage support du champ -# - MAILLAGE =SIMP(statut='o',typ=maillage, - fr="Nom du maillage support du champ", - ang="Name of the mesh on which the field is defined" ), -# -# 2. Format de lecture -# Remarque : seul MED est operationnel dans cette version. -# - FORMAT =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",), - fr="Format du fichier : MED seulement", - ang="Format of the file : MED only" ), -# -# 3. L'unite logique du fichier. -# - UNITE =SIMP(statut='f',typ='I',defaut= 81, - fr="Le fichier est : fort.n.", - ang="File is : fort.n" ), -# -# 4. Pour le format MED, il faut preciser le nom sous lequel le champ est connu dans le fichier -# et les composantes a lire -# - b_format =BLOC(condition = "FORMAT == 'MED'", - fr="Nom du champ dans le fichier MED", - regles=(UN_PARMI('NOM_CMP_IDEM','NOM_CMP'), - PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ),), -# - NOM_MED =SIMP(statut='o',typ='TXM', - fr="Nom du champ dans le fichier MED.", - ang="Name of the field in the MED file." ), -# - NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Les composantes ont le meme nom dans MED et ASTER.", - ang="The names of the components are the same in ASTER and MED." ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**', - fr="Nom des composantes dans ASTER.", - ang="Names of the components in ASTER" ), - NOM_CMP_MED =SIMP(statut='f',typ='TXM',max='**', - fr="Nom des composantes dans MED.", - ang="Names of the components in MED" ), -# - NUME_ORDRE =SIMP(statut='f',typ='I',max='**', - fr="Numéro d'ordre du champ à lire.", - ang="Rank number of the field to read."), -# - NUME_PT =SIMP(statut='f',typ='I',max='**', - fr="Numéro du pas de temps du champ à lire.", - ang="Time step number of the field to read."), -# -# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel -# le maillage associé au champ y a été enregistré. Par défaut, on prendra le premier maillage. -# - NOM_MAIL_MED = SIMP(statut='f',typ='TXM', - fr="Nom du maillage dans le fichier MED.", - ang="Name of the mesh into the MED file.",), -# - ), -# -# 5. Le type du concept lu -# - TYPE_CHAM =SIMP(statut='o',typ='TXM',into=("CHAM_NO_TEMP_R","CHAM_NO_DEPL_R"), - fr="Type de champ à créer.", - ang="Type of the field to create." ), -# -# 6. Le niveau d'information -# - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -LIRE_FONCTION=OPER(nom="LIRE_FONCTION",op= 83,sd_prod=fonction, - fr="Lecture d une fonction dans un fichier ", - docu="U4.32.02-f",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - UNITE =SIMP(statut='o',typ='I' ), - NOM_PARA =SIMP(statut='f',typ='TXM', - into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM', - into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ), - INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 2,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -LIRE_INTE_SPEC=OPER(nom="LIRE_INTE_SPEC",op= 116,sd_prod=tabl_intsp, - fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale", - docu="U4.36.01-f",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - UNITE =SIMP(statut='o',typ='I' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ), - NOM_PARA =SIMP(statut='f',typ='TXM', - into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage, - fr="Lecture d'un fichier de maillage", - ang="Readings of a mesh file", - docu="U4.21.01-g",reentrant='n', - UIinfo={"groupes":("Maillage",)}, -# - UNITE =SIMP(statut='f',typ='I',defaut= 20 ), -# - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"), - fr="Format du fichier : ASTER ou MED.", - ang="Format of the file : ASTER or MED.",), -# - ABSC_CURV =FACT(statut='f',min=0,max=1, - TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -# - VERI_MAIL =FACT(statut='d',min=1,max=1, - VERIF =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - APLAT =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), -# - b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " , - fr="Informations complémentaires pour la lecture MED.", - ang="Further information for MED readings.", -# -# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel -# le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer. -# - NOM_MED = SIMP(statut='f',typ='TXM', - fr="Nom du maillage dans le fichier MED.", - ang="Name of the mesh into the MED file.",), -# - INFO_MED = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# - ) , -# - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== -def lire_miss_3d_prod(TYPE_RESU,**args): - if TYPE_RESU == "TRANS" : return dyna_trans - if TYPE_RESU == "HARMO" : return dyna_harmo - raise AsException("type de concept resultat non prevu") - -LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod, - fr="Restitution au format MISS3D d une évolution harmonique ou transitoire", - docu="U7.02.31-d",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/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char, - fr=" ", - docu="U7.02.11-b",reentrant='n', - UIinfo={"groupes":("Maillage",)}, - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - UNITE =SIMP(statut='f',typ='I',defaut= 19 ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)), - MAIL_PLEXUS =SIMP(statut='o',typ=maillage ), - MAILLAGE =SIMP(statut='o',typ=maillage ), - MODELE =SIMP(statut='o',typ=modele ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8 ), - b_prec_crit =BLOC(condition = "LIST_INST != None or INST != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 09/09/2003 AUTEUR VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def lire_resu_prod(TYPE_RESU,**args): - if TYPE_RESU == "EVOL_CHAR" : return evol_char - if TYPE_RESU == "EVOL_THER" : return evol_ther - if TYPE_RESU == "EVOL_ELAS" : return evol_elas - if TYPE_RESU == "EVOL_NOLI" : return evol_noli - if TYPE_RESU == "DYNA_TRANS" : return dyna_trans - if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo - if TYPE_RESU == "HARM_GENE" : return harm_gene - if TYPE_RESU == "MODE_MECA" : return mode_meca - raise AsException("type de concept resultat non prevu") - -# pour éviter d'écrire 3 fois cette liste : -def l_nom_cham_pas_elga(): return ( - "ACCE", "ACCE_ABSOLU", "CRIT_ELNO_RUPT", "DCHA_ELNO_SIGM", - "DCHA_NOEU_SIGM", "DEDE_ELNO_DLDE", "DEDE_NOEU_DLDE", "DEGE_ELNO_DEPL", "DEGE_NOEU_DEPL", - "DEPL", "DEPL_ABSOLU", "DESI_ELNO_DLSI", "DESI_NOEU_DLSI", "DETE_ELNO_DLTE", "DETE_NOEU_DLTE", - "DURT_ELNO_META", "DURT_NOEU_META", "ECIN_ELEM_DEPL", "EFGE_ELNO_CART", "EFGE_ELNO_DEPL", - "EFGE_NOEU_CART", "EFGE_NOEU_DEPL", "ENDO_ELNO_SIGA", "ENDO_ELNO_SINO", "ENDO_NOEU_SINO", - "ENEL_ELNO_ELGA", "ENEL_NOEU_ELGA", "EPEQ_ELNO_TUYO", "EPGR_ELNO", "EPME_ELNO_DEPL", - "EPMG_ELNO_DEPL", "EPMG_NOEU_DEPL", "EPOT_ELEM_DEPL", "EPSA_ELNO", "EPSA_NOEU", - "EPSG_ELNO_DEPL", "EPSG_NOEU_DEPL", "EPSI_ELNO_DEPL", "EPSI_ELNO_TUYO", "EPSI_NOEU_DEPL", - "EPSP_ELNO", "EPSP_ELNO_ZAC", "EPSP_NOEU", "EPSP_NOEU_ZAC", "EQUI_ELNO_EPME", "EQUI_ELNO_EPSI", - "EQUI_ELNO_SIGM", "EQUI_NOEU_EPME", "EQUI_NOEU_EPSI", "EQUI_NOEU_SIGM", "ERRE_ELEM_NOZ1", - "ERRE_ELEM_NOZ2", "ERRE_ELNO_ELGA", "ERRE_NOEU_ELGA", "ERTH_ELEM_TEMP", "ERTH_ELNO_ELEM", - "ETOT_ELEM", "ETOT_ELNO_ELGA", "FLUX_ELNO_TEMP", "FLUX_NOEU_TEMP", "FORC_NODA", "FSUR_2D", - "FSUR_3D", "FVOL_2D", "FVOL_3D", "GRAD_NOEU_THETA", "HYDR_ELNO_ELGA", "HYDR_NOEU_ELGA", - "INTE_ELNO_ACTI", "INTE_ELNO_REAC", "INTE_NOEU_ACTI", "INTE_NOEU_REAC", "IRRA", - "META_ELNO_TEMP", "META_NOEU_TEMP", "PMPB_ELNO_SIEF", "PMPB_NOEU_SIEF", - "PRES", "PRES_DBEL_DEPL", "PRES_ELNO_DBEL", "PRES_ELNO_IMAG", "PRES_ELNO_REEL", - "PRES_NOEU_DBEL", "PRES_NOEU_IMAG", "PRES_NOEU_REEL", - "RADI_ELNO_SIGM", "RADI_NOEU_SIGM", "REAC_NODA", - "SIEF_ELNO", "SIEF_ELNO_ELGA", "SIEF_NOEU", "SIEF_NOEU_ELGA", "SIEQ_ELNO_TUYO", - "SIGM_ELNO_CART", "SIGM_ELNO_COQU", "SIGM_ELNO_DEPL", "SIGM_ELNO_SIEF", - "SIGM_ELNO_TUYO", "SIGM_ELNO_ZAC", "SIGM_NOEU_CART", "SIGM_NOEU_COQU", - "SIGM_NOEU_DEPL", "SIGM_NOEU_SIEF", "SIGM_NOEU_ZAC", "SIGM_NOZ1_ELGA", - "SIGM_NOZ2_ELGA", "SIPO_ELNO_DEPL", "SIPO_ELNO_SIEF", "SIPO_NOEU_DEPL", - "SIPO_NOEU_SIEF", "SIRE_ELNO_DEPL", "SIRE_NOEU_DEPL", "TEMP", "THETA", - "VALE_CONT", "VALE_NCOU_MAXI", "VARI_ELNO", "VARI_ELNO_COQU", - "VARI_ELNO_ELGA", "VARI_ELNO_TUYO", "VARI_NOEU", "VARI_NOEU_ELGA", "VARI_NON_LOCAL", - "VITE", "VITE_ABSOLU", "VITE_VENT", - ) - - - -LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,docu="U7.02.01-d",reentrant='n', - UIinfo={"groupes":("Maillage",)}, - fr="Lecture de champs aux noeuds ou par éléments aux noeuds sur un fichier IDEAS ou EnSight", - - -# 0 mots clés généraux : -#---------------------- - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI","MODE_MECA", - "DYNA_TRANS","DYNA_HARMO","HARM_GENE","EVOL_CHAR") ), - - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS","ENSIGHT","MED") ), - DATASET_58 =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON',) ), - - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - - regles=(UN_PARMI('MAILLAGE','MODELE'),), - MAILLAGE =SIMP(statut='f',typ=maillage), - MODELE =SIMP(statut='f',typ=modele), - - NB_VARI =SIMP(statut='f',typ='I' ), - - -# 1 blocs selon le format choisi : -#--------------------------------- - -# 1-1 ideas : -# --------- - b_ideas =BLOC(condition="FORMAT=='IDEAS'", - UNITE =SIMP(statut='f',typ='I',defaut= 19 ), - ), - - b_format_ideas = BLOC(condition="FORMAT=='IDEAS' and DATASET_58=='NON'", - NOM_CHAM =SIMP(statut='o',typ='TXM',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='**'),), - ), - - b_dataset_58 = BLOC(condition="FORMAT=='IDEAS' and DATASET_58=='OUI' \ - and TYPE_RESU in ('DYNA_TRANS','DYNA_HARMO','HARM_GENE')", - NOM_CHAM=SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","EPSI_NOEU_DEPL","SIEF_NOEU",) ), - REDEFI_ORIENT=FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('CODE_DIR','DIRECTION','NOEUD',),), - CODE_DIR =SIMP(statut='f',typ='I',into=(1,2,3,) ), - DIRECTION=SIMP(statut='f',typ='R',min=3,max=3,), - NOEUD =SIMP(statut='f',typ=no,max='**'),), - ), -# 1-2 ensight : -# ------------- - b_ensight =BLOC(condition="FORMAT=='ENSIGHT'", - NOM_FICHIER =SIMP(statut='f',typ='TXM'), - NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',into=l_nom_cham_pas_elga()), - ), -# 1-3 med : -# --------- - b_med =BLOC(condition = "FORMAT == 'MED'",fr="Nom du champ dans le fichier MED", -# regles=(UN_PARMI('NOM_CMP_IDEM','NOM_CMP'), -# PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ),), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()), - NOM_MED =SIMP(statut='o',typ='TXM', - fr="Nom du champ dans le fichier MED.", - ang="Name of the field in the MED file." ), - NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Les composantes ont le meme nom dans MED et ASTER.", - ang="The names of the components are the same in ASTER and MED." ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**', - fr="Nom des composantes dans ASTER.", - ang="Names of the components in ASTER" ), - NOM_CMP_MED =SIMP(statut='f',typ='TXM',max='**', - fr="Nom des composantes dans MED.", - ang="Names of the components in MED" ), -# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel -# le maillage associé au champ y a été enregistré. Par défaut, on prendra le premier maillage. - NOM_MAIL_MED =SIMP(statut='f',typ='TXM', - fr="Nom du maillage dans le fichier MED.", - ang="Name of the mesh into the MED file.",), - UNITE =SIMP(statut='f',typ='I',defaut= 81, - fr="Le fichier est : fort.n.", - ang="File is : fort.n" ), - ), - - -# 2 blocs selon le type du résultat : -#--------------------------------- - b_mode_meca =BLOC(condition="TYPE_RESU=='MODE_MECA'", - MATR_A =SIMP(statut='f',typ=matr_asse_depl_r), - MATR_B =SIMP(statut='f',typ=matr_asse_depl_r), - ), - - -# 3 autres blocs : -#--------------------------------- - b_extrac =BLOC(condition="1",fr="accès à un champ dans la structure de données résultat", - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST','FREQ','LIST_FREQ'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - LIST_ORDRE =SIMP(statut='f',typ=listis), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 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. -# ====================================================================== -def lire_table_prod(TYPE_TABLE,**args): - if TYPE_TABLE == "TABLE" : return table - if TYPE_TABLE == "TABL_CARA_GEOM" : return tabl_cara_geom - if TYPE_TABLE == "TABL_POST_RELE" : return tabl_post_rele - if TYPE_TABLE == "TABL_POST_USUR" : return tabl_post_usur - if TYPE_TABLE == "TABL_POST_ALEA" : return tabl_post_alea - raise AsException("type de concept resultat non prevu") -LIRE_TABLE=OPER(nom="LIRE_TABLE",op=29,sd_prod=lire_table_prod, - docu="U7.02.03-a",fr="Lecture d un concept de type table", - UIinfo={"groupes":("Maillage",)}, - UNITE =SIMP(statut='o',typ='I' ), - FORMAT =SIMP(statut='f',typ='TXM',into=("ASTER",),defaut="ASTER"), - NUME_TABLE =SIMP(statut='f',typ='I',defaut=1), - TYPE_TABLE =SIMP(statut='f',typ='TXM',defaut="TABLE", - into=("TABLE", - "TABL_CARA_GEOM", - "TABL_POST_RELE", - "TABL_POST_USUR", - "TABL_POST_ALEA" ) ), - SEPARATEUR =SIMP(statut='o',typ='TXM'), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - ) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args): - mail1=ADAPTATION['MAILLAGE_N'] - self.type_sdprod(mail1,maillage) - mail2=ADAPTATION['MAILLAGE_NP1'] - self.type_sdprod(mail2,maillage) - if MAJ_CHAM == None:return None - for ch in MAJ_CHAM: - t=ch['TYPE_CHAM'] - if t == 'CHAM_NO_TEMP_R':self.type_sdprod(ch['CHAM_MAJ'],cham_no_temp_r) - if t == 'CHAM_NO_DEPL_R':self.type_sdprod(ch['CHAM_MAJ'],cham_no_depl_r) - return None - -MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=-24,sd_prod=macr_adap_mail_prod, - fr="Adapter un maillage avec le logiciel HOMARD.", - ang="Mesh adaptation with HOMARD software.", - docu="U7.03.01-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="V5_5", - into=("V5_5", "V5_N", "V5_N_PERSO"), - fr="Version de HOMARD", - ang="HOMARD release"), -# -# 3. Langue des messages issus de HOMARD -# - LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS", - into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",), - fr="Langue des messages issus de HOMARD.", - ang="Language for HOMARD messages." ), -# -# 4. LE TYPE DE TRAITEMENT : -# - ADAPTATION =FACT(statut='o',min=01,max=01, - fr="Type d'adaptation", - ang="Type of adaptation", -# -# 4.1. DEUX CHOIX D'ADAPTATION EXCLUSIFS : -# -# 4.1. -# A. SELON UN INDICATEUR D'ERREUR, AVEC TROIS VARIANTES : -# . RAFFINEMENT ET DERAFFINEMENT -# . RAFFINEMENT SEUL -# . DERAFFINEMENT SEUL -# B. UNIFORME, AVEC TROIS VARIANTES : -# . RAFFINEMENT SEUL -# . DERAFFINEMENT SEUL -# . RIEN : LE MAILLAGE EST LE MEME A LA SORTIE ET A L'ENTREE -# - regles=( - UN_PARMI('LIBRE','UNIFORME'), - ), - LIBRE = SIMP(statut='f',typ='TXM', - into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT"), - fr="Adaptation selon un indicateur d'erreur.", - ang="Adaptation among an error indicator" ), - UNIFORME = SIMP(statut='f',typ='TXM', - into=("RAFFINEMENT","DERAFFINEMENT","RIEN"), - fr="Adaptation uniforme.", - ang="Uniform adaptation" ), -# -# 4.2. QUEL QUE SOIT LE TYPE DE TRAITEMENT, IL FAUT DONNER : -# A. LE CONCEPT DU MAILLAGE INITIAL -# B. LE CONCEPT DU MAILLAGE FINAL -# - MAILLAGE_N = SIMP(statut='o',typ=(CO,maillage), - fr="Maillage avant adaptation", - ang="Mesh before adaptation" ), - MAILLAGE_NP1 = SIMP(statut='o',typ=(CO,maillage), - fr="Maillage apres adaptation", - ang="Mesh after adaptation" ), -# -# 4.3. POUR DE L'ADAPTATION LIBRE, IL FAUT L'INDICATEUR D'ERREUR -# -# - b_indicateur_d_erreur =BLOC( condition = " LIBRE != None " , - fr="Indicateur d'erreur", - ang="Error indicator", -# -# 4.3.1. LE NOM DU CONCEPT RESULTAT -# - RESULTAT_N = SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) , - fr="Resultat contenant l'indicateur d'erreur", - ang="Result with error indicator" ), -# -# 4.3.2. LE CHAMP D'INDICATEUR D'ERREUR -# - INDICATEUR = SIMP(statut='o',typ='TXM', - fr="Champ de l'indicateur d'erreur", - ang="Error indicator field" ), -# -# 4.3.3. LA COMPOSANTE RETENUE -# - NOM_CMP_INDICA = SIMP(statut='o',typ='TXM', - fr="Composante retenue", - ang="Selected component" ), -# -# 4.3.4. LE NUMERO D'ORDRE -# - NUME_ORDRE = SIMP(statut='f',typ='I' , - fr="Numero d ordre", - ang="Rank" ), - ) , -# -# 4.4. LES CRITERES POUR DE L'ADAPTATION LIBRE : -# ABSOLU, RELATIF, EN PROPORTION D'ENTITE -# 4.4.1. POUR LE RAFFINEMENT : -# - b_critere_de_raffinement =BLOC( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' ) " , - fr="Critère de raffinement.", - ang="Refinement threshold.", - regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),), - CRIT_RAFF_ABS = SIMP(statut='f',typ='R', - fr="Critère absolu", - ang="Absolute threshold" ), - CRIT_RAFF_REL = SIMP(statut='f',typ='R', - fr="Critère relatif", - ang="Relative threshold" ), - CRIT_RAFF_PE = SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments", - ang="Percentage of elements" ), - ) , -# -# 4.4.2. POUR LE DERAFFINEMENT : -# - b_critere_de_deraffinement =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' ) " , - fr="Critère de déraffinement.", - ang="Unrefinement threshold.", - regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),), - CRIT_DERA_ABS = SIMP(statut='f',typ='R' , - fr="Critère absolu", - ang="Absolute threshold" ), - CRIT_DERA_REL = SIMP(statut='f',typ='R', - fr="Critère relatif", - ang="Relative threshold" ), - CRIT_DERA_PE = SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments", - ang="Percentage of elements" ), - ) , -# -# 4.5. LES NIVEAUX EXTREMES POUR LE MAILLAGE ADAPTE -# 4.5.1. POUR LE RAFFINEMENT : -# - b_niveau_maximum =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' ) or \ - ( UNIFORME == 'RAFFINEMENT' ) " , - fr="Niveau maximum de profondeur de raffinement", - ang="Maximum level for refinement", - NIVE_MAX = SIMP(statut='f',typ='I' ), - ) , -# -# 4.5.2. POUR LE DERAFFINEMENT : -# - b_niveau_minimum =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' ) or \ - ( UNIFORME == 'DERAFFINEMENT' ) " , - fr="Niveau minimum de profondeur de déraffinement", - ang="Minimum level for unrefinement", - NIVE_MIN = SIMP(statut='f',typ='I' ), - ) , - ), -# -# 5. LA MISE A JOUR DE CHAMPS. -# PAR DEFAUT, RIEN NE SE FAIT -# - MAJ_CHAM =FACT(statut='f',min=01,max='**', - fr="Mise à jour de champs sur le nouveau maillage.", - ang="Updating of fields over the new mesh.", -# -# 5.1. LE NOM DU RESULTAT DU CHAMP A INTERPOLER -# - RESULTAT = SIMP(statut='o', - typ=(evol_elas,evol_noli,evol_ther), - fr="Resultat contenant le champ à mettre à jour", - ang="Result with field to be updated" ), -# -# 5.2. LE NOM DU CHAMP A INTERPOLER -# - NOM_CHAM = SIMP(statut='o',typ='TXM', - fr="Nom du champ à mettre à jour", - ang="Name of the field to be updated" ), -# -# 5.3. LE NUMERO D'ORDRE POUR LE CHAMP A INTERPOLER -# - NUME_ORDRE = SIMP(statut='f',typ='I', - fr="Numero d ordre du champ à mettre à jour", - ang="Rank of the field to be updated" ), -# -# 5.4. LE NOM DU CHAMP QUI CONTIENDRA LE RESULTAT DE LA MISE A JOUR -# - CHAM_MAJ = SIMP(statut='o',typ=(CO,cham_gd), - fr="Nom du champ qui contiendra le champ mis à jour", - ang="Name of the field for the updated field"), -# -# 5.5. LE TYPE DU CHAMP QUI CONTIENDRA LE RESULTAT DE LA MISE A JOUR -# - TYPE_CHAM = SIMP(statut='o',typ='TXM', - into=("CHAM_NO_TEMP_R","CHAM_NO_DEPL_R"), - fr="Type du champ qui contiendra le champ mis à jour", - ang="Type of the field for the updated field" ), - ), -# -# 6. INFORMATION SUR LE MAILLAGE : par defaut, on ne fait que les nombres -# A. NOMBRE DE NOEUDS ET ELEMENTS DU MAILLAGE -# B. QUALITE DES ELEMENTS DU MAILLAGE -# C. CONTROLE DE LA NON INTERPENETRATION DES ELEMENTS DU MAILLAGE -# D. CONNEXITE DU MAILLAGE -# E. TAILLE DES DIFFERENTS SOUS-DOMAINES -# - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et éléments du maillage", - ang="Number of nodes and elements in the mesh" ), -# - QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Mesh quality" ), -# - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des éléments.", - ang="Overlapping checking." ), -# - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Mesh connexity." ), -# - TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Tailles des sous-domaines du maillage.", - ang="Sizes of mesh sub-domains." ), -# - MENAGE = SIMP(statut='f',typ='TXM',into=("MAILLAGE","SOLUTION","TOUT") ), -# -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES -def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU_THER,**args): - self.type_sdprod(MODELE,modele) - if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater) - if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem) - if FOND_FISS != None:self.type_sdprod(FOND_FISS,fond_fiss) - if CHARGE != None:self.type_sdprod(CHARGE,char_meca) - if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther) - return evol_noli - -MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op= -20,sd_prod=macr_ascouf_calc_prod, - fr=" ", - docu="U4.cf.20-b",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), - - TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', - into=("SAIN", - "FISS_COUDE", - "FISS_AXIS_DEB", - "SOUS_EPAIS_COUDE" - ) ), - - CL_BOL_P2_GV =FACT(statut='f',min=1,max=1, - ANGLE =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - ), - - MAILLAGE =SIMP(statut='o',typ=maillage ), - MODELE =SIMP(statut='o',typ=(CO,modele)), - CHAM_MATER =SIMP(statut='f',typ=(CO,cham_mater)), - CARA_ELEM =SIMP(statut='f',typ=(CO,cara_elem)), - FOND_FISS =SIMP(statut='f',typ=(CO,fond_fiss)), - CHARGE =SIMP(statut='f',typ=(CO,char_meca)), - RESU_THER =SIMP(statut='f',typ=(CO,evol_ther)), - - AFFE_MATERIAU =FACT(statut='o',min=1,max=3, - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ='TXM',into=("COUDE","BOL") ), - MATER =SIMP(statut='o',typ=mater ), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - PRES_REP =FACT(statut='f',min=1,max=1, - PRES =SIMP(statut='o',typ='R' ), - EFFE_FOND_P1 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRES_LEVRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FONC_MULT =SIMP(statut='f',typ=fonction ), - ), - - ECHANGE =FACT(statut='f',min=1,max=1, - COEF_H =SIMP(statut='f',typ=fonction ), - TEMP_EXT =SIMP(statut='f',typ=fonction ), - ), - - TORS_P1 =FACT(statut='f',min=1,max=6, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - FONC_MULT =SIMP(statut='f',typ=fonction ), - ), - - COMP_INCR =FACT(statut='f',min=1,max=1, - RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ), - ), - - COMP_ELAS =FACT(statut='f',min=1,max=1, - RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ), - - SOLVEUR =FACT(statut='d',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - CONVERGENCE =FACT(statut='d',min=1,max=1, - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - TYPE_MATR_COMP =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT",)), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - - NEWTON =FACT(statut='d',min=1,max=1, - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - - RECH_LINEAIRE =FACT(statut='f',min=1,max=1, - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ), - - INCREMENT =FACT(statut='o',min=1,max=1, - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ), - - THETA_3D =FACT(statut='f',min=1,max='**', - R_INF =SIMP(statut='o',typ='R' ), - R_SUP =SIMP(statut='o',typ='R' ), - ), - - IMPR_TABLE =FACT(statut='f',min=1,max=1, - regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ), - PRESENT_PRESENT('TOUT_PARA','ANGLE', ), - PRESENT_PRESENT('TOUT_PARA','R_CINTR', ), - UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),), - NOM_PARA =SIMP(statut='f',typ='TXM',max=4, - into=("TRESCA_MEMBRANE", - "TRESCA_MFLE", - "TRESCA", - "SI_LONG" - "SI_RADI" - "SI_CIRC" - ) ), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ANGLE =SIMP(statut='f',typ='R',max='**' ), - R_CINTR =SIMP(statut='f',typ='R',max='**' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ), - POSI_ANGUL =SIMP(statut='f',typ='R',max='**' ), - TRANSFORMEE =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), - ), - - IMPRESSION =FACT(statut='f',min=1,max=1, - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","ASTER","IDEAS","CASTEM") ), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - - ), - - TITRE =SIMP(statut='f',typ='TXM' ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES -MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op= -19,sd_prod=maillage, - fr=" ",docu="U4.cf.10-b",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - - regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),), - - EXEC_MAILLAGE =FACT(statut='o',min=1,max=1, - LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000") ), - UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), - UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)), - ), - - TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ), - - COUDE =FACT(statut='o',min=1,max=1, - ANGLE =SIMP(statut='o',typ='R' ), - R_CINTR =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - L_TUBE_P2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - NB_ELEM_EPAIS =SIMP(statut='f',typ='I',defaut= 3 ), - SYME =SIMP(statut='f',typ='TXM',defaut="ENTIER",into=("ENTIER","QUART","DEMI") ), - TRANSFORMEE =SIMP(statut='o',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), - b_transf_coude =BLOC(condition = "TRANSFORMEE == 'COUDE' ", - DEXT =SIMP(statut='o',typ='R' ), - EPAIS =SIMP(statut='o',typ='R' ), - SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ), - ), - b_transf_tube =BLOC(condition = "TRANSFORMEE == 'TUBE' ", - TRAN_EPAIS =SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON") ), - b_trans_epais_oui =BLOC(condition = "TRAN_EPAIS == 'OUI' ", - regles=(ENSEMBLE('ANGL_TETA2','EPAIS_TI'), - UN_PARMI('ABSC_CURV_TRAN','POSI_ANGU_TRAN'),), - DEXT_T1 =SIMP(statut='o',typ='R' ), - EPAIS_T1 =SIMP(statut='o',typ='R' ), - EPAIS_T2 =SIMP(statut='o',typ='R' ), - EPAIS_TI =SIMP(statut='f',typ='R' ), - ANGL_TETA1 =SIMP(statut='o',typ='R' ), - ANGL_TETA2 =SIMP(statut='f',typ='R' ), - ABSC_CURV_TRAN =SIMP(statut='f',typ='R' ), - POSI_ANGU_TRAN =SIMP(statut='f',typ='R' ), - ), - b_trans_epais_non =BLOC(condition = "TRAN_EPAIS == 'NON' ", - DEXT =SIMP(statut='o',typ='R' ), - EPAIS =SIMP(statut='o',typ='R' ), - SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ), - ), - ), - ), - - SOUS_EPAIS_COUDE=FACT(statut='f',min=1,max=1, - regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), - UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), - TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), - AXE_CIRC =SIMP(statut='f',typ='R' ), - AXE_LONGI =SIMP(statut='o',typ='R' ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R' ), - SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), - NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), - NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), - NB_ELEM_RADI =SIMP(statut='f',typ='I',defaut= 3 ), - EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - SOUS_EPAIS_MULTI=FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), - UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), - TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), - AXE_CIRC =SIMP(statut='f',typ='R' ), - AXE_LONGI =SIMP(statut='o',typ='R' ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R' ), - SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), - NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), - NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), - EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - FISS_COUDE =FACT(statut='f',min=1,max=1, - regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),), - AXIS =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - b_axis_non =BLOC(condition = "AXIS == 'NON' ", - LONGUEUR =SIMP(statut='o',typ='R' ), - ), - b_axis_oui =BLOC(condition = "AXIS == 'OUI' ", - LONGUEUR =SIMP(statut='f',typ='R' ), - ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - ABSC_CURV =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - ORIEN =SIMP(statut='o',typ='R', - into=(45.,-45.,90.,0.E+0) ), - NB_TRANCHE =SIMP(statut='o',typ='I' ), - NB_SECTEUR =SIMP(statut='o',typ='I' ), - NB_COURONNE =SIMP(statut='o',typ='I' ), - RAYON_TORE =SIMP(statut='f',typ='R' ), - COEF_MULT_RC2 =SIMP(statut='f',typ='R',defaut= 1. ), - COEF_MULT_RC3 =SIMP(statut='f',typ='R' ), - ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - - IMPRESSION =FACT(statut='f',min=1,max='**', - regles=(PRESENT_PRESENT('FICHIER','UNITE'),), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER", - into=("ASTER","IDEAS","CASTEM") ), - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - FICHIER =SIMP(statut='f',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I' ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES -def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,**args): - if MODELE != None:self.type_sdprod(MODELE,modele) - if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater) - if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem) - if FOND_FISS_1 != None:self.type_sdprod(FOND_FISS_1,fond_fiss) - if FOND_FISS_2 != None:self.type_sdprod(FOND_FISS_2,fond_fiss) - if CHARGE != None:self.type_sdprod(CHARGE,char_meca) - if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther) - return evol_noli - -MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=-17,sd_prod=macr_aspic_calc_prod, - fr=" ",docu="U4.pc.20-b",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), - - TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', - into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB", - "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ), - - TUBULURE =FACT(statut='o',min=1,max=1, - TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ), - ), - MAILLAGE =SIMP(statut='o',typ=maillage), - MODELE =SIMP(statut='f',typ=(CO,modele)), - CHAM_MATER =SIMP(statut='f',typ=(CO,cham_mater)), - CARA_ELEM =SIMP(statut='f',typ=(CO,cara_elem)), - FOND_FISS_1 =SIMP(statut='f',typ=(CO,fond_fiss)), - FOND_FISS_2 =SIMP(statut='f',typ=(CO,fond_fiss)), - CHARGE =SIMP(statut='f',typ=(CO,char_meca)), - RESU_THER =SIMP(statut='f',typ=(CO,evol_ther)), - - AFFE_MATERIAU =FACT(statut='o',min=1,max=3, - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - GROUP_MA =SIMP(statut='f',typ='TXM',into=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ), - MATER =SIMP(statut='o',typ=mater), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RCCM =SIMP(statut='o',typ='TXM',into=("OUI","NON")), - ), - - EQUILIBRE =FACT(statut='o',min=1,max=1, - NOEUD =SIMP(statut='o',typ=no), - ), - - PRES_REP =FACT(statut='o',min=1,max=1, - PRES =SIMP(statut='o',typ='R'), - NOEUD =SIMP(statut='f',typ=no), - EFFE_FOND =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PRES_LEVRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FONC_MULT =SIMP(statut='f',typ=fonction), - ), - - ECHANGE =FACT(statut='f',min=1,max=1, - COEF_H_TUBU =SIMP(statut='o',typ=fonction), - COEF_H_CORP =SIMP(statut='o',typ=fonction), - TEMP_EXT =SIMP(statut='o',typ=fonction), - ), - - TORS_CORP =FACT(statut='f',min=1,max=6, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - NOEUD =SIMP(statut='o',typ=no), - FX =SIMP(statut='f',typ='R'), - FY =SIMP(statut='f',typ='R'), - FZ =SIMP(statut='f',typ='R'), - MX =SIMP(statut='f',typ='R'), - MY =SIMP(statut='f',typ='R'), - MZ =SIMP(statut='f',typ='R'), - FONC_MULT =SIMP(statut='f',typ=fonction), - ), - - TORS_TUBU =FACT(statut='f',min=1,max=6, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - FX =SIMP(statut='f',typ='R'), - FY =SIMP(statut='f',typ='R'), - FZ =SIMP(statut='f',typ='R'), - MX =SIMP(statut='f',typ='R'), - MY =SIMP(statut='f',typ='R'), - MZ =SIMP(statut='f',typ='R'), - FONC_MULT =SIMP(statut='f',typ=fonction), - ), - - COMP_INCR =FACT(statut='f',min=1,max=1, - RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ), - ), - - COMP_ELAS =FACT(statut='f',min=1,max=1, - RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ), - - THETA_3D =FACT(statut='f',min=1,max='**', - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - - OPTION =SIMP(statut='f',typ='TXM',into=("CALC_G_MAX","CALC_G_MAX_LOCAL") ), - BORNES =FACT(statut='f',min=1,max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - - SOLVEUR =FACT(statut='d',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - CONVERGENCE =FACT(statut='d',min=1,max=1, - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut=0), - TYPE_MATR_COMP =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT",)), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - - NEWTON =FACT(statut='d',min=1,max=1, - REAC_INCR =SIMP(statut='f',typ='I',defaut=1), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL","DEPL_CALCULE")), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE")), - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), - ), - - RECH_LINEAIRE =FACT(statut='d',min=1,max=1, - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-3), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut=3), - ), - - INCREMENT =FACT(statut='o',min=1,max=1, - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ), - - PAS_AZIMUT =SIMP(statut='f',typ='I',defaut=1), - - IMPRESSION =FACT(statut='f',min=1,max=1, - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","ASTER","CASTEM","IDEAS")), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - - b_extrac =BLOC(condition="((FORMAT=='IDEAS')or(FORMAT=='CASTEM'))", - fr="extraction d un champ de grandeur", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',max=3, - into=("DEPL","EQUI_ELNO_SIGM","TEMP")), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - INST =SIMP(statut='f',typ='R',max='**'), - ), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - - TITRE =SIMP(statut='f',typ='TXM'), -) ; -# debut entete -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES -MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= -16,sd_prod=maillage,reentrant='n', - fr=" ",docu="U4.pc.10-b", - UIinfo={"groupes":("Outils métier",)}, - - EXEC_MAILLAGE =FACT(statut='o',min=1,max=1, - LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000")), - UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), - UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)), - ), - - TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")), - - RAFF_MAIL =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")), - - TUBULURE =FACT(statut='o',min=1,max=1, - E_BASE =SIMP(statut='o',typ='R'), - DEXT_BASE =SIMP(statut='o',typ='R'), - L_BASE =SIMP(statut='o',typ='R'), - L_CHANF =SIMP(statut='o',typ='R'), - E_TUBU =SIMP(statut='o',typ='R'), - DEXT_TUBU =SIMP(statut='o',typ='R'), - Z_MAX =SIMP(statut='o',typ='R'), - TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")), - L_PENETR =SIMP(statut='f',typ='R',defaut= 0.0E+0), - ), - - SOUDURE =FACT(statut='o',min=1,max=1, - H_SOUD =SIMP(statut='o',typ='R'), - ANGL_SOUD =SIMP(statut='o',typ='R'), - JEU_SOUD =SIMP(statut='o',typ='R'), - ), - - CORPS =FACT(statut='o',min=1,max=1, - E_CORP =SIMP(statut='o',typ='R'), - DEXT_CORP =SIMP(statut='o',typ='R'), - X_MAX =SIMP(statut='o',typ='R'), - ), - - FISS_SOUDURE =FACT(statut='f',min=1,max=1, - TYPE =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")), - AXIS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - PROFONDEUR =SIMP(statut='o',typ='R'), - LONGUEUR =SIMP(statut='f',typ='R'), - AZIMUT =SIMP(statut='o',typ='R'), - RAYON_TORE =SIMP(statut='f',typ='R'), - POSITION =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")), - FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")), - LIGA_INT =SIMP(statut='f',typ='R'), - ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.0E+0), - COEF_MULT_RC1 =SIMP(statut='f',typ='R'), - COEF_MULT_RC2 =SIMP(statut='f',typ='R'), - COEF_MULT_RC3 =SIMP(statut='f',typ='R'), - NB_TRANCHE =SIMP(statut='f',typ='I'), - NB_SECTEUR =SIMP(statut='f',typ='I'), - NB_COURONNE =SIMP(statut='f',typ='I'), - ), - - IMPRESSION =FACT(statut='f',min=1,max='**', - regles=(PRESENT_PRESENT('FICHIER','UNITE'),), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - FICHIER =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op= 81,sd_prod=macr_elem_dyna, - fr="Définition d un macro élément pour analyse modale ou harmonique par sous structuration dynamique", - docu="U4.65.01-e",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/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,docu="U4.62.01-f",reentrant='f', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Définition d un macro-élément pour l analyse statique par sous structuration", - regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'), - ENSEMBLE('DEFINITION','EXTERIEUR'),), - DEFINITION =FACT(statut='f',min=1,max=1, - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHAR_MACR_ELEM =SIMP(statut='f',typ=char_meca), - INST =SIMP(statut='f',typ='R',defaut=0.0E+0 ), - NMAX_CAS =SIMP(statut='f',typ='I',defaut=10), - NMAX_CHAR =SIMP(statut='f',typ='I',defaut=10), - ), - EXTERIEUR =FACT(statut='f',min=1,max=1, - regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - ), - RIGI_MECA =FACT(statut='f',min=1,max=1, - ), - MASS_MECA =FACT(statut='f',min=1,max=1, - BIDO1 =SIMP(statut='f',typ='I',defaut=0), - ), - CAS_CHARGE =FACT(statut='f',min=1,max='**', - NOM_CAS =SIMP(statut='o',typ='TXM'), - SUIV =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - CHARGE =SIMP(statut='f',typ=char_meca,max='**'), - INST =SIMP(statut='f',typ='R',defaut=0.E+0), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MACR_GOUJ2E_CALC=MACRO(nom="MACR_GOUJ2E_CALC",op=-23,sd_prod=evol_noli, - fr=" ",docu="U4.gj.20-b",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - MAILLAGE =SIMP(statut='o',typ=maillage), - DEFI_GOUJ =FACT(statut='o',min=1,max=1, - TYPE =SIMP(statut='o',typ='TXM',into=("M33","M64","M90","M115","M155","M180","M186")), - VARIANTE =SIMP(statut='o',typ='TXM',into=("A","B","C","D","E","F","G","H","I","J","K","L","M", - "N","O","P","Q","R","S","T","U","V","W","X","Y","Z")), - FILET_TRONQUE =SIMP(statut='f',typ='I',max='**'), - FILET_TRONQA =SIMP(statut='f',typ='I',max='**'), - FILET_TRONQB =SIMP(statut='f',typ='I',max='**'), - FILET_JEU_HT =SIMP(statut='f',typ='I',max='**'), - FILET_JEU_HTA =SIMP(statut='f',typ='I',max='**'), - FILET_JEU_HTB =SIMP(statut='f',typ='I',max='**'), - ), - EXCIT =FACT(statut='o',min=1,max=1, - TYPE_BLOCAGE =SIMP(statut='o',typ='I',defaut=2,into=(1,2,3)), - FORCE_GOUJ =SIMP(statut='o',typ='R'), - ), - CALCUL =FACT(statut='o',min=1,max=1, - TYPE_CALCUL =SIMP(statut='o',typ='TXM',into=("ELASTIQUE","ELASTOPLASTIQUE")), - NB_INCR =SIMP(statut='o',typ='I'), - ), - IMPRESSION =FACT(statut='f',min=1,max=1, - FORMAT =SIMP(statut='f',typ='TXM',defaut="TABLE", - into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","TABLE")), - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - TITRE =SIMP(statut='f',typ='TXM'), - INFO =SIMP(statut='f',typ='I',defaut=1 ,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MACR_GOUJ2E_MAIL=MACRO(nom="MACR_GOUJ2E_MAIL",op= -22,sd_prod=maillage, - fr=" ",docu="U4.gj.10-b",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - EXEC_MAILLAGE =FACT(statut='o',min=1,max=1, - LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000") ), - UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), - UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10)), - ), - DEFI_GOUJ =FACT(statut='o',min=1,max=1, - TYPE =SIMP(statut='o',typ='TXM',into=("M33","M64","M90","M115","M155","M180","M186")), - VARIANTE =SIMP(statut='o',typ='TXM',into=("A","B","C","D","E","F","G","H","I","J","K","L","M", - "N","O","P","Q","R","S","T","U","V","W","X","Y","Z")), - ), - GEOM_GOUJ_BRID =FACT(statut='o',min=1,max=1, - NB_FILET =SIMP(statut='o',typ='I'), - H_CORP_BRID =SIMP(statut='o',typ='R'), - R_EXT_BRID =SIMP(statut='o',typ='R'), - H_HAUT_BRID =SIMP(statut='f',typ='R',defaut=0.0E+0), - H_BAS_BRID =SIMP(statut='f',typ='R',defaut= 0.0E+0), - FILET_ABST =SIMP(statut='f',typ='I',max='**'), - ), - IMPRESSION =FACT(statut='f',min=1,max=1, - regles=(PRESENT_PRESENT('FICHIER','UNITE'),), - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED")), - FICHIER =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=-24,docu="U7.03.02-b", - fr="Donner des informations sur un maillage.", - ang="To give information about a mesh.", -# -# 1. Le niveau d'information -# - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -# -# 2. Version de HOMARD -# - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V5_5", - into=("V5_5", "V5_N","V5_N_PERSO"), - fr="Version de HOMARD", - ang="HOMARD release"), -# -# 3. Langue des messages issus de HOMARD -# - LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS", - into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",), - fr="Langue des messages issus de HOMARD.", - ang="Language for HOMARD messages." ), -# -# 4. Le nom du maillage a analyser -# - MAILLAGE = SIMP(statut='o',typ=maillage, - fr="Maillage à analyser.", - ang="Mesh to be checked." ), -# -# 5. Les options ; par defaut, on ne fait que les nombres -# 5.1. Nombre de noeuds et elements -# - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et éléments du maillage", - ang="Number of nodes and elements in the mesh" ), -# -# 5.2. Determination de la qualite des elements du maillage -# - QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Mesh quality" ), -# -# 5.3. Connexite du maillage -# - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Mesh connexity." ), -# -# 5.4. Taille des sous-domaines du maillage -# - TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Tailles des sous-domaines du maillage.", - ang="Sizes of mesh sub-domains." ), -# -# 5.5. Controle de la non-interpenetration des elements -# - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des éléments.", - ang="Overlapping checking." ), -# -) ; -#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_lign_coupe_ops import macr_lign_coupe_ops - -def macr_lign_coupe_prod(self,LIGN_COUPE,**args): - if not LIGN_COUPE: raise AsException("Impossible de typer les concepts resultats") - for m in LIGN_COUPE: - self.type_sdprod(m['TABLE'],table) - return None - - -MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=macr_lign_coupe_prod, - docu="",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="extraction d un résultat sur des lignes de coupes définies par 2 points et un intervalle", - RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ), - b_meca =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli)",fr="résultat mécanique", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='SIGM_NOEU_DEPL' ), - ), - b_ther =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique", - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut='TEMP' ), - ), - MODELE =SIMP(statut='o',typ=modele ), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=25), - LIGN_COUPE =FACT(statut='o',min=1,max='**', - NB_POINTS =SIMP(statut='o',typ='I'), - COOR_ORIG =SIMP(statut='o',typ='R',min=2,max=3), - COOR_EXTR =SIMP(statut='o',typ='R',min=2,max=3), - TABLE =SIMP(statut='o',typ=(table,CO)), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_recal_ops import macr_recal_ops - -def macr_recal_prod(self,**args ): - return listr8 - -MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops,docu="U4.73.02-a", - UIinfo={"groupes":("Résultats et champs",)}, - sd_prod=macr_recal_prod, - fr="Réalise le recalage de modèles Aster", - UNITE_ESCL =SIMP(statut='o',typ='I'), - RESU_EXP =SIMP(statut='o',typ=assd,min = 1, max='**'), - RESU_CALC =SIMP(statut='o',typ=assd,min = 1, max='**'), - LIST_PARA =SIMP(statut='o',typ=assd,min = 1, max='**'), - ITER_MAXI =SIMP(statut='f',typ='I',defaut=10), - RESI_GLOB_RELA =SIMP(statut='f',typ='R',defaut=1.E-3), - UNITE_RESU =SIMP(statut='f',typ='I',defaut=91), - PARA_DIFF_FINI =SIMP(statut='f',typ='R',defaut=0.001), - GRAPHIQUE =FACT(statut='d',min=1,max=1, - UNITE =SIMP(statut='f',typ='I',defaut=90), - INTERACTIF =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),) -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX - -from Macro.macro_cara_poutre_ops import macro_cara_poutre_ops - -MACRO_CARA_POUTRE=MACRO(nom="MACRO_CARA_POUTRE",op=macro_cara_poutre_ops,sd_prod=tabl_cara_geom, - docu="U4.42.02-d",reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="caractéristiques d'une section transversale de poutre à partir d'un maillage 2D", - regles=(EXCLUS('SYME_X','GROUP_MA_BORD'), - EXCLUS('SYME_Y','GROUP_MA_BORD'), - ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 20 ), - SYME_X =SIMP(statut='f',typ='TXM',into=("OUI",)), - SYME_Y =SIMP(statut='f',typ='TXM',into=("OUI",)), - GROUP_MA_BORD =SIMP(statut='f',typ=grma,max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - ORIG_INER =SIMP(statut='f',typ='R',max='**',defaut=(0.E+0,0.E+0)), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_MA_INTE =SIMP(statut='f',typ=grma,max='**'), - LONGUEUR =SIMP(statut='f',typ='R'), - MATERIAU =SIMP(statut='f',typ=mater), - LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MACRO_CHAR_F_U=MACRO(nom="MACRO_CHAR_F_U",op=-15,sd_prod=char_meca, - fr=" ",docu="U4.72.07-a",reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CHARGE =SIMP(statut='o',typ=char_meca), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - COEF_IMPO =SIMP(statut='f',typ='R',defaut=1.0E+0), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="APRES",into=("NORMAL","APRES")), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES - -from Macro.macro_elas_mult_ops import macro_elas_mult_ops - -def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ): - self.type_sdprod(NUME_DDL,nume_ddl) - if CAS_CHARGE[0]['NOM_CAS'] != None : return mult_elas - if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas - raise AsException("type de concept resultat non prevu") - -MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,docu="U4.51.02-d",reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),), - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - NUME_DDL =SIMP(statut='f',typ=(nume_ddl,CO)), - CHAR_MECA_GLOBAL=SIMP(statut='f',typ=char_meca,max='**'), - CHAR_CINE_GLOBAL=SIMP(statut='f',typ=char_meca,max='**'), - LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)), - CAS_CHARGE =FACT(statut='o',min=1,max='**', - regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'), - UN_PARMI('CHAR_MECA','CHAR_CINE','VECT_ASSE'),), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - MODE_FOURIER =SIMP(statut='f',typ='I' ), - TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), - CHAR_MECA =SIMP(statut='f',typ=char_meca,max='**'), - CHAR_CINE =SIMP(statut='f',typ=char_meca,max='**'), - OPTION =SIMP(statut='f',typ='TXM',max='**', - into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "SIGM_ELNO_CART","EFGE_ELNO_CART","DEGE_ELNO_DEPL","EPSI_ELNO_DEPL", - "EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO","EPSP_ELGA", - "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC", - "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI", - "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA", - "ERRE_ELEM_NOZ2","VNOR_ELEM_DEPL","ERRE_ELNO_ELGA","SIRE_ELNO_DEPL", - "ERRE_ELGA_NORE","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI", - "EQUI_ELGA_EPSI","FORC_NODA","REAC_NODA","EPSI_NOEU_DEPL","SIGM_NOEU_DEPL", - "EFGE_NOEU_DEPL","EQUI_NOEU_SIGM","EQUI_NOEU_EPSI","FLUX_NOEU_TEMP") ), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r), - ), - SOLVEUR =FACT(statut='d',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ", - fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MACRO_MADMACS=MACRO(nom="MACRO_MADMACS",op=-9,docu="U7.03.21-c", - UIinfo={"groupes":("Résolution",)}, - fr="Impression au format IDEAS des données pour chainage entre Code_Aster et MADMACS", - regles=(UN_PARMI('MATR_ELEM_RIGI','MATR_RIGI'), - UN_PARMI('MATR_ELEM_MASS','MATR_MASS'), - PRESENT_ABSENT('MATR_ELEM_AMOR','MATR_AMOR'),), - FICHIER =SIMP(statut='f',typ='TXM' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)), - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(5,)), - MAILLAGE =SIMP(statut='o',typ=maillage), - NUME_DDL =SIMP(statut='o',typ=nume_ddl), - CHARGE =SIMP(statut='o',typ=char_meca,max='**'), - MATR_ELEM_RIGI =SIMP(statut='f',typ=matr_elem_depl_r), - MATR_RIGI =SIMP(statut='f',typ=matr_asse_depl_r), - MATR_ELEM_MASS =SIMP(statut='f',typ=matr_elem_depl_r), - MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r), - MATR_ELEM_AMOR =SIMP(statut='f',typ=matr_elem_depl_r), - MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r), - MODE_MECA =SIMP(statut='o',typ=mode_meca), - NMAX_MODE =SIMP(statut='f',typ='I',defaut=10), - INTERFACE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO'), - UN_PARMI('DDL_ACTIF','MASQUE'),), - NOM =SIMP(statut='o',typ='TXM'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'), - MASQUE =SIMP(statut='f',typ='TXM',max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args): - self.type_sdprod(MATR_AMOR_AJOU,matr_asse_depl_r) - self.type_sdprod(MATR_MASS_AJOU,matr_asse_depl_r) - self.type_sdprod(MATR_RIGI_AJOU,matr_asse_depl_r) - if FORC_AJOU != None: - for m in FORC_AJOU: - self.type_sdprod(m['VECTEUR'],vect_asse_gene) - - return None - -MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=-13,docu="U4.66.11-c",sd_prod=macro_matr_ajou_prod, - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'), - AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'), - EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'), - EXCLUS('MONO_APPUI','MODE_STAT',), - ), - MAILLAGE =SIMP(statut='o',typ=maillage), - GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma), - GROUP_MA_INTERF =SIMP(statut='o',typ=grma), - MODELISATION =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")), - FLUIDE =FACT(statut='o',min=1,max='**', - RHO =SIMP(statut='o',typ='R'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma), - ), - DDL_IMPO =FACT(statut='o',min=1,max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO'), - UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - PRES_FLUIDE =SIMP(statut='f',typ='R'), - PRES_SORTIE =SIMP(statut='f',typ='R'), - ), - ECOULEMENT =FACT(statut='f',min=1,max='**', - GROUP_MA_1 =SIMP(statut='o',typ=grma), - GROUP_MA_2 =SIMP(statut='o',typ=grma), - VNOR_1 =SIMP(statut='o',typ='R'), - VNOR_2 =SIMP(statut='f',typ='R'), - POTENTIEL =SIMP(statut='f',typ=evol_ther), - ), - MODE_MECA =SIMP(statut='f',typ=mode_meca), - DEPL_IMPO =SIMP(statut='f',typ=cham_no_depl_r), - MODELE_GENE =SIMP(statut='f',typ=modele_gene), - NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene), - DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.0E-2), - MATR_MASS_AJOU =SIMP(statut='f',typ=(CO,matr_asse)), - MATR_RIGI_AJOU =SIMP(statut='f',typ=(CO,matr_asse)), - MATR_AMOR_AJOU =SIMP(statut='f',typ=(CO,matr_asse)), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",),), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),), - FORC_AJOU =FACT(statut='f',min=1,max='**', - DIRECTION =SIMP(statut='o',typ='R',max=3), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - VECTEUR =SIMP(statut='o',typ=(CO,vect_asse_gene)), - ), - SOLVEUR =FACT(statut='d',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_matr_asse_ops import macro_matr_asse_ops - -def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args): - if not MATR_ASSE: raise AsException("Impossible de typer les concepts resultats") - if not NUME_DDL: raise AsException("Impossible de typer les concepts resultats") - self.type_sdprod(NUME_DDL,nume_ddl) - for m in MATR_ASSE: - opti=m['OPTION'] - - if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" , - "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA", - "AMOR_MECA","IMPE_MECA","MASS_ID_MDEP_R","MASS_ID_MDNS_R", - "ONDE_FLUI","MASS_MECA_DIAG" ) : t=matr_asse_depl_r - - if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c - - if opti in ( "RIGI_THER","MASS_THER","RIGI_THER_CONV" , - "RIGI_THER_CONV_D","MASS_ID_MTEM_R","MASS_ID_MTNS_R",) : t=matr_asse_temp_r - - if opti == "RIGI_MECA_HYST" : t= matr_asse_depl_c - - self.type_sdprod(m['MATRICE'],t) - return None - -MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,docu="U4.61.21-d", - UIinfo={"groupes":("Matrices/vecteurs",)}, - sd_prod=macro_matr_asse_prod, - fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ", - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**'), - INST =SIMP(statut='f',typ='R'), - NUME_DDL =SIMP(statut='o',typ=(nume_ddl,CO)), - SOLVEUR =FACT(statut='d',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT", - into=("LDLT","MULT_FRONT","GCPC")), - RENUM =SIMP(statut='f',typ='TXM',into=("SANS","RCMK","MD","MDA","METIS")), - ), - MATR_ASSE =FACT(statut='o',min=1,max='**', - MATRICE =SIMP(statut='o',typ=(matr_asse,CO)), - OPTION =SIMP(statut='o',typ='TXM', - into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG", - "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA", - "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU", - "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR", - "RIGI_THER","MASS_THER", - "RIGI_ACOU","MASS_ACOU","AMOR_ACOU", - "MASS_ID_MTEM_R","MASS_ID_MTNS_R","MASS_ID_MDEP_R","MASS_ID_MDNS_R",) - ), - SIEF_ELGA =SIMP(statut='f',typ=cham_elem_sief_r), - MODE_FOURIER =SIMP(statut='f',typ='I'), - THETA =SIMP(statut='f',typ=theta_geom), - PROPAGATION =SIMP(statut='f',typ='R'), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_miss_3d_ops import macro_miss_3d_ops - -MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,fr=" ",docu="U7.03.11-b", - UIinfo={"groupes":("Matrices/vecteurs",)}, - OPTION =FACT(statut='o',min=1,max=1, - regles=(UN_PARMI('TOUT','MODULE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - MODULE =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")), - ), - PROJET =SIMP(statut='o',typ='TXM'), - REPERTOIRE =SIMP(statut='f',typ='TXM'), - UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25), - UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26), - UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27), - UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_mode_meca_ops import macro_mode_meca_ops - -def macro_mode_meca_prod(self,MATR_A,MATR_B,**args ): - self.type_sdprod(MATR_A,matr_asse_depl_r) - self.type_sdprod(MATR_B,matr_asse_depl_r) - return mode_meca - -MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=macro_mode_meca_prod, - docu="U4.52.02-d",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=(CO,matr_asse_depl_r) ), - MATR_B =SIMP(statut='o',typ=(CO,matr_asse_depl_r) ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# ce mot cle ne devrait il pas etre dans calc_freq - METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", - into=("TRI_DIAG","JACOBI","SORENSEN",) ), - b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'", - PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ), - NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ), - NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), - ), - b_jacobi =BLOC(condition = "METHODE == 'JACOBI'", - PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ), - NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ), - PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), - NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ), - ), - b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'", - PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ), - NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ), - PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SANS", - into=("MODE_RIGIDE","SANS") ), - CALC_FREQ =FACT(statut='d',min=0,max=1, - regles=(UN_PARMI('FREQ','FREQ_MAX'), - PRESENT_PRESENT('FREQ_MIN','FREQ_MAX'), - PRESENT_PRESENT('FREQ_MAX','NB_BLOC_FREQ'), - EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),), - FREQ =SIMP(statut='f',typ='R',min=2,max='**',val_min=0.E+0 ), - FREQ_MIN =SIMP(statut='f',typ='R' ), - FREQ_MAX =SIMP(statut='f',typ='R' ), - NB_BLOC_FREQ =SIMP(statut='f',typ='I' ), - DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), - COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2 ), - SEUIL_FREQ =SIMP(statut='f',typ='R' ,defaut= 1.E-2 ), - STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ), - ), - VERI_MODE =FACT(statut='d',min=0,max=1, - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3 ), - STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - NORM_MODE =FACT(statut='o',min=1,max='**', - MASS_INER =SIMP(statut='o',typ=tabl_mass_iner ), - NORME =SIMP(statut='f',typ='TXM',defaut="TRAN_ROTA", - into=("MASS_GENE","RIGI_GENE","EUCL", - "EUCL_TRAN","TRAN","TRAN_ROTA") ), - INFO =SIMP(statut='f',typ='I',defaut= 1 ,into=(1,2) ), - ), - FILTRE_MODE =FACT(statut='f',min=1,max=1, - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", - into=("MASS_EFFE_UN","MASS_GENE") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - IMPRESSION =FACT(statut='d',min=1,max=1, - TOUT_PARA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - CUMUL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", - into=("MASS_EFFE_UN","MASS_GENE",) ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_proj_base_ops import macro_proj_base_ops - -def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,**args ): - if MATR_ASSE_GENE != None: - for m in MATR_ASSE_GENE: - self.type_sdprod(m['MATRICE'],matr_asse_gene_r) - self.type_sdprod(m['MATR_ASSE'],matr_asse_depl_r) - if VECT_ASSE_GENE != None: - for v in VECT_ASSE_GENE: - self.type_sdprod(v['VECTEUR'],vect_asse_gene) - return None - -MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,docu="U4.63.11-d", - UIinfo={"groupes":("Matrices/vecteurs",)}, - sd_prod=macro_proj_base_prod, - fr="Projection des matrices et/ou vecteurs assemblés sur une base de vecteurs", - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene) ), - NB_VECT =SIMP(statut='f',typ='I',defaut= 9999), - MATR_ASSE_GENE =FACT(statut='f',min=1,max='**', - MATRICE =SIMP(statut='o',typ=(CO,matr_asse)), - MATR_ASSE =SIMP(statut='f',typ=matr_asse_depl_r), - MATR_ASSE_GENE =SIMP(statut='f',typ=matr_asse_gene_r), - PROFIL =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ), - ), - VECT_ASSE_GENE =FACT(statut='f',min=1,max='**', - VECTEUR =SIMP(statut='o',typ=(CO,vect_asse)), - TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), - VECT_ASSE =SIMP(statut='f',typ=cham_no_depl_r), - VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MAJ_CATA=PROC(nom="MAJ_CATA",op=20,docu="U4.15.01-e", - UIinfo={"groupes":("Gestion du travail",)}, - fr="Compilation des catalogues de commandes et d éléments", - - ELEMENT =FACT(statut='f',min=1,max=1,), - -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas, - fr="Analyse mécanique statique linéaire",docu="U4.51.01-g",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - regles=(EXCLUS("INST","LIST_INST"), - AU_MOINS_UN('CHAM_MATER','CARA_ELEM',), ), - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='f',typ=cham_mater, - fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)", - ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"), - CARA_ELEM =SIMP(statut='f',typ=cara_elem, - fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...", - ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - EXCIT =FACT(statut='o',min=1,max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=fonction), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - LIST_INST =SIMP(statut='f',typ=listr8), - OPTION =SIMP(statut='f',typ='TXM',max='**', - into=("SANS","SIGM_ELNO_DEPL","SIPO_ELNO_DEPL","EFGE_ELNO_DEPL", - "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPME_ELNO_DEPL","EPME_ELGA_DEPL", - "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI","EQUI_ELGA_EPSI", - "EQUI_ELNO_EPME","EQUI_ELGA_EPME","DEGE_ELNO_DEPL","EPOT_ELEM_DEPL", - "ENEL_ELGA","ENEL_ELNO_ELGA") ), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ), - ANGLE =SIMP(statut='f',typ='I',defaut=0), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - SOLVEUR =FACT(statut='d',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129,docu="U4.31.07-a", - UIinfo={"groupes":("Fonction",)}, - fr="Mémorisation des noms des concepts dérivés.", - ang="Memorisation of the names of the sensitive concepts.", - - regles=(AU_MOINS_UN('NOM','NOM_ZERO','NOM_UN'),), - - NOM=FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('MOT_CLE','VALEUR' ),), - - NOM_SD=SIMP(statut='o',typ='TXM', - fr="Nom de la structure de base", - ang="Name of the basic structure"), - - PARA_SENSI=SIMP(statut='o',typ=(para_sensi,theta_geom), - fr="Nom du paramètre sensible", - ang="Name of the sensitive parameter"), - - NOM_COMPOSE=SIMP(statut='f',typ='TXM',defaut=" ", - fr="Nom de la structure composée", - ang="Name of the built structure"), - - MOT_CLE=SIMP(statut='f',typ='TXM',max='**', - fr="Liste des mots clés concernés par la dérivation", - ang="Keyword list involved in derivation"), - - VALEUR=SIMP(statut='f',typ='TXM',max='**', - fr="Liste des objets concernés par la dérivation", - ang="Object list involved in derivation"), - - ), - - NOM_ZERO=SIMP(statut='f',typ=fonction, - fr="Nom de la fonction nulle", - ang="Name of the zero fonction"), - - NOM_UN=SIMP (statut='f',typ=fonction, - fr="Nom de la fonction unité", - ang="Name of the one fonction"), - -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op= 80,sd_prod=mode_cycl, - fr="Modes propres d une structure à répétitivité cyclique à partir d une base de modes propres réels", - docu="U4.52.05-f",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - BASE_MODALE =SIMP(statut='o',typ=base_modale ), - NB_MODE =SIMP(statut='f',typ='I',defaut= 999 ), - NB_SECTEUR =SIMP(statut='o',typ='I' ), - LIAISON =FACT(statut='o',min=1,max=1, - DROITE =SIMP(statut='o',typ='TXM' ), - GAUCHE =SIMP(statut='o',typ='TXM' ), - AXE =SIMP(statut='f',typ='TXM' ), - ), - VERI_CYCL =FACT(statut='f',min=1,max=1, - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF",) ), - DIST_REFE =SIMP(statut='f',typ='R' ), - ), - CALCUL =FACT(statut='o',min=1,max=1, - TOUT_DIAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NB_DIAM =SIMP(statut='f',typ='I',max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE" - ,into=("PLUS_PETITE","CENTRE","BANDE") ), - b_centre =BLOC(condition = "OPTION == 'CENTRE'", - FREQ =SIMP(statut='o',typ='R',min=1,max=1), - ), - b_bande =BLOC(condition = "OPTION == 'BANDE'", - FREQ =SIMP(statut='o',typ='R',min=2,max=2), - ), -# NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 100. ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 50 ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ): - if TYPE_RESU == "MODE_FLAMB" : return mode_flamb - if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c - if AsType(MATR_A) == matr_asse_depl_r : return mode_meca - if AsType(MATR_A) == matr_asse_pres_r : return mode_acou - if AsType(MATR_A) == matr_asse_gene_r : return mode_gene - raise AsException("type de concept resultat non prevu") - -MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op= 44,sd_prod=mode_iter_inv_prod - ,fr="Modes propres par itérations inverses ; valeurs propres et modes réels ou complexes", - docu="U4.52.04-g",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_C =SIMP(statut='f',typ=matr_asse_depl_r ), - TYPE_RESU =SIMP(statut='f',position='global',typ='TXM',defaut="DYNAMIQUE", - into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ), - b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - CALC_FREQ =FACT(statut='o',min=1,max=1,fr="Choix des paramètres pour le calcul des valeurs propres", - - OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), - fr="Choix de l option pour estimer les valeurs propres" ), - FREQ =SIMP(statut='o',typ='R',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ), - NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ), - NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=0 ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ), - - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ), - ), - ), - b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - CALC_FREQ =FACT(statut='o',min=1,max=1,fr="Choix des paramètres pour le calcul des valeurs propres", - - OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), - fr="Choix de l option pour estimer les valeurs propres" ), - CHAR_CRIT =SIMP(statut='o',typ='R',max='**' ), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ), - NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ), - NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ), - - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ), - ), - ), - CALC_MODE =FACT(statut='d',min=0,max=1,fr="Choix des paramètres pour le calcul des vecteurs propres", - OPTION =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ), - PREC =SIMP(statut='f',typ='R',defaut= 1.E-5,val_min=0.E+0,fr="Précision de convergence" ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), - ), - VERI_MODE =FACT(statut='d',min=0,max=1, - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, - fr="Valeur limite admise pour l ereur a posteriori des modes" ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 05/01/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. -# ====================================================================== -def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ): - if TYPE_RESU == "MODE_FLAMB" : return mode_flamb - if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c - if AsType(MATR_A) == matr_asse_depl_r : return mode_meca - if AsType(MATR_A) == matr_asse_pres_r : return mode_acou - if AsType(MATR_A) == matr_asse_gene_r : return mode_gene - raise AsException("type de concept resultat non prevu") - -MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op= 45,sd_prod=mode_iter_simult_prod, - fr="Modes propres par itérations simultanées ; valeurs propres et modes propres réels ou complexes", - docu="U4.52.03-f",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_C =SIMP(statut='f',position='global',typ=(matr_asse_depl_r,matr_asse_gene_r) ), - METHODE =SIMP(statut='f',position='global',typ='TXM',defaut="SORENSEN", - into=("TRI_DIAG","JACOBI","SORENSEN") ), - b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'", - PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ), - NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ), - NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), - ), - b_jacobi =BLOC(condition = "METHODE == 'JACOBI'", - PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ), - NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ), - PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), - NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ), - ), - b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'", - PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ), - NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ), - PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ), - ), - TYPE_RESU =SIMP(statut='f',position='global',typ='TXM',defaut="DYNAMIQUE", - into=("MODE_FLAMB","DYNAMIQUE"), - fr="Type d analyse" ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"), - fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ), - - b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - CALC_FREQ =FACT(statut='d',min=0,max=1, - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"), - fr="Choix de l option et par conséquent du shift du problème modal" ), - b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres", - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), - ), - b_centre =BLOC(condition = "OPTION == 'CENTRE'", - fr="Recherche des valeurs propres les plus proches d une valeur donnée", - CHAR_CRIT =SIMP(statut='o',typ='R',min=1,max=1, - fr="Charge critique autour de laquelle on cherche les charges critiques propres"), - 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,max=2, - fr="Valeur des deux charges critiques délimitant la bande de recherche"), - ), - APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"), - fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ), - regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),), - DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), - COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), - ), - ), - - b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - CALC_FREQ =FACT(statut='d',min=0,max=1, - OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"), - fr="Choix de l option et par conséquent du shift du problème modal" ), - b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres", - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), - ), - b_centre =BLOC(condition = "OPTION == 'CENTRE'", - fr="Recherche des valeurs propres les plus proches d une valeur donnée", - FREQ =SIMP(statut='o',typ='R',min=1,max=1, - fr="Fréquence autour de laquelle on cherche les fréquences propres"), - AMOR_REDUIT =SIMP(statut='f',typ='R',max=1,), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ), - ), - b_bande =BLOC(condition = "(OPTION == 'BANDE')", - fr="Recherche des valeurs propres dans une bande donnée", - FREQ =SIMP(statut='o',typ='R',min=2,max=2, - fr="Valeur des deux fréquences délimitant la bande de recherche"), - ), - APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"), - fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ), - regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),), - DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ), - COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), - ), - ), - - VERI_MODE =FACT(statut='d',min=0,max=1, - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0, - fr="Valeur limite admise pour l ereur a posteriori des modes" ), - STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args): - if (MODE_STAT != None) : return mode_stat_depl - if (PSEUDO_MODE !=None) : return mode_stat_acce - if (FORCE_NODALE != None) : return mode_stat_forc - raise AsException("type de concept resultat non prevu") -MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod, - fr="Calcul de modes statiques", - docu="U4.52.14-f",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_MASS =SIMP(statut='f',typ=matr_asse_depl_r ), - regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE'),), - MODE_STAT =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'), - UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ,), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ,), - AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - FORCE_NODALE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'), - UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",), ), - AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - PSEUDO_MODE =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),), - AXE =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3), - DIRECTION =SIMP(statut='f',typ='R',min=3,max=3), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - b_dir =BLOC(condition = "DIRECTION != None", - NOM_DIR =SIMP(statut='f',typ='TXM' ),), - b_cmp =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None", - regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), - AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca, - docu="U4.66.21-d",reentrant='f', - UIinfo={"groupes":("Matrices/vecteurs",)}, -# la commande modi_base _modale : reentrant = f ou o - regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),), - BASE =SIMP(statut='o',typ=mode_meca ), - BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu ), - NUME_VITE_FLUI =SIMP(statut='o',typ='I' ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - AMOR_UNIF =SIMP(statut='f',typ='R' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 04/10/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND -# REDISTRIBUTION OF THIS FILE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage, - fr="Modification de la connectivité de groupes de mailles 2D ou 3D affectées à la modélisation de contact", - docu="U4.23.04-d",reentrant='o', - UIinfo={"groupes":("Maillage",)}, - regles=(AU_MOINS_UN('ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE', - 'TRANSLATION','ROTATION','MODI_BASE','ECHELLE',), - PRESENT_ABSENT('ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('DEFORME','ORIE_CONTACT','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('EQUE_PIQUA','ORIE_CONTACT','DEFORME','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_CONTACT','DEFORME','EQUE_PIQUA', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('ORIE_PEAU_3D','ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('ORIE_NORM_COQUE','ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('PLAQ_TUBE','ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE',), - PRESENT_ABSENT('MODI_MAILLE','ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE',), - EXCLUS('EQUE_PIQUA','PLAQ_TUBE'), - EXCLUS('EQUE_PIQUA','TUBE_COUDE'), - EXCLUS('ROTATION','MODI_BASE'),), - MAILLAGE =SIMP(statut='o',typ=maillage ), - - ORIE_CONTACT =FACT(statut='f',min=1,max=1, - GROUP_MA =SIMP(statut='o',typ=grma,max='**'), - ), - - DEFORME =FACT(statut='f',min=1,max=1, - OPTION =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ), - DEPL =SIMP(statut='o',typ=cham_no_depl_r ), - b_deform =BLOC(condition = "OPTION=='TRAN_APPUI'", - GROUP_NO_APPUI = SIMP(statut='o',typ=grno,max='**' ), - GROUP_NO_STRU = SIMP(statut='o',typ=grno,max='**' ),), - ), - - EQUE_PIQUA =FACT(statut='f',min=1,max=1, - GROUP_NO =SIMP(statut='o',typ=grno), - E_BASE =SIMP(statut='o',typ='R' ), - DEXT_BASE =SIMP(statut='o',typ='R' ), - L_BASE =SIMP(statut='o',typ='R' ), - L_CHANF =SIMP(statut='o',typ='R' ), - TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")), - H_SOUD =SIMP(statut='o',typ='R' ), - ANGL_SOUD =SIMP(statut='o',typ='R' ), - JEU_SOUD =SIMP(statut='o',typ='R' ), - E_CORP =SIMP(statut='o',typ='R' ), - DEXT_CORP =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='o',typ='R' ), - RAFF_MAIL =SIMP(statut='o',typ='TXM' ), - X_MAX =SIMP(statut='o',typ='R' ), - ), - ORIE_PEAU_2D =FACT(statut='f',min=1,max='**', - GROUP_MA =SIMP(statut='o',typ=grma,max='**'), - ), - ORIE_PEAU_3D =FACT(statut='f',min=1,max='**', - GROUP_MA =SIMP(statut='o',typ=grma,max='**'), - ), - ORIE_NORM_COQUE =FACT(statut='f',min=1,max='**', - regles=(EXCLUS('NOEUD','GROUP_NO'), - PRESENT_PRESENT('NOEUD','VECT_NORM'), - PRESENT_PRESENT('GROUP_NO','VECT_NORM'),), - GROUP_MA =SIMP(statut='o',typ=grma,max='**'), - VECT_NORM =SIMP(statut='f',typ='R',max=3), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - ), - b_modele =BLOC(condition = "(ORIE_PEAU_2D != None) or (ORIE_PEAU_3D != None) or(ORIE_NORM_COQUE != None)", - MODELE =SIMP(statut='o',typ=modele ), - ), - PLAQ_TUBE =FACT(statut='f',min=1,max=1, - DEXT =SIMP(statut='o',typ='R' ), - EPAIS =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - COUTURE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - ), - TUBE_COUDE =FACT(statut='f',min=1,max=1, - ANGLE =SIMP(statut='o',typ='R' ), - R_CINTR =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - ), - MODI_MAILLE =FACT(statut='f',min=1,max=1, - regles=(AU_MOINS_UN('GROUP_MA_FOND','MAILLE_FOND','GROUP_NO_FOND','NOEUD_FOND'),), - OPTION =SIMP(statut='o',typ='TXM',into=("NOEUD_QUART",) ), - GROUP_MA_FOND =SIMP(statut='f',typ=grma,max=1), - MAILLE_FOND =SIMP(statut='f',typ=ma ,max=1), - GROUP_NO_FOND =SIMP(statut='f',typ=grno,max=1), - NOEUD_FOND =SIMP(statut='f',typ=no ,max=1), - ), - MODI_BASE =FACT(statut='f',min=1,max=1, - VECT_X =SIMP(statut='o',typ='R',min=2,max=3), - VECT_Y =SIMP(statut='f',typ='R',min=2,max=3), - ), - ECHELLE =SIMP(statut='f',typ='R',min=1,max=1), - TRANSLATION =SIMP(statut='f',typ='R',min=2,max=3), - ROTATION =FACT(statut='f',min=1,max='**', - POIN_1 =SIMP(statut='o',typ='R',min=2,max=3), - ANGL =SIMP(statut='o',typ='R',defaut= 0.E+0 ), - regles=(EXCLUS('DIR','POIN_2'),), - POIN_2 =SIMP(statut='f',typ='R',min=2,max=3), - DIR =SIMP(statut='f',typ='R',min=2,max=3), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle, - fr=" ",docu="U4.44.22-b",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), - GUIDE =SIMP(statut='o',typ=obstacle), - CRAYON =SIMP(statut='f',typ=obstacle), - R_MOBILE =SIMP(statut='f',typ='R'), - PERCEMENT =SIMP(statut='f',typ='R',defaut=1), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -def modi_repere_prod(RESULTAT,**args): - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == evol_ther : return evol_ther - if AsType(RESULTAT) == dyna_trans : return dyna_trans - if AsType(RESULTAT) == dyna_harmo : return dyna_harmo - if AsType(RESULTAT) == mode_meca : return mode_meca - if AsType(RESULTAT) == mode_flamb : return mode_flamb - if AsType(RESULTAT) == mult_elas : return mult_elas - if AsType(RESULTAT) == base_modale : return base_modale - raise AsException("type de concept resultat non prevu") - -MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,docu="U4.74.01-a",reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Impression des resultats dans un repere cylindrique", - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca, - evol_noli,mult_elas, - evol_ther,base_modale,mode_flamb) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_INST','LIST_FREQ','NOM_CAS'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - - INST =SIMP(statut='f',typ='R',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - LIST_FREQ =SIMP(statut='f',typ=listr8), - - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),), - - MODI_CHAM =FACT(statut='o',min=1,max='**', - TYPE_CHAM =SIMP(statut='o',typ='TXM', max=1, - into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),), - NOM_CHAM =SIMP(statut='o',typ='TXM',max=1 ), - b_vect_2d =BLOC(condition = "TYPE_CHAM=='VECT_2D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=2,max=2 ),), - b_vect_3d =BLOC(condition = "TYPE_CHAM=='VECT_3D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=3,max=3 ),), - b_tors_3d =BLOC(condition = "TYPE_CHAM=='TORS_3D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),), - b_tens_2d =BLOC(condition = "TYPE_CHAM=='TENS_2D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=4,max=4 ),), - b_tens_3d =BLOC(condition = "TYPE_CHAM=='TENS_3D'", - NOM_CMP =SIMP(statut='o',typ='TXM',min=6,max=6 ),), - ), - DEFI_REPERE =FACT(statut='o',min=1,max=1, - regles=(UN_PARMI('ANGL_NAUT','ORIGINE'),), - REPERE =SIMP(statut='f',typ='TXM',defaut="UTILISATEUR", - into=("UTILISATEUR","CYLINDRIQUE"),), - ANGL_NAUT =SIMP(statut='f',typ='R',min=1,max=3), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=3), - AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def norm_mode_prod(MODE,**args ): - if AsType(MODE) == mode_meca : return mode_meca - if AsType(MODE) == mode_meca_c : return mode_meca_c - if AsType(MODE) == mode_flamb : return mode_flamb - raise AsException("type de concept resultat non prevu") - -NORM_MODE=OPER(nom="NORM_MODE",op= 37,sd_prod=norm_mode_prod, - fr="Normalisation de modes propres", - docu="U4.52.11-f",reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),), - MODE =SIMP(statut='o',typ=(mode_meca,mode_flamb) ), - NORME =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...", - into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ), - NOEUD =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"), - b_noeud =BLOC(condition = "NOEUD != None", - NOM_CMP =SIMP(statut='o',typ='TXM' ), - ), - AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',max='**'), - MASS_INER =SIMP(statut='f',typ=tabl_mass_iner ), - MODE_SIGNE =FACT(statut='f',max=1,fr="Imposer un signe sur une des composantes des modes", - NOEUD =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"), - NOM_CMP =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ), - SIGNE =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"), - fr="Choix du signe" ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl,docu="U4.61.11-g",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice", - regles=(UN_PARMI('MATR_RIGI','MODELE'),), - MATR_RIGI =SIMP(statut='f',typ=(matr_elem_depl_r ,matr_elem_depl_c, - matr_elem_temp_r,matr_elem_pres_c),max=100 ), - MODELE =SIMP(statut='f',typ=modele ), - b_modele =BLOC(condition = "MODELE != None", - CHARGE =SIMP(statut='f',max='**',typ=(char_meca,char_ther,char_acou, ),), - ), - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition="METHODE=='MULT_FRONT'",fr="paramètres associés à la méthode multifrontale", - RENUM =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ), - ), - b_ldlt =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ), - ), - b_gcpc =BLOC(condition="METHODE=='GCPC'",fr="paramètres associés à la méthode gradient conjugué", - RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene, - fr="Etablissement de la numérotation des ddl d un modèle établi en coordonnées généralisées", - docu="U4.65.03-e",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=UN_PARMI('MODELE_GENE','BASE'), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - b_modele_gene =BLOC(condition = "MODELE_GENE != None", - STOCKAGE =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ), - ), - BASE =SIMP(statut='f',typ=(mode_meca,base_modale,mode_gene ) ), - b_base =BLOC(condition = "BASE != None", - STOCKAGE =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("DIAG","PLEIN") ), - NB_VECT =SIMP(statut='f',typ='I',defaut= 9999 ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=tabl_post_alea, - fr="Traitements statistiques de résultats de type interspectre et impression sur fichiers", - docu="U4.84.04-e",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),), - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**' ), - NOEUD_I =SIMP(statut='f',typ=no,max='**'), - OPTION =SIMP(statut='f',typ='TXM',into=("DIAG",) ), - b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None", - NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**' ), - ), - b_noeud_i =BLOC(condition = "NOEUD_I != None", - NOEUD_J =SIMP(statut='o',typ=no,max='**'), - NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**' ), - NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**' ), - ), - DEPASSEMENT =FACT(statut='f',min=1,max='**', - fr="Loi de dépassement d un seuil pendant une durée donnée", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - DUREE =SIMP(statut='f',typ='R',defaut= 1. ), - ), - RAYLEIGH =FACT(statut='f',min=1,max='**', - fr="Densité de probabilité de pic positif, loi adaptée à des signaux à bande étroite", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - ), - GAUSS =FACT(statut='f',min=1,max='**', - fr="Densité de probabilité de pic positif, loi normale adaptée à des signaux large bande", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - ), - VANMARCKE =FACT(statut='f',min=1,max='**', - fr="Probabilité de non dépassement de seuil pendant une durée donnée (analyse sismique)", - regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),), - VALE_MIN =SIMP(statut='f',typ='R' ), - VALE_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - DUREE =SIMP(statut='f',typ='R',defaut= 10. ), - ), - MOMENT =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=tabl_post_dyna, - fr="Post-traitements en coordonnées généralisées issus de DYNA_TRAN_MODAL", - docu="U4.84.02-e",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),), - RESU_GENE =SIMP(statut='o',typ=tran_gene ), - CHOC =FACT(statut='f',min=1,max='**', - fr="Analyse des non linéarités de choc", - INST_INIT =SIMP(statut='f',typ='R',defaut= -1. ), - INST_FIN =SIMP(statut='f',typ='R',defaut= 999. ), - NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), - SEUIL_FORCE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DUREE_REPOS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - OPTION =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ), - NB_CLASSE =SIMP(statut='f',typ='I',defaut= 10 ), - ), - RELA_EFFO_DEPL =FACT(statut='f',min=1,max=1, - fr="Analyse des relationsnon linéaires effort-déplacement", - NOEUD =SIMP(statut='o',typ=no), - NOM_CMP =SIMP(statut='o',typ='TXM' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -def post_elem_prod( MASS_INER,ENER_POT,ENER_CIN,TRAV_EXT,WEIBULL, - CARA_GEOM,CARA_POUTRE,RICE_TRACEY,CHAR_LIMITE, - INDIC_ENER,INDIC_SEUIL,ENER_ELAS,ENER_TOTALE, - AIRE_INTERNE,**args ): - if MASS_INER != None : return tabl_mass_iner - if ENER_POT != None : return tabl_ener_pot - if ENER_CIN != None : return tabl_ener_cin - if TRAV_EXT != None : return tabl_trav_ext - if WEIBULL != None : return tabl_weibull - if CARA_GEOM != None : return tabl_cara_geom - if CARA_POUTRE != None : return tabl_cara_geom - if RICE_TRACEY != None : return tabl_rice_tracey - if CHAR_LIMITE != None : return tabl_char_limite - if INDIC_ENER != None : return tabl_indic_ener - if INDIC_SEUIL != None : return tabl_indic_seuil - if ENER_ELAS != None : return tabl_ener_elas - if ENER_TOTALE != None : return tabl_ener_totale - if AIRE_INTERNE != None : return tabl_aire_int - raise AsException("type de concept resultat non prevu") - -POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,docu="U4.81.22-e",reentrant='f', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle", - - regles=(UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN','TRAV_EXT', - 'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE', - 'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL', - 'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE'), - ), - - MASS_INER = FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma,max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,max='**'), - ORIG_INER = SIMP(statut='f',typ='R',min=3,max=3 ), - ), - b_mass_iner = BLOC(condition = "( MASS_INER != None )", - fr="calcul de la masse, les inerties et le centre de gravité", - regles=(EXCLUS('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), - MODELE = SIMP(statut='o',typ=modele), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - GEOMETRIE = SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")), - CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ), - RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_noli,mult_elas, - fourier_elas,dyna_trans) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',max=1), - LIST_ORDRE = SIMP(statut='f',typ=listis), - INST = SIMP(statut='f',typ='R',max=1), - LIST_INST = SIMP(statut='f',typ=listr8), - FREQ = SIMP(statut='f',typ='R',max=1), - LIST_FREQ = SIMP(statut='f',typ=listr8), - NUME_MODE = SIMP(statut='f',typ='I',max=1), - NOEUD_CMP = SIMP(statut='f',typ='TXM',min=2,max=2), - NOM_CAS = SIMP(statut='f',typ='TXM',max=1), - ), - - ENER_POT = FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma,max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,max='**'), - ), - b_ener_pot = BLOC(condition = "( ENER_POT != None )", - fr="calcul de l'énergie potentielle de déformation", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), - MODELE = SIMP(statut='o',typ=modele), - CHAM_MATER = SIMP(statut='o',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - ANGLE = SIMP(statut='f',typ='I',defaut=0), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ), - RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis), - INST = SIMP(statut='f',typ='R',max='**'), - LIST_INST = SIMP(statut='f',typ=listr8), - FREQ = SIMP(statut='f',typ='R',max='**'), - LIST_FREQ = SIMP(statut='f',typ=listr8), - NUME_MODE = SIMP(statut='f',typ='I',max='**'), - NOEUD_CMP = SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS = SIMP(statut='f',typ='TXM',max='**'), - ), - - ENER_CIN = FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - OPTION = SIMP(statut='f',typ='TXM', - into=("MASS_MECA","MASS_MECA_DIAG"), - defaut="MASS_MECA" ), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma,max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,max='**'), - ), - b_ener_cin = BLOC(condition = "( ENER_CIN != None )", - fr="calcul de l'énergie cinétique", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), - MODELE = SIMP(statut='o',typ=modele), - CHAM_MATER = SIMP(statut='o',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - ANGLE = SIMP(statut='f',typ='I',defaut=0), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ), - RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis), - INST = SIMP(statut='f',typ='R',max='**'), - LIST_INST = SIMP(statut='f',typ=listr8), - FREQ = SIMP(statut='f',typ='R',max='**'), - LIST_FREQ = SIMP(statut='f',typ=listr8), - NUME_MODE = SIMP(statut='f',typ='I',max='**'), - NOEUD_CMP = SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS = SIMP(statut='f',typ='TXM',max='**'), - ), - - ENER_ELAS = FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma,max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,max='**'), - ), - b_ener_elas = BLOC(condition = "( ENER_ELAS != None )", - fr="calcul de l'énergie de déformation élastique", - MODELE = SIMP(statut='o',typ=modele), - CHAM_MATER = SIMP(statut='o',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis), - INST = SIMP(statut='f',typ='R',max='**'), - LIST_INST = SIMP(statut='f',typ=listr8), - ), - - ENER_TOTALE = FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma,max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,max='**'), - ), - b_ener_totale = BLOC(condition = "( ENER_TOTALE != None )", - fr="calcul de l'énergie de déformation totale", - MODELE = SIMP(statut='o',typ=modele), - CHAM_MATER = SIMP(statut='o',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis), - INST = SIMP(statut='f',typ='R',max='**'), - LIST_INST = SIMP(statut='f',typ=listr8), - ), - - WEIBULL = FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma,max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,max='**'), - OPTION = SIMP(statut='f',typ='TXM', - into=("SIGM_ELGA","SIGM_ELMOY"), - defaut="SIGM_ELGA"), - CORR_PLAST = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - COEF_MULT = SIMP(statut='f',typ='R',defaut=1.), - ), - b_weibull = BLOC(condition = "( WEIBULL != None )", - fr="calcul du champ élémentaire de la puissance m-ième de la contrainte de Weibull", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - MODELE = SIMP(statut='o',typ=modele), - CHAM_MATER = SIMP(statut='o',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ), - RESULTAT = SIMP(statut='f',typ=(evol_noli) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis), - INST = SIMP(statut='f',typ='R',max='**'), - LIST_INST = SIMP(statut='f',typ=listr8), - ), - - RICE_TRACEY = FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma,max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,max='**'), - OPTION = SIMP(statut='f',typ='TXM', - into=("SIGM_ELGA","SIGM_ELMOY"), - defaut="SIGM_ELGA"), - LOCAL = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - ), - b_rice_tracey = BLOC(condition = "( RICE_TRACEY != None )", - fr="calcul du taux de croissance d'une cavité sphérique par rapport à un domaine", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - MODELE = SIMP(statut='o',typ=modele), - CHAM_MATER = SIMP(statut='o',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ), - RESULTAT = SIMP(statut='f',typ=(evol_noli) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis), - INST = SIMP(statut='f',typ='R',max='**'), - LIST_INST = SIMP(statut='f',typ=listr8), - ), - - INDIC_ENER = FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma,max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,max='**'), - ), - b_indic_ener = BLOC(condition = "( INDIC_ENER != None )", - fr="calcul un indicateur global de perte de proportionnalité du chargement", - MODELE = SIMP(statut='o',typ=modele), - CHAM_MATER = SIMP(statut='o',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis), - INST = SIMP(statut='f',typ='R',max='**'), - LIST_INST = SIMP(statut='f',typ=listr8), - ), - - INDIC_SEUIL = FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma,max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,max='**'), - ), - b_indic_seuil = BLOC(condition = "( INDIC_SEUIL != None )", - fr="calcul un indicateur global de perte de proportionnalité du chargement", - MODELE = SIMP(statut='o',typ=modele), - CHAM_MATER = SIMP(statut='o',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis), - INST = SIMP(statut='f',typ='R',max='**'), - LIST_INST = SIMP(statut='f',typ=listr8), - ), - - CHAR_LIMITE = FACT(statut='f',min=0,max=1, - CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON") - ), - b_char_limite = BLOC(condition = "( CHAR_LIMITE != None )", - fr="post-traitement du calcul de la charge limite", - MODELE = SIMP(statut='o',typ=modele), - CHAM_MATER = SIMP(statut='o',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis), - INST = SIMP(statut='f',typ='R',max='**'), - LIST_INST = SIMP(statut='f',typ=listr8), - ), - - CARA_GEOM = FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma,max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,max='**'), - SYME_X = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - SYME_Y = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ORIG_INER = SIMP(statut='f',typ='R',min=2,max=2), - ), - b_cara_geom = BLOC(condition = "( CARA_GEOM != None )", - fr="calcul des caractéristiques géométriques d'un section de poutre", - MODELE = SIMP(statut='o',typ=modele), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - ), - - CARA_POUTRE = FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA'), - ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA = SIMP(statut='f',typ=grma,max='**'), - GROUP_MA_INTE = SIMP(statut='f',typ=grma,max='**'), - CARA_GEOM = SIMP(statut='f',typ=tabl_cara_geom), - LAPL_PHI = SIMP(statut='f',typ=evol_ther), - LAPL_PHI_Y = SIMP(statut='f',typ=evol_ther), - LAPL_PHI_Z = SIMP(statut='f',typ=evol_ther), - LIAISON = SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")), - LONGUEUR = SIMP(statut='f',typ='R'), - MATERIAU = SIMP(statut='f',typ=mater), - OPTION = SIMP(statut='f',typ='TXM', - into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ), - ), - b_cara_poutre = BLOC(condition = "( CARA_POUTRE != None )", - fr="calcul des caractéristiques mécaniques d'un section de poutre", - MODELE = SIMP(statut='o',typ=modele), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - ), - - AIRE_INTERNE = FACT(statut='f',min=1,max='**', - GROUP_MA_BORD = SIMP(statut='o',typ=grma,max='**'), - ), - b_aire_interne = BLOC(condition = "( AIRE_INTERNE != None )", - fr="calcul de l'aire d'un trou dans un maillage 2D", - MODELE = SIMP(statut='o',typ=modele), - ), - - TRAV_EXT = FACT(statut='f',min=1,max=1), - b_trav_ext = BLOC(condition = "( TRAV_EXT != None )", - fr="calcul du travail des efforts extérieurs", - RESULTAT = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - - ) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,docu="U4.84.03-d",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcul du dommage subi par une structure soumise à unesollicitation de type aléatoire", - regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'), - PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'), - UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ), - MOMENT_SPEC_0 =SIMP(statut='f',typ='R'), - MOMENT_SPEC_2 =SIMP(statut='f',typ='R'), - MOMENT_SPEC_4 =SIMP(statut='f',typ='R'), - TABL_POST_ALEA =SIMP(statut='f',typ=tabl_post_alea), - COMPTAGE =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")), - DUREE =SIMP(statut='f',typ='R',defaut= 1.), - CORR_KE =SIMP(statut='f',typ='TXM',into=("RCCM",)), - DOMMAGE =SIMP(statut='o',typ='TXM',into=("WOHLER",)), - MATER =SIMP(statut='o',typ=mater), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,docu="U4.83.01-d",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcul du dommage subi par une structure soumise à une histoire de chargement", - - CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")), - - b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'", - regles=(PRESENT_PRESENT('CORR_KE','MATER'), - PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'), - PRESENT_PRESENT('DOMMAGE','MATER'),), - HISTOIRE = FACT(statut='o',min=1,max=1, - regles=(UN_PARMI('SIGM','EPSI'),), - SIGM = SIMP(statut='f',typ=fonction), - EPSI = SIMP(statut='f',typ=fonction),), - COMPTAGE = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")), - DELTA_OSCI = SIMP(statut='f',typ='R',defaut= 0.0E+0), - COEF_MULT = FACT(statut='f',min=1,max=1, - KT = SIMP(statut='o',typ='R'),), - CORR_KE = SIMP(statut='f',typ='TXM',into=("RCCM",)), - DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN", - "TAHERI_MANSON","TAHERI_MIXTE")), - MATER = SIMP(statut='f',typ=mater), - CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")), - TAHERI_NAPPE = SIMP(statut='f',typ=fonction), - TAHERI_FONC = SIMP(statut='f',typ=fonction), - CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), - ), - - b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'", - HISTOIRE = FACT(statut='o',min=1,max=1, - SIGM_XX = SIMP(statut='o',typ=fonction), - SIGM_YY = SIMP(statut='o',typ=fonction), - SIGM_ZZ = SIMP(statut='o',typ=fonction), - SIGM_XY = SIMP(statut='o',typ=fonction), - SIGM_XZ = SIMP(statut='f',typ=fonction), - SIGM_YZ = SIMP(statut='f',typ=fonction),), - CRITERE = SIMP(statut='o',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")), - DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER",)), - MATER = SIMP(statut='o',typ=mater), - COEF_CORR = SIMP(statut='f',typ='R'), - ), - - b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'", - HISTOIRE = FACT(statut='o',min=1,max=1, - SIGM_XX = SIMP(statut='o',typ=fonction), - SIGM_YY = SIMP(statut='o',typ=fonction), - SIGM_ZZ = SIMP(statut='o',typ=fonction), - SIGM_XY = SIMP(statut='o',typ=fonction), - SIGM_XZ = SIMP(statut='f',typ=fonction), - SIGM_YZ = SIMP(statut='f',typ=fonction), - EPSP = SIMP(statut='o',typ=fonction), - TEMP = SIMP(statut='o',typ=fonction),), - DOMMAGE = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),defaut="LEMAITRE"), - MATER = SIMP(statut='o',typ=mater), - CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_GOUJ2E=OPER(nom="POST_GOUJ2E",op=187,sd_prod=tabl_post_gouj2e,reentrant='n', - fr=" ",docu="U4.gj.30-b", - UIinfo={"groupes":("Outils métier",)}, - TABLE =SIMP(statut='o',typ=tabl_post_rele), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k, - fr="Calcul des FIC par extrapolation du champ de déplacements sur les lèvres de la fissure", - docu="U4.82.05-b",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - - regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'), - PRESENT_PRESENT('TABL_DEPL_SUP','TABL_DEPL_INF'), - 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), - PRECISION = SIMP(statut='f',typ='R',defaut=0.001), - NOEUD = SIMP(statut='f',typ=no,max='**'), - GROUP_NO = SIMP(statut='f',typ=grno,max='**'), - SANS_NOEUD = SIMP(statut='f',typ=no,max='**'), - SANS_GROUP_NO = SIMP(statut='f',typ=grno,max='**') - ), - MATER =SIMP(statut='o',typ=mater, - fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli), - fr="Table déplacement des noeuds de la lèvre supérieure et inférieure"), - TABL_DEPL_SUP =SIMP(statut='f',typ=tabl_post_rele, - fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"), - TABL_DEPL_INF =SIMP(statut='f',typ=tabl_post_rele, - fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"), - ABSC_CURV_MAXI=SIMP(statut='f',typ='R', - fr="distance maximum à partir du fond de fissure à utiliser pour le calcul"), - PREC_VIS_A_VIS= SIMP(statut='f',typ='R',defaut=0.1), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - VECT_K1 =SIMP(statut='o',typ='R',max='**', - fr="Vecteur normal au plan de fissure, orienté de la lèvre inférieure vers la lèvre supérieure"), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -# -POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=tabl_post_beta, - fr="Calcul des FIC par la méthode K_BETA", - docu="U4.82.07-a",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - MAILLAGE = SIMP(statut='o',typ=maillage), - MATER_REV = SIMP(statut='o',typ=mater), - EPAIS_REV = SIMP(statut='o',typ='R'), - FISSURE = FACT(statut='o',min=1,max=1, - DECALAGE = SIMP(statut='f',typ='R',defaut=-2.e-04), - PROFONDEUR = SIMP(statut='o',typ='R'), - LONGUEUR = SIMP(statut='o',typ='R'), - ORIENTATION = SIMP(statut='o',typ='TXM', - into=("CIRC","LONGI"),), - ), - K1D = FACT(statut='o',min=1,max='**', - TABL_MECA_REV = SIMP(statut='o',typ=(tabl_post_rele)), - TABL_MECA_MDB = SIMP(statut='o',typ=(tabl_post_rele)), - TABL_THER = SIMP(statut='o',typ=(tabl_post_rele)), - INTITULE = SIMP(statut='o',typ='TXM' ), - ), - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE = SIMP(statut='f',typ='TXM',max='**'), -); -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTIC -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm, - fr="Vérification des critères de niveau 0 et certains critères de niveau A du RCC-M-B3200 (Edition 1991)", - docu="U4.83.11-d",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","VALE_INST") ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - OPTION =SIMP(statut='o',typ='TXM',max='**', - into=("PM_PB", - "SN", - "FATIGUE_SPMAX", - "FATIGUE_ZH210", - "FATIGUE_B3200", - "FATIGUE_B3600", - ) ), - b_pm_sn =BLOC(condition="(OPTION == 'PM_PB')or(OPTION == 'SN')or(OPTION == 'FATIGUE_SPMAX')or(OPTION == 'FATIGUE_ZH210')", - MATER =SIMP(statut='o',typ=mater ), - MAILLAGE =SIMP(statut='f',typ=maillage), - SEGMENT =FACT(statut='o',min=1,max='**',fr="Segment sur lequel s effectue le depouillement", - regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'), - EXCLUS('CHEMIN','GROUP_NO'), - EXCLUS('CHEMIN','NOEUD'),), - INTITULE =SIMP(statut='f',typ='TXM' ), - CHEMIN =SIMP(statut='f',typ=(courbe,surface),), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno), - b_acce_noeud =BLOC(condition="(NOEUD != None)or(GROUP_NO != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - TRANSITOIRE =FACT(statut='o',min=1,max='**',fr="transitoire à dépouiller", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli) ), - RESU_SIGM_THER =SIMP(statut='f',typ=(evol_elas,evol_noli),fr="résultat sous chargement thermique seul" ), - NB_OCCUR =SIMP(statut='f',typ='I',defaut= 1,fr="nombre d occurences réelles de ce transitoire" ), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("SIEF_ELNO_ELGA","SIGM_ELNO_DEPL") ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8 ), - b_inst =BLOC(condition = "(INST != None) or (LIST_INST != None)" , - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), - ), - ), - ), - - b_3200 =BLOC(condition="(OPTION == 'FATIGUE_B3200')", - MATER =SIMP(statut='o',typ=mater ), - CHAR_MECA =FACT(statut='o',min=1,max='**',fr="Chargements mécaniques", - NUME_CHAR =SIMP(statut='o',typ='I',max=1,fr="numéro du chargement" ), - NOM_CHAR =SIMP(statut='f',typ='TXM',max=1,fr="nom du chargement" ), - TYPE_CHAR =SIMP(statut='f',typ='TXM',max=1,fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",), - FX =SIMP(statut='f',typ='R',max=1,fr="effort suivant x", ), - FY =SIMP(statut='f',typ='R',max=1,fr="effort suivant y", ), - FZ =SIMP(statut='f',typ='R',max=1,fr="effort suivant z", ), - MX =SIMP(statut='o',typ='R',max=1,fr="moment suivant x", ), - MY =SIMP(statut='o',typ='R',max=1,fr="moment suivant y", ), - MZ =SIMP(statut='o',typ='R',max=1,fr="moment suivant z", ), - ), - RESU_MECA_UNIT =FACT(statut='o',min=1,max=1,fr="resultats mécaniques unitaires", - TABL_FX =SIMP(statut='f',typ=table,max=1, - fr="table relevé des contraintes pour chargement unitaire FX"), - TABL_FY =SIMP(statut='f',typ=table,max=1, - fr="table relevé des contraintes pour chargement unitaire FY"), - TABL_FZ =SIMP(statut='f',typ=table,max=1, - fr="table relevé des contraintes pour chargement unitaire FZ"), - TABL_MX =SIMP(statut='o',typ=table,max=1, - fr="table relevé des contraintes pour chargement unitaire MX"), - TABL_MY =SIMP(statut='o',typ=table,max=1, - fr="table relevé des contraintes pour chargement unitaire MY"), - TABL_MZ =SIMP(statut='o',typ=table,max=1, - fr="table relevé des contraintes pour chargement unitaire MZ"), - TABL_PRES =SIMP(statut='o',typ=table,max=1, - fr="table relevé des contraintes pour chargement unitaire de pression"), - ), - RESU_THER =FACT(statut='f',min=1,max='**',fr="resultats thermiques", - NUME_RESU_THER =SIMP(statut='o',typ='I',max=1,fr="numéro de la table de résultat thermique" ), - TABL_RESU_THER =SIMP(statut='o',typ=table,max=1, - fr="table relevé des contraintes pour chargement thermique"), - ), - SITUATION =FACT(statut='o',min=1,max='**',fr="Situation",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NB_CYCL_SEISME =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ), - NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ), - NOM_SITU =SIMP(statut='f',typ='TXM',fr="nom de la situation" ), - COMBINABLE =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ), - NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéro du groupe de la situation" ), - NUME_PASSAGE =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ), - NUME_RESU_THER =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ), - CHAR_ETAT_A =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), - CHAR_ETAT_B =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ), - PRES_A =SIMP(statut='o',typ='R',fr="pression etat A"), - PRES_B =SIMP(statut='o',typ='R',fr="pression etat B"), - TEMP_REF_A =SIMP(statut='f',typ='R',fr="temperature référence etat A"), - TEMP_REF_B =SIMP(statut='f',typ='R',fr="temperature référence etat B"), - ), - ), - b_3600 =BLOC(condition="(OPTION == 'FATIGUE_B3600')", - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - MODELE =SIMP(statut='o',typ=modele), - CARA_ELEM =SIMP(statut='o',typ=cara_elem), - ZONE_ANALYSE =FACT(statut='o',min=1,max=1,fr="liste des mailles ou des noeuds analysés", - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - RESU_MECA =FACT(statut='o',min=1,max='**',fr="Chargements mécaniques", - regles=(UN_PARMI('CHAM_GD','RESULTAT'),), - NUME_CHAR =SIMP(statut='o',typ='I',max=1,fr="numéro du chargement" ), - NOM_CHAR =SIMP(statut='f',typ='TXM',max=1,fr="nom du chargement" ), - TYPE_CHAR =SIMP(statut='f',typ='TXM',max=1,fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",), - CHAM_GD =SIMP(statut='f',typ=cham_gd), - RESULTAT =SIMP(statut='f',typ=resultat), - b_extrac =BLOC(condition="RESULTAT != None", - fr="extraction d un champ de grandeur", - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','NOEUD_CMP'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',max=1,into=("EFGE_ELNO_DEPL","SIEF_ELNO_ELGA"),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max=1), - INST =SIMP(statut='f',typ='R',max=1), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - b_acce_reel =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), ), - ), - ), - ), - INDI_SIGM =FACT(statut='o',min=1,max='**',fr="indices de contraintes", - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - C1 =SIMP(statut='f',typ='R',max=1,defaut=1.0,fr="indice de contraintes C1 du RCCM"), - K1 =SIMP(statut='f',typ='R',max=1,defaut=1.0,fr="indice de contraintes K1 du RCCM"), - C2 =SIMP(statut='f',typ='R',max=1,defaut=1.0,fr="indice de contraintes C2 du RCCM"), - K2 =SIMP(statut='f',typ='R',max=1,defaut=1.0,fr="indice de contraintes K2 du RCCM"), - C3 =SIMP(statut='f',typ='R',max=1,defaut=0.5,fr="indice de contraintes C3 du RCCM"), - K3 =SIMP(statut='f',typ='R',max=1,defaut=1.0,fr="indice de contraintes K3 du RCCM"), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",),), - GROUP_MA =SIMP(statut='f',typ=grma,max='**', - fr="groupe(s) de mailles ou sont affectés les indices de contraintes"), - MAILLE =SIMP(statut='f',typ=ma,max='**', - fr="liste des mailles ou sont affectés les indices de contraintes"), - b_grma =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)", - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - ), - TYPE_ELEM_STANDARD =SIMP(statut='f',typ='TXM',into=("DRO","COU","TRN","TEE"), - fr="type d'élément de tuyauterie ou sont affectés les indices de contraintes"), - ), - RESU_THER =FACT(statut='f',min=1,max='**',fr="resultats thermiques", - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - NUME_RESU_THER =SIMP(statut='o',typ='I',max=1,fr="numéro de la table de résultat thermique" ), - TABL_RESU_THER =SIMP(statut='o',typ=table,max=1, - fr="table relevé des températures sur la section"), - TABL_MOYE_THER =SIMP(statut='o',typ=table,max=1, - fr="table relevé des moyennes sur la section"), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - b_grma =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)", - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - ), - ), - SITUATION =FACT(statut='o',min=1,max='**',fr="Situation",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NB_CYCL_SEISME =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ), - NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ), - NOM_SITU =SIMP(statut='f',typ='TXM',fr="nom de la situation" ), - COMBINABLE =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ), - NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéro du groupe de la situation" ), - NUME_PASSAGE =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ), - NUME_RESU_THER =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ), - CHAR_ETAT_A =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ), - CHAR_ETAT_B =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ), - PRES_A =SIMP(statut='o',typ='R',fr="pression etat A"), - PRES_B =SIMP(statut='o',typ='R',fr="pression etat B"), - TEMP_REF_A =SIMP(statut='f',typ='R',fr="temperature référence etat A"), - TEMP_REF_B =SIMP(statut='f',typ='R',fr="temperature référence etat B"), - ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# ====================================================================== -# CONFIGURATION MANAGEMENT OF EDF VERSION -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,docu="U4.81.21-e",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - ACTION =FACT(statut='o',min=1,max='**', - regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'), - EXCLUS('CHEMIN','GROUP_NO'), - EXCLUS('CHEMIN','NOEUD'), - PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'), - UN_PARMI('RESULTAT','CHAM_GD'), - UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'), - PRESENT_PRESENT('TRAC_DIR','DIRECTION'), - PRESENT_PRESENT('TRAC_DIRECTION','DIRECTION'), - ENSEMBLE('MOMENT','POINT'), - PRESENT_PRESENT('MOMENT','RESULTANTE'), - PRESENT_ABSENT('TOUT_CMP','TRAC_DIRECTION','TRAC_NORMALE'), - PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'), - PRESENT_PRESENT('ORIGINE','AXE_Z'),), - INTITULE =SIMP(statut='o',typ='TXM'), - CHEMIN =SIMP(statut='f',typ=(courbe,surface) ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")), - CHAM_GD =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r,cham_no_var2_r, - cham_elem_sief_r,cham_elem_epsi_r,cham_elem_flux_r,cham_elem_crit_r, - cham_elem_ener_r,cham_elem_dbel_r,cham_elem_pres_r,cham_elem_erreur, - cham_elem_vari_r,cham_no_depl_c,cham_no_temp_c,cham_no_pres_c, - cham_elem_sief_c,cham_elem_epsi_c)), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_ther,evol_noli,dyna_trans, - mode_meca,mode_flamb,mode_acou,base_modale,mode_stat, - mult_elas,fourier_elas,dyna_harmo,acou_harmo)), - b_sensibilite =BLOC(condition="RESULTAT != None", - fr="Définition des paramètres de sensibilité", - ang="Definition of sensitivity parameters", - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"),), - - b_extrac =BLOC(condition = "RESULTAT != None",fr="extraction des résultats", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE', - 'INST','LIST_INST','FREQ','LIST_FREQ','NOEUD_CMP','NOM_CAS'), ), - NOM_CHAM =SIMP(statut='o',typ='TXM' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - LIST_MODE =SIMP(statut='f',typ=listis), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - ), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - INVARIANT =SIMP(statut='f',typ='TXM',into=("OUI",)), - ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ), - RESULTANTE =SIMP(statut='f',typ='TXM',max='**'), - MOMENT =SIMP(statut='f',typ='TXM',max='**'), - POINT =SIMP(statut='f',typ='R',max='**'), - - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL", - into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),), - ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), - ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), - AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), - - TRAC_NOR =SIMP(statut='f',typ='TXM',into=("OUI",)), - TRAC_DIR =SIMP(statut='f',typ='TXM',into=("OUI",)), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - TRAC_DIRECTION =SIMP(statut='f',typ='TXM',into=("OUI",)), - TRAC_NORMALE =SIMP(statut='f',typ='TXM',into=("OUI",)), - - VECT_Y =SIMP(statut='f',typ='R',max='**'), - MOYE_NOEUD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - OPERATION =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE"),max=2), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli, - fr=" ",docu="U4.PS.10-a",reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - MATER =SIMP(statut='o',typ=(mater) ), - DEF_EQUI =FACT(statut='f',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',max='**',defaut="UTO_2_3", - into=("UTO_2_3",) ), - EPAIS =SIMP(statut='o',typ='R'), - LONG_FISS =SIMP(statut='o',typ='R'), - LONG_LIGA_INT =SIMP(statut='o',typ='R'), - DEXT =SIMP(statut='o',typ='R'), - TEMP_ANALYSE =SIMP(statut='f',typ='R'), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,docu="U4.84.05-d",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',min=1,max=1, - TABL_USURE =SIMP(statut='f',typ=tabl_post_usur), - INST_INIT =SIMP(statut='f',typ='R'), - ), - RESU_GENE =SIMP(statut='f',typ=tran_gene), - NOEUD =SIMP(statut='f',typ=no,max=1), - INST_INIT =SIMP(statut='f',typ='R',defaut=-1.0E+0), - INST_FIN =SIMP(statut='f',typ='R'), - NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), - PUIS_USURE =SIMP(statut='f',typ='R'), - LOI_USURE =SIMP(statut='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',min=1,max=1, - COEF_USURE =SIMP(statut='o',typ='R'), - ), - OBSTACLE =FACT(statut='f',min=1,max=1, - COEF_USURE =SIMP(statut='o',typ='R'), - ), - SECTEUR =FACT(statut='f',min=1,max='**', - CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", - "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", - "GRAPPE_1_ENCO","GRAPPE_2_ENCO")), - COEF_USUR_MOBILE=SIMP(statut='f',typ='R'), - COEF_USUR_OBST =SIMP(statut='f',typ='R'), - ANGL_INIT =SIMP(statut='f',typ='R'), - ANGL_FIN =SIMP(statut='f',typ='R'), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), - ), - b_kwu_epri =BLOC(condition = "LOI_USURE == 'KWU_EPRI'", - regles=(UN_PARMI('MOBILE','MATER_USURE'), - EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f',min=1,max=1, - COEF_FNOR =SIMP(statut='f',typ='R'), - COEF_VTAN =SIMP(statut='f',typ='R'), - COEF_USURE =SIMP(statut='f',typ='R'), - COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), - COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), - ), - OBSTACLE =FACT(statut='f',min=1,max=1, - COEF_FNOR =SIMP(statut='f',typ='R' ), - COEF_VTAN =SIMP(statut='f',typ='R' ), - COEF_USURE =SIMP(statut='o',typ='R'), - COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), - COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), - FNOR_MAXI =SIMP(statut='f',typ='R' ), - VTAN_MAXI =SIMP(statut='f',typ='R' ), - ), - b_edf_mz =BLOC(condition = "LOI_USURE == 'EDF_MZ'", - regles=(UN_PARMI('MOBILE','MATER_USURE'), - EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f',min=1,max=1, - COEF_USURE =SIMP(statut='f',typ='R',defaut=1.0E-13), - COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), - COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), - COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), - ), - OBSTACLE =FACT(statut='f',min=1,max=1, - COEF_USURE =SIMP(statut='o',typ='R',defaut=1.0E-13), - COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), - COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), - COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), - ), - 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',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - COEF_INST =SIMP(statut='f',typ='R',defaut=1.0E+0), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 09/10/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,docu="U4.83.21-b",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Donne l'état adapté ou accommodé d'une structure sous chargement cyclique élastique affine ou non", - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - EXCIT =FACT(statut='o',min=1,max='**', - CHARGE =SIMP(statut='o',typ=char_meca), - FONC_MULT =SIMP(statut='f',typ=fonction), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",into=("FIXE_CSTE",)), - ), - EVOL_ELAS =SIMP(statut='o',typ=evol_elas), - b_evol_elas =BLOC(condition="EVOL_ELAS != None", - regles=(UN_PARMI('NUME_ORDRE','LIST_INST','INST'),), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8), - INST =SIMP(statut='f',typ='R',max='**'), - ), - TEMP_ZAC =SIMP(statut='f',typ='R',defaut=0.0E+0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - b_evol_noli =BLOC(condition="EVOL_NOLI != None", - INST_MAX =SIMP(statut='o',typ='R'), - ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POURSUITE=MACRO(nom="POURSUITE",op=0,repetable='n',fr="Poursuite d une étude", - docu="U4.11.03-g",sd_prod = ops.POURSUITE, - UIinfo={"groupes":("Gestion du travail",)}, - op_init = ops.POURSUITE_context,fichier_ini = 1, - PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', - into=("OUI","NON"),defaut="OUI"), - BASE =FACT(fr="définition des parmètres associés aux bases JEVEUX", - statut='f',min=1,max=3, - FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM'), - TITRE =SIMP(statut='f',typ='TXM'), - CAS =SIMP(statut='f',typ='TXM'), - NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'), - LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'), - LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'), - ), - IMPRESSION =FACT(statut='f',min=1,max=3, - FICHIER =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='o',typ='I'), - ), - CATALOGUE =FACT(statut='f',min=1,max=10, - FICHIER =SIMP(statut='o',typ='TXM'), - TITRE =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - ), - DEBUG =FACT(fr="option de déboggage reservée aux développeurs", - statut='f',min=1,max=1, - JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - JEVEUX =SIMP(fr="force les déchargement sur disque", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA", - statut='f',typ='TXM',into=('TES',)), - ), - MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1, - GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'), - TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1), - TAILLE =SIMP(statut='f',typ='I'), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.), - PARTITION =SIMP(statut='f',typ='R' ), - ), - CODE =FACT("définition d un nom pour l'esemble d'une étude", - statut='f',min=1,max=1, - NOM =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='f',typ='I',defaut=15), - ), -) ; -#& MODIF COMMANDE DATE 21/12/2000 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PRE_CHAR_IDEAS=PROC(nom="PRE_CHAR_IDEAS",op=100,docu="U7.01.02-e", - fr="Conversion de conditions aux limites et chargements IDEAS en commandes Aster", - UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19), - UNITE_ASTER =SIMP(statut='f',typ='I',defaut=21), - MODELE =SIMP(statut='o',typ=modele), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PRE_GIBI=PROC(nom="PRE_GIBI",op=49,docu="U7.01.11-g", - 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 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.pre_gmsh_ops import pre_gmsh_ops - -PRE_GMSH=MACRO(nom="PRE_GMSH",op=pre_gmsh_ops,docu="U7.01.01-g", - UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d un fichier universel GMSH au format Aster", - UNITE_GMSH =SIMP(statut='f',typ='I',defaut=19), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), - MODI_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), -) ; -#& MODIF COMMANDE DATE 22/04/2003 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. -# ====================================================================== - -PRE_GMSH_LECT=PROC(nom="PRE_GMSH_LECT",op=47,docu="U7.01.01-g", - 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 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,docu="U7.01.01-g", - UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d un fichier universel IDEAS-SUPERTAB au format Aster", - UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PROCEDURE=PROC(nom="PROCEDURE",op=-3, docu="U4.13.03-f", - UIinfo={"groupes":("Gestion du travail",)}, - fr="Nommer le fichier de commandes secondaires", - NOM =SIMP(statut='f',typ='TXM',defaut=" "), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def prod_matr_cham_prod(MATR_ASSE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r - if AsType(MATR_ASSE) == matr_asse_depl_c : return cham_no_depl_c - if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r - if AsType(MATR_ASSE) == matr_asse_pres_c : return cham_no_pres_c - raise AsException("type de concept resultat non prevu") - -PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=prod_matr_cham_prod, - fr="Effectuer le produit d une matrice par un vecteur", - docu="U4.72.06-c",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 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ): - if AsType(RESULTAT) == evol_ther : return evol_ther - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == evol_char : return evol_char - if AsType(CHAM_NO_REFE) == cham_no_depl_r : return cham_no_depl_r - if AsType(CHAM_NO_REFE) == cham_no_depl_c : return cham_no_depl_c - if AsType(CHAM_NO_REFE) == cham_no_pres_c : return cham_no_pres_c - if AsType(CHAM_NO_REFE) == cham_no_temp_r : return cham_no_temp_r - if AsType(CHAM_NO_REFE) == cham_no_epsi_r : return cham_no_epsi_r - if AsType(CHAM_NO_REFE) == cham_no_sief_r : return cham_no_sief_r - if AsType(CHAM_NO_REFE) == cham_no_flux_r : return cham_no_flux_r - raise AsException("type de concept resultat non prevu") - -PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,docu="U4.72.05-d",reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Projection d'un champ aux noeuds sur les noeuds d'un autre maillage", -# - METHODE =SIMP(statut='f',typ='TXM',defaut="NUAGE_DEG_1", - into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ), - b_nuage =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')", - fr="Lissage d'un nuage de points", - CHAM_NO =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r, - cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)), - CHAM_NO_REFE =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r, - cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)), - ), - b_elem =BLOC(condition="METHODE=='ELEM'", - fr="Utilisation des fonctions de forme du maillage initial", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'), - EXCLUS('TOUT_CHAM','NOM_CHAM',), ), - RESULTAT =SIMP(statut='o',typ=(evol_ther,evol_elas,evol_noli,evol_char) ), - MODELE_1 =SIMP(statut='o',typ=modele), - MODELE_2 =SIMP(statut='o',typ=modele), - - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ), - LIST_ORDRE =SIMP(statut='f',typ=listis), - INST =SIMP(statut='f',typ='R',max='**' ), - LIST_INST =SIMP(statut='f',typ=listr8), - FREQ =SIMP(statut='f',typ='R',max='**' ), - LIST_FREQ =SIMP(statut='f',typ=listr8), - ), - - VIS_A_VIS =FACT(statut='f',min=1,max='**', - regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),), - TOUT_1 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no,max='**'), - TOUT_2 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_2 =SIMP(statut='f',typ=grma,max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma,max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,max='**'), - NOEUD_2 =SIMP(statut='f',typ=no,max='**'), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_gene_r - if AsType(MATR_ASSE_GENE) == matr_asse_gene_r : return matr_asse_gene_r - if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_gene_c - if AsType(MATR_ASSE_GENE) == matr_asse_gene_c : return matr_asse_gene_c - raise AsException("type de concept resultat non prevu") - -PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_prod, - fr="Projection d une matrice assemblée sur une base (modale ou de RITZ)", - docu="U4.63.12-f",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene ) ), - 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/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def proj_mesu_modal_prod(MODELE_MESURE,**args): - vale=MODELE_MESURE['NOM_PARA'] - if vale == 'INST' : return tran_gene - if vale == 'FREQ' : return harm_gene - if vale == 'DEFORMEE' : return mode_gene - raise AsException("type de concept resultat non prevu") - -PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193, - sd_prod=proj_mesu_modal_prod, - docu="U4.73.01-b",reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Calcul de coordonnees generalisees de mesure experimentale relatives a une base de projection", - - MODELE_CALCUL =FACT(statut='o',min=1,max=1, - MODELE =SIMP(statut='o',typ=(modele) ), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,) ), - ), - MODELE_MESURE =FACT(statut='o',min=1,max=1, - MODELE =SIMP(statut='o',typ=(modele) ), - MESURE =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,) ), - NOM_PARA =SIMP(statut='f',typ='TXM',defaut="INST",into=("INST","FREQ","DEFORMEE",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ), - ), - CORR_MANU =FACT(statut='f',min=1,max='**', - regles=(PRESENT_PRESENT('NOEU_CALCUL','NOEU_MESURE'),), - NOEU_CALCUL =SIMP(statut='f',typ=no), - NOEU_MESURE =SIMP(statut='f',typ=no), - ), - RESOLUTION =FACT(statut='f',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ), - b_svd =BLOC(condition="METHODE=='SVD'", - EPS=SIMP(statut='f',typ='R',defaut=0. ), - ), - REGUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ), - b_regul =BLOC(condition="REGUL!='NON'", - regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),), - COEF_PONDER =SIMP(statut='f',typ='R',max='**',defaut=0. ), - COEF_PONDER_F =SIMP(statut='f',typ=(fonction),max='**' ), - ), - ), - - ); -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,docu="U4.63.14-d",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Projection d un ou plusieurs spectres de turbulenc sur un ensemble de bases modales ", - regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'), - ENSEMBLE('FREQ_INIT','FREQ_FIN','NB_POIN'),), - SPEC_TURB =SIMP(statut='o',typ=spectre,max='**' ), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - CHAM_NO =SIMP(statut='f',typ=cham_no_depl_r ), - FREQ_INIT =SIMP(statut='f',typ='R',val_min=0.E+0 ), - FREQ_FIN =SIMP(statut='f',typ='R',val_min=0.E+0 ), - NB_POIN =SIMP(statut='f',typ='I' ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")), - GROUP_MA =SIMP(statut='f',typ=grma), -# Quel est le type attendu derriere MODELE_INTERFACE - MODELE_INTERFACE=SIMP(statut='f',typ=modele), - VECT_X =SIMP(statut='f',typ='R',min=3,max=3 ), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3 ), - ORIG_AXE =SIMP(statut='f',typ='R',min=3,max=3 ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op= 72,sd_prod=vect_asse_gene, - fr="Projection d un vecteur assemblé sur une base (modale ou de RITZ)", - docu="U4.63.13-f",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene ) ), - 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 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib, - fr=" ",docu="U4.82.06-b",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - LIST_PARA =SIMP(statut='o',typ='TXM',max='**',into=("SIGM_REFE","M",) ), - RESU =FACT(statut='o',min=1,max='**', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',), - AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),), - EVOL_NOLI =SIMP(statut='o',typ=(evol_noli) ), - MODELE =SIMP(statut='o',typ=(modele) ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - TEMPE =SIMP(statut='f',typ='R' ), - LIST_INST_RUPT =SIMP(statut='o',typ='R',max='**' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ), - INST =SIMP(statut='f',typ='R',max='**' ), - LIST_INST =SIMP(statut='f',typ=(listr8) ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.E0 ), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ), - CORR_PLAST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - METHODE =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ), - INCO_GLOB_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), - ) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -def recu_fonction_prod(RESULTAT=None,TABLE=None,OBSTACLE=None, - RESU_GENE=None,BASE_ELAS_FLUI=None,CHAM_GD=None, - TYPE_RESU=None,**args): - if AsType(RESULTAT) == dyna_harmo : return fonction_c -# On ne sait pas interpreter les deux conditions suivantes - if TABLE != None : - if TYPE_RESU != None : - if TYPE_RESU == "FONCTION_C" : return fonction_c - if TYPE_RESU == "FONCTION" : return fonction - else: - return fonction - if RESU_GENE != None : return fonction - if BASE_ELAS_FLUI != None : return fonction - if RESULTAT != None : return fonction - if CHAM_GD != None : return fonction - if OBSTACLE != None : return fonction - raise AsException("type de concept resultat non prevu") - -RECU_FONCTION=OPER(nom="RECU_FONCTION",op= 90,sd_prod=recu_fonction_prod, - fr="Extraire sous forme d une fonction, l évolution temporelle d une composante d un champ ou d une table", - docu="U4.32.03-f",reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','OBSTACLE'),), - - CHAM_GD =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r,cham_elem_sief_r, - cham_elem_vari_r,cham_elem_epsi_r,cham_elem_flux_r, - cham_elem_pres_r,cham_elem_meta_r ) ), - RESULTAT =SIMP(statut='f',typ=(evol_elas,dyna_trans,evol_noli,evol_ther,dyna_harmo ) ), - RESU_GENE =SIMP(statut='f',typ=tran_gene), -# concept table à créer - TABLE =SIMP(statut='f',typ=table), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu), - REPERE =SIMP(statut='f',typ='TXM',into=("POLAIRE","GLOBAL") ), - OBSTACLE =SIMP(statut='f',typ=obstacle), - - b_tran_gene = BLOC ( condition = "RESU_GENE != None", - fr="Récupération de la fonction concernant les chocs à partir d un concept TRAN_GENE", - regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'), - EXCLUS('MULT_APPUI','CORR_STAT'),), - MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ACCE_MONO_APPUI =SIMP(statut='f',typ=fonction), - PARA_X =SIMP(statut='f',typ='TXM' ), - PARA_Y =SIMP(statut='f',typ='TXM' ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - LIST_PARA =SIMP(statut='f',typ=listr8 ), - INTITULE =SIMP(statut='f',typ='TXM' ), - ), - b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None", - fr="Récupération de la fonction à partir d un concept melasflu", - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - NUME_MODE =SIMP(statut='o',typ='I' ), - PARA_X =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ), - PARA_Y =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ), - ), - b_table = BLOC ( condition = "TABLE != None",fr="Récupération de la fonction à partir d un concept table", - regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'), - PRESENT_PRESENT('PARA_X','PARA_Y'),), - PARA_X =SIMP(statut='f',typ='TXM', - fr="1ère colonne de la table qui définit la fonction à récupérer", ), - PARA_Y =SIMP(statut='f',typ='TXM', - fr="2ème colonne de la table qui définit la fonction à récupérer", ), - NOM_PARA_TABL =SIMP(statut='f',typ='TXM',into=("FONCTION",), - fr="Nom du paramètre de la table à qui est associé la fonction" ), - b_nom_para_tabl = BLOC (condition = "NOM_PARA_TABL != None", - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="FONCTION",into=("FONCTION","FONCTION_C") ), - ), - - FILTRE =FACT(statut='f',min=1,max='**', - NOM_PARA =SIMP(statut='o',typ='TXM' ), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - VALE_K =SIMP(statut='f',typ='TXM' ),), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), -# RESULTAT - b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT", - regles=( -# A voir par Mathieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI -# UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'), - AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC','NOM_PARA_RESU'), - PRESENT_PRESENT('MAILLE','NOM_CMP'), - PRESENT_PRESENT('GROUP_MA','NOM_CMP'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - EXCLUS('POINT','NOEUD'), - EXCLUS('GROUP_MA','MAILLE'), - EXCLUS('GROUP_NO','NOEUD'), - EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'), - UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), - NOM_CHAM =SIMP(statut='f',typ='TXM' ), - NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8 ), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - INTERP_NUME =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN") ), - ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - - MAILLE =SIMP(statut='f',typ=ma), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I' ), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), - ), -# RESU_GENE - b_resu_gene = BLOC ( condition = "RESU_GENE != None", fr="Opérandes en cas de RESU_GENE", -# A voir par Mathieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI -# regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8 ), - FREQ =SIMP(statut='f',typ='R',max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - INTERP_NUME =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN") ), - ), - b_local_cham = BLOC ( condition = "NOM_CHAM!='PTEM'", fr="Opérandes de localisation du champ", - regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'), - PRESENT_PRESENT('MAILLE','NOM_CMP'), - PRESENT_PRESENT('GROUP_MA','NOM_CMP'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - EXCLUS('POINT','NOEUD'), - EXCLUS('GROUP_MA','MAILLE'), - EXCLUS('GROUP_NO','NOEUD'), - EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - - MAILLE =SIMP(statut='f',typ=ma), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I' ), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), - ), - ), -# CHAM_GD - b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD", - - regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'), - PRESENT_PRESENT('MAILLE','NOM_CMP'), - PRESENT_PRESENT('GROUP_MA','NOM_CMP'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - EXCLUS('POINT','NOEUD'), - EXCLUS('GROUP_MA','MAILLE'), - EXCLUS('GROUP_NO','NOEUD'), - EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - - MAILLE =SIMP(statut='f',typ=ma), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I' ), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), - ), -### - NOM_PARA =SIMP(statut='f',typ='TXM', - into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC") ), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene,docu="U4.71.03-f",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 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table, - fr=" ",docu="U4.71.02-b",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 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def reso_grad_prod(MATR_ASSE,**args ): - if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r - if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r - if AsType(MATR_ASSE) == matr_asse_pres_r : return cham_no_pres_r - raise AsException("type de concept resultat non prevu") - -RESO_GRAD=OPER(nom="RESO_GRAD",op= 84,sd_prod=reso_grad_prod, - fr="Résolution par la méthode du gradient conjugué préconditionné", - docu="U4.55.04-f",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/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def reso_ldlt_prod(CHAM_NO,**args ): - if AsType(CHAM_NO) == cham_no_temp_r : return cham_no_temp_r - if AsType(CHAM_NO) == cham_no_depl_r : return cham_no_depl_r - if AsType(CHAM_NO) == cham_no_pres_r : return cham_no_pres_r - if AsType(CHAM_NO) == cham_no_temp_c : return cham_no_temp_c - if AsType(CHAM_NO) == cham_no_depl_c : return cham_no_depl_c - if AsType(CHAM_NO) == cham_no_pres_c : return cham_no_pres_c - raise AsException("type de concept resultat non prevu") - -RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=reso_ldlt_prod,reentrant='f', - fr="Résolution en place ou hors place d un système factorisé",docu="U4.55.02-g", - 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 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE BOYERE E.BOYERE -def rest_base_phys_prod(RESU_GENE,RESULTAT,**args ): - if AsType(RESU_GENE) == tran_gene : return dyna_trans - if AsType(RESU_GENE) == mode_gene : return mode_meca - if AsType(RESU_GENE) == mode_cycl : return mode_meca - if AsType(RESU_GENE) == harm_gene : return dyna_harmo - if AsType(RESULTAT) == mode_meca : return mode_meca - raise AsException("type de concept resultat non prevu") - -REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op= 75,sd_prod=rest_base_phys_prod, - fr="Restituer dans la base physique des résultats en coordonnées généralisées", - docu="U4.63.21-f",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('RESU_GENE','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'), - EXCLUS('TOUT_INST','NUME_ORDRE','INST','LIST_INST','TOUT_ORDRE'), -# Doc U à revoir - EXCLUS('MULT_APPUI','CORR_STAT'), - EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'), - EXCLUS('CORR_STAT','NOEUD','GROUP_NO'), - EXCLUS('NOEUD','GROUP_NO'), - PRESENT_PRESENT('RESULTAT','SQUELETTE'), - PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),), - RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene ) ), - RESULTAT =SIMP(statut='f',typ=mode_meca ), - - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',max='**' ), - LIST_INST =SIMP(statut='f',typ=listr8 ), - FREQ =SIMP(statut='f',typ='R',max='**' ), - LIST_FREQ =SIMP(statut='f',typ=listr8 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',max=8,defaut="ACCE", - into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL", - "SIGM_ELNO_DEPL","FORC_NODA",) ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - - ACCE_MONO_APPUI =SIMP(statut='f',typ=fonction), - DIRECTION =SIMP(statut='f',typ='R',max='**' ), - - SQUELETTE =SIMP(statut='f',typ=squelette ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - SECTEUR =SIMP(statut='f',typ='I',defaut= 1 ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp, - docu="U4.63.22-d",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - BANDE =SIMP(statut='f',typ='R',min=2,max=2 ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**' ), - INTE_SPEC_GENE =SIMP(statut='o',typ=tabl_intsp ), - NOEUD =SIMP(statut='o',typ=no,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NOM_CHAM =SIMP(statut='o',typ='TXM',max=7, - into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL", - "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc), ), - EXCIT =FACT(statut='f',max=1, - NOEUD =SIMP(statut='o',typ=no,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - ), - MOUVEMENT =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ), - OPTION =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG", - into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -RETOUR=PROC(nom="RETOUR",op= -2,docu="U4.13.02-f", - UIinfo={"groupes":("Gestion du travail",)}, - fr="Retour au fichier de commandes appelant", -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ADBHHVV V.CANO -STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, - fr="Analyse mécanique statique non linéaire", - docu="U4.51.03-f",reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),), - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',min=1,max='**', - CHARGE =SIMP(statut='o',typ=char_meca), - FONC_MULT =SIMP(statut='f',typ=fonction), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), - ), - VARI_COMM =FACT(statut='f', - regles=(AU_MOINS_UN('IRRA',),), - IRRA =SIMP(statut='f',typ=evol_varc), - ), - COMP_INCR =FACT(statut='f',min=1,max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC", - into=( "ELAS", - "VMIS_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VMIS_ECMI_TRAC", - "VMIS_ECMI_LINE", - "LABORD_1D", - "ENDO_FRAGILE", - "ENDO_ISOT_BETON", - "MAZARS", - "RUPT_FRAG", - "BARENBLATT", - "META_P_IL", - "META_P_IL_PT", - "META_P_IL_RE", - "META_P_IL_PT_RE", - "META_V_IL", - "META_V_IL_PT", - "META_V_IL_RE", - "META_V_IL_PT_RE", - "META_P_INL", - "META_P_INL_PT", - "META_P_INL_RE", - "META_P_INL_PT_RE", - "META_V_INL", - "META_V_INL_PT", - "META_V_INL_RE", - "META_V_INL_PT_RE", - "META_P_CL", - "META_P_CL_PT", - "META_P_CL_RE", - "META_P_CL_PT_RE", - "META_V_CL", - "META_V_CL_PT", - "META_V_CL_RE", - "META_V_CL_PT_RE", - "VMIS_CINE_LINE", - "VISC_TAHERI", - "CHABOCHE", -#DEBR "VISCOCHAB", - "VISC_CIN1_CHAB", - "VISC_CIN2_CHAB", - "POLY_CFC", -#DEBR "LMARC", - "ROUSSELIER", - "ROUSS_PR", - "ROUSS_VISC", - "VMIS_POU_LINE", - "VMIS_POU_FLEJOU", - "COULOMB", - "ARME", - "ASSE_CORN", - "NORTON_HOFF", - "LEMAITRE", - "ZIRC_CYRA2", - "ZIRC_EPRI", - "ASSE_COMBU", -#DEBR "VENDOCHAB", -#DEBR "NADAI_B", - "DIS_CONTACT", - "DIS_CHOC", - "DIS_GOUJ2E_PLAS", - "DIS_GOUJ2E_ELAS", - "GRILLE_ISOT_LINE", - "GRILLE_CINE_LINE", - "GRILLE_PINTO_MEN", - "PINTO_MENEGOTTO", - "CJS", - "CAM_CLAY", - "LAIGLE", -#DEBR "OHNO", - "GRANGER_FP", - "GRANGER_FP_V", - "BAZANT_FD", - "BETON_DOUBLE_DP", - "KIT_HM", - "KIT_HHM", - "KIT_THH", - "KIT_THV", - "KIT_THM", - "KIT_THHM", - "VMIS_ASYM_LINE", - "ELAS_THM", -#DEBR "SURF_ETAT_NSAT", -#DEBR "SURF_ETAT_SATU", -#DEBR "CAM_CLAY_THM", - "KIT_DDI", - ) ), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VMIS_ISOT_LINE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VMIS_ECMI_TRAC =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - VMIS_ECMI_LINE =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - LABORD_1D =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ENDO_ISOT_BETON =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - MAZARS =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - RUPT_FRAG =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - BARENBLATT =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - META_P_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_V_INL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - META_P_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_P_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_P_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_P_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - META_V_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - CHABOCHE =SIMP(statut='c',typ='I',defaut=14,into=(14,)), - VISCOCHAB =SIMP(statut='c',typ='I',defaut=28,into=(28,)), - VISC_CIN1_CHAB =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - VISC_CIN2_CHAB =SIMP(statut='c',typ='I',defaut=14,into=(14,)), - POLY_CFC =SIMP(statut='c',typ='I',defaut=1688,into=(1688,)), - LMARC =SIMP(statut='c',typ='I',defaut=20,into=(20,)), - VISC_TAHERI =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - ROUSSELIER =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - ROUSS_PR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - ROUSS_VISC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - VMIS_POU_LINE =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9 ,into=(9,)), - COULOMB =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - ASSE_CORN =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - ARME =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - NORTON_HOFF =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - LEMAITRE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ZIRC_CYRA2 =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ZIRC_EPRI =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ASSE_COMBU =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - NADAI_B =SIMP(statut='c',typ='I',defaut=34,into=(34,)), - VENDOCHAB =SIMP(statut='c',typ='I',defaut=10,into=(10,)), - GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)), - GRILLE_CINE_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)), - GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,)), - DIS_CONTACT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - DIS_CHOC =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - DIS_GOUJ2E_PLAS =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - DIS_GOUJ2E_ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - PINTO_MENEGOTTO =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - CJS =SIMP(statut='c',typ='I',defaut=16,into=(16,)), - CAM_CLAY =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LAIGLE =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - OHNO =SIMP(statut='c',typ='I',defaut=32,into=(32,)), - GRANGER_FP =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - GRANGER_FP_V =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - 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,)), - - RELATION_KIT =SIMP(statut='f',typ='TXM',max='**', - into=( -# MECA - "ELAS", - "CJS", - "CAM_CLAY", - "LAIGLE", - "ELAS_THM", -#DEBR "SURF_ETAT_NSAT", -#DEBR "SURF_ETAT_SATU", -#DEBR "CAM_CLAY_THM", -# THMC - "GAZ", - "LIQU_SATU", -#DEBR "LIQU_SATU_GAT", - "LIQU_GAZ_ATM", - "LIQU_VAPE_GAZ", - "LIQU_VAPE", -#DEBR "LIQU_NSAT_GAT", - "LIQU_GAZ", -# THER - "THER_HOMO", - "THER_POLY", -# HYDR - "HYDR_UTIL", - "HYDR", -# MECA_META - "ACIER", - "ZIRC", -# MECA KIT_DDI - "VMIS_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VMIS_ISOT_CINE", - "GRANGER_FP", - "GRANGER_FP_V", - "ROUSS_PR", - "CHABOCHE", -#DEBR "OHNO", -#DEBR "NADAI_B", - "BETON_DOUBLE_DP", - ) ), - ELAS_THM =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - SURF_ETAT_NSAT =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - SURF_ETAT_SATU =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - CAM_CLAY_THM =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - GAZ =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - LIQU_SATU =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LIQU_SATU_GAT =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LIQU_GAZ_ATM =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_VAPE_GAZ =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - LIQU_VAPE =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - LIQU_NSAT_GAT =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_GAZ =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - THER_HOMO =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - THER_POLY =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - HYDR_UTIL =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - HYDR =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - ACIER =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN",)), - ALGO_C_PLAN =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - COMP_ELAS =FACT(statut='f',min=1,max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE")), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - ETAT_INIT =FACT(statut='f',min=1,max=1, - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_depl_r), - SIGM =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)), - VARI =SIMP(statut='f',typ=cham_elem_vari_r), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_vanl_r), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ), - INCREMENT =FACT(statut='o',min=1,max=1, - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=1), - SUBD_PAS_MINI =SIMP(statut='f',typ='R'), - COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0), - OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',), - NOM_CMP =SIMP(statut='f',typ='TXM',), - VALE =SIMP(statut='f',typ='R'), - ), - NEWTON =FACT(statut='d',min=1,max=1, - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - RECH_LINEAIRE =FACT(statut='f',min=1,max=1, - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ), - PILOTAGE =FACT(statut='f',min=1,max=1, - regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ETA_PILO_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_MIN =SIMP(statut='f',typ='R'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), - ), - CONVERGENCE =FACT(statut='d',min=1,max=1, - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - TYPE_MATR_COMP =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT",)), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - PARM_THETA =SIMP(statut='f',typ='R' - ,defaut= 1. ), - SOLVEUR =FACT(statut='d',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - ARCHIVAGE =FACT(statut='f',min=1,max=1, - regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), - EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), - LIST_INST =SIMP(statut='f',typ=(listr8) ), - INST =SIMP(statut='f',typ='R',max='**' ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_INIT =SIMP(statut='f',typ='I'), - DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA", - "VARI_NON_LOCAL","LANL_ELGA")), - ), - OBSERVATION =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'), - PRESENT_PRESENT('MAILLE','POINT'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA", - "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU")), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**' ), - LIST_ARCH =SIMP(statut='f',typ=listis), - LIST_INST =SIMP(statut='f',typ=listr8), - INST =SIMP(statut='f',typ='R',max='**' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PAS_OBSE =SIMP(statut='f',typ='I'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - POINT =SIMP(statut='f',typ='I',max='**'), - ), - SOLV_NON_LOCAL =FACT(statut='f',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LAGR_NON_LOCAL =FACT(statut='f',max=1, - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - R =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - ) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,fr="Extraction d une valeur numérique ou d un attribut de fonction", - docu="U4.92.02-f", - UIinfo={"groupes":("Impression",)}, - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - TEST_NOOK =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - VALEUR =FACT(statut='f',min=1,max='**', - fr="Tester la valeur d une fonction ou d une nappe", - regles=(UN_PARMI('VALE_REFE','VALE_REFE_C', ),), - FONCTION =SIMP(statut='o',typ=fonction ), - NOM_PARA =SIMP(statut='f',typ='TXM',max=2), - VALE_PARA =SIMP(statut='o',typ='R',max=2), - VALE_REFE =SIMP(statut='f',typ='R' ), - VALE_REFE_C =SIMP(statut='f',typ='C' ), - CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence", - defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence", - defaut= 1.E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), - ATTRIBUT =FACT(statut='f',min=1,max='**', - fr="Tester la valeur d un attribut d une fonction ou d''une nappe", - FONCTION =SIMP(statut='o',typ=fonction ), - PARA =SIMP(statut='f',typ='R' ), - CRIT_PARA =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PREC_PARA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ATTR =SIMP(statut='o',typ='TXM', - into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL", - "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ), - ATTR_REFE =SIMP(statut='o',typ='TXM' ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), - TABL_INTSP =FACT(statut='f',min=1,max='**', - fr="Tester la valeur d une fonction contenue dans une table interspectrale", - regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),), - INTE_SPEC =SIMP(statut='o',typ=tabl_intsp ), - NOEUD_I =SIMP(statut='f',typ=no), - NUME_ORDRE_I =SIMP(statut='f',typ='I' ), - b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - ), - b_noeud_i = BLOC (condition = "NOEUD_I != None", - NOEUD_J =SIMP(statut='o',typ=no), - NOM_CMP_I =SIMP(statut='o',typ='TXM' ), - NOM_CMP_J =SIMP(statut='o',typ='TXM' ), - ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - VALE_PARA =SIMP(statut='o',typ='R' ), - VALE_REFE_C =SIMP(statut='o',typ='C' ), - CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence", - defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence", - defaut= 1.E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# RESPONSABLE VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -TEST_RESU=PROC(nom="TEST_RESU",op=23,docu="U4.92.01-g", - UIinfo={"groupes":("Impression",)}, - fr="Extraction d une valeur et comparaison à une valeur de référence", - regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','OBJET')), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), - - CHAM_NO =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'), - EXCLUS('NOEUD','GROUP_NO'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C'),), - CHAM_GD =SIMP(statut='o',typ=cham_no), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER")), - VERSION =SIMP(statut='f',typ='TXM'), - ), - - CHAM_ELEM =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('MAILLE','TYPE_TEST',), - EXCLUS('NOEUD','GROUP_NO','POINT'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C'), ), - CHAM_GD =SIMP(statut='o',typ=cham_elem),# CO() - MAILLE =SIMP(statut='f',typ=ma),# CO() - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I'), - NOEUD =SIMP(statut='f',typ=no),# CO() - GROUP_NO =SIMP(statut='f',typ=grno),# CO() - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER") ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), - - RESU =FACT(statut='f',min=1,max='**', - regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'), - UN_PARMI('NOM_CHAM','PARA'), - PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'), - PRESENT_PRESENT('NOM_CMP','NOM_CHAM'), - EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C') ,), - RESULTAT =SIMP(statut='o',typ=resultat), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), - 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'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - POINT =SIMP(statut='f',typ='I'), - SOUS_POINT =SIMP(statut='f',typ='I'), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2), - PRECISION =SIMP(statut='f',typ='R',max=2), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER",) ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), - - OBJET =FACT(statut='f',max='**', - regles=(UN_PARMI('INDICE','S_I','S_R','RESUME',), - UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),), - NOM =SIMP(statut='o',typ='TXM'), - INDICE =SIMP(statut='f',typ='I'), - NUM_OBJ =SIMP(statut='f',typ='I'), - S_R =SIMP(statut='f',typ='R'), - S_I =SIMP(statut='f',typ='I'), - RESUME =SIMP(statut='f',typ='I'), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER",) ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, - docu="U4.92.03-c", - UIinfo={"groupes":("Impression",)}, - regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),), - FICHIER =SIMP(statut='f',typ='TXM',defaut="RESULTAT"), -# concept table à créer - TABLE =SIMP(statut='o',typ=table), - - FILTRE =FACT(statut='f',min=1,max='**', - NOM_PARA =SIMP(statut='o',typ='TXM' ), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - VALE_K =SIMP(statut='f',typ='TXM' ),), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), - NOM_PARA =SIMP(statut='o',typ='TXM' ), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.2E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,docu="U4.54.01-g",reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Analyse thermique linéaire stationnaire ou transitoire", - MODELE =SIMP(statut='o',typ=modele), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',min=1,max='**', - CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)), - FONC_MULT =SIMP(statut='f',typ=fonction), - ), - INCREMENT =FACT(statut='f',min=1,max=1, - LIST_INST =SIMP(statut='o',typ=listr8 ), - NUME_INIT =SIMP(statut='f',typ='I'), - NUME_FIN =SIMP(statut='f',typ='I'), - ), - TEMP_INIT =FACT(statut='f',min=1,max=1, - regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r), - VALE =SIMP(statut='f',typ='R'), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters", - ), - SENS_INIT =FACT(statut='f',min=1,max=1, - regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - SOLVEUR =FACT(statut='d',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57), - ARCHIVAGE =FACT(statut='f',min=1,max=1, - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST'),), - LIST_ARCH =SIMP(statut='f',typ=listis), - LIST_INST =SIMP(statut='f',typ=listr8), - INST =SIMP(statut='f',typ='R',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU")), - PAS_ARCH =SIMP(statut='f',typ='I'), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',into=("VARI",)), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,docu="U4.54.02-e",reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Analyse thermique non linéaire stationnaire ou transitoire" , - MODELE =SIMP(statut='o',typ=(modele) ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - CARA_ELEM =SIMP(statut='c',typ=(cara_elem) ), - COMP_THER_NL =FACT(statut='d',min=1,max='**', - RELATION =SIMP(statut='f',typ='TXM',defaut="THER_NL", - into=("THER_NL", - "THER_HYDR", - "SECH_GRANGER", - "SECH_MENSI", - "SECH_BAZANT", - "SECH_NAPPE" - ) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - ), - EVOL_THER_SECH =SIMP(statut='f',typ=evol_ther), - EXCIT =FACT(statut='o',min=1,max='**', - CHARGE =SIMP(statut='o',typ=char_ther), - FONC_MULT =SIMP(statut='f',typ=fonction), - ), - INCREMENT =FACT(statut='f',min=1,max=1, - LIST_INST =SIMP(statut='o',typ=listr8), - NUME_INIT =SIMP(statut='f',typ='I'), - NUME_FIN =SIMP(statut='f',typ='I'), - ), - TEMP_INIT =FACT(statut='f',min=1,max=1, - regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",)), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - CHAM_NO =SIMP(statut='f',typ=cham_no_temp_r), - VALE =SIMP(statut='f',typ='R'), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - NEWTON =FACT(statut='d',min=1,max=1, - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CONVERGENCE =FACT(statut='d',min=1,max=1, - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters", - ), - SOLVEUR =FACT(statut='d',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Parametres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Parametres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Parametres relatifs a la non inversibilité de la matrice a factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Parametres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), -# A quoi sert eps - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57 ), - ARCHIVAGE =FACT(statut='f',min=1,max=1, - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),), - LIST_ARCH =SIMP(statut='f',typ=(listis) ), - LIST_INST =SIMP(statut='f',typ=(listr8) ), - INST =SIMP(statut='f',typ='R',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - PAS_ARCH =SIMP(statut='f',typ='I'), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',into=("VARI",)), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - OPTION =SIMP(statut='f',typ='TXM',max='**', - into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - -) ; -#& MODIF COMMANDE DATE 22/04/2003 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther, - fr="Thermique non lineaire en repere mobile", - docu="U4.54.03-c",reentrant='f', - UIinfo={"groupes":("Résolution",)}, - MODELE =SIMP(statut='o',typ=modele ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='c',typ=cara_elem ), - EXCIT =FACT(statut='o',min=1,max='**', - CHARGE =SIMP(statut='o',typ=char_ther ), - FONC_MULT =SIMP(statut='c',typ=fonction ), - ), - TEMP_INIT =FACT(statut='f',min=1,max=1, - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - NUME_INIT =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CONVERGENCE =FACT(statut='d',min=1,max=1, - CRIT_TEMP_RELA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRIT_ENTH_RELA =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ARRET =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - SOLVEUR =FACT(statut='d',min=1,max=1, - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; - - - diff --git a/Aster/Cata/cataSTA6/macro_cara_poutre_ops.py b/Aster/Cata/cataSTA6/macro_cara_poutre_ops.py deleted file mode 100644 index a98d3d6f..00000000 --- a/Aster/Cata/cataSTA6/macro_cara_poutre_ops.py +++ /dev/null @@ -1,684 +0,0 @@ -# -*- coding: utf-8 -*- -#@ MODIF macro_cara_poutre_ops Macro DATE 25/06/2002 AUTEUR JMBHH01 J.M.PROIX -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -def macro_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, - GROUP_MA,ORIG_INER,NOEUD,GROUP_MA_INTE, - LONGUEUR,MATERIAU,LIAISON, - **args): - """ - Ecriture de la macro MACRO_CARA_POUTRE - """ - import types - from Accas import _F - ier=0 - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') - DEFI_GROUP =self.get_cmd('DEFI_GROUP') - CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE') - AFFE_MODELE =self.get_cmd('AFFE_MODELE') - DEFI_MATERIAU =self.get_cmd('DEFI_MATERIAU') - AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU') - DEFI_FONCTION =self.get_cmd('DEFI_FONCTION') - DEFI_CONSTANTE =self.get_cmd('DEFI_CONSTANTE') - AFFE_CHAR_THER =self.get_cmd('AFFE_CHAR_THER') - AFFE_CHAR_THER_F=self.get_cmd('AFFE_CHAR_THER_F') - THER_LINEAIRE =self.get_cmd('THER_LINEAIRE') - CALC_VECT_ELEM =self.get_cmd('CALC_VECT_ELEM') - CALC_MATR_ELEM =self.get_cmd('CALC_MATR_ELEM') - NUME_DDL =self.get_cmd('NUME_DDL') - ASSE_VECTEUR =self.get_cmd('ASSE_VECTEUR') - POST_ELEM =self.get_cmd('POST_ELEM') - # La macro compte pour 1 dans la numerotation des commandes - self.icmd=1 - - # Le concept sortant (de type tabl_cara_geom) est nommé 'nomres' dans - # le contexte de la macro - - self.DeclareOut('nomres',self.sd) - - if GROUP_MA_BORD and GROUP_MA: - if not LIAISON: - ier=ier+1 - self.cr.fatal("Avec GROUP_MA, il faut obligatoirement preciser LIAISON, LONGUEUR ET MATERIAU") - return ier - - __nomlma=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,) - - __nomamo=AFFE_MODELE(MAILLAGE=__nomlma, - AFFE=_F(TOUT='OUI', - PHENOMENE='MECANIQUE', - MODELISATION='D_PLAN',), ) - - __nomdma=DEFI_MATERIAU(ELAS=_F(E=1.0,NU=0.,RHO=1.0),) - - - __nomama=AFFE_MATERIAU(MAILLAGE=__nomlma, - AFFE=_F(TOUT='OUI', - MATER=__nomdma,), ) - -# --- CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE LA SECTION : -# ------------------------------------------------------ - - motsimps={} - if GROUP_MA : motsimps['GROUP_MA'] = GROUP_MA - if SYME_X : motsimps['SYME_X'] = SYME_X - if SYME_Y : motsimps['SYME_Y'] = SYME_Y - motsimps['ORIG_INER'] = ORIG_INER - mfact=_F(TOUT='OUI',**motsimps) - nomres=POST_ELEM(MODELE=__nomamo, - CHAM_MATER=__nomama, - CARA_GEOM=mfact ) - -# nb : si GROUP_MA n existe pas : le mot clé est ignoré - -# -# ================================================================== -# --- = CALCUL DE LA CONSTANTE DE TORSION SUR TOUT LE MAILLAGE = -# --- = OU DU CENTRE DE TORSION/CISAILLEMENT = -# --- = DES COEFFICIENTS DE CISAILLEMENT = -# --- = ET DE L INERTIE DE GAUCHISSEMENT = -# --- = ON CREE UN MODELE PLAN 2D THERMIQUE REPRESENTANT LA SECTION = -# --- = DE LA POUTRE CAR ON A A RESOUDRE DES E.D.P. AVEC DES LAPLACIENS= -# ================================================================== - - if GROUP_MA_BORD and not GROUP_MA: - -# --- TRANSFORMATION DES GROUP_MA EN GROUP_NO SUR-LESQUELS -# --- ON POURRA APPLIQUER DES CONDITIONS DE TEMPERATURE IMPOSEE : -# --------------------------------------------------------- - motscles={} - if type(GROUP_MA_BORD)==types.StringType: - motscles['CREA_GROUP_NO']=_F(GROUP_MA=GROUP_MA_BORD,) - else: - motscles['CREA_GROUP_NO']=[] - for grma in GROUP_MA_BORD: - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=grma,)) - __nomlma=DEFI_GROUP(reuse=__nomlma, - MAILLAGE=__nomlma, - **motscles) - - -# --- CREATION D UN MAILLAGE IDENTIQUE AU PREMIER A CECI PRES -# --- QUE LES COORDONNEES SONT EXPRIMEES DANS LE REPERE PRINCIPAL -# --- D INERTIE DONT L ORIGINE EST LE CENTRE DE GRAVITE DE LA SECTION : -# --------------------------------------------------------------- - - __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma, - REPERE=_F(TABLE=nomres, - NOM_ORIG='CDG', ), ) - -# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE -# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE : -# ------------------------------------------------------ - - __nomoth=AFFE_MODELE(MAILLAGE=__nomapi, - AFFE=_F(TOUT='OUI', - PHENOMENE='THERMIQUE', - MODELISATION='PLAN',), ) - -# --- POUR LA CONSTRUCTION DU LAPLACIEN, ON DEFINIT UN -# --- PSEUDO-MATERIAU DONT LES CARACTERISTIQUES THERMIQUES SONT : -# --- LAMBDA = 1, RHO*CP = 0 : -# ---------------------- - - __nomath=DEFI_MATERIAU(THER=_F(LAMBDA=1.0,RHO_CP=0.,),) - -# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT : -# --------------------------------------------------------- - - __chmath=AFFE_MATERIAU(MAILLAGE=__nomapi, - AFFE=_F(TOUT='OUI', - MATER=__nomath,), ) - -# -# ------------------------------------------------------------ -# --- - CALCUL DE LA CONSTANTE DE TORSION PAR RESOLUTION - -# --- - D UN LAPLACIEN AVEC UN TERME SOURCE EGAL A -2 - -# --- - L INCONNUE ETANT NULLE SUR LE CONTOUR DE LA SECTION : - -# --- - LAPLACIEN(PHI) = -2 DANS LA SECTION - -# --- - PHI = 0 SUR LE CONTOUR : - -# ------------------------------------------------------------ -# -# --- ON IMPOSE LA VALEUR 0 A L INCONNUE SCALAIRE SUR LE CONTOUR -# --- DE LA SECTION -# --- ET ON A UN TERME SOURCE EGAL A -2 DANS TOUTE LA SECTION : -# ------------------------------------------------------- - - motscles={} - if GROUP_MA_INTE: - motscles['LIAISON_UNIF']=_F(GROUP_MA=GROUP_MA_INTE,DDL='TEMP'), - __chart1=AFFE_CHAR_THER(MODELE=__nomoth, - TEMP_IMPO =_F(GROUP_NO=GROUP_MA_BORD, - TEMP=0. ), - SOURCE =_F(TOUT='OUI', - SOUR=2.0), - **motscles ) - -# --- POUR CHAQUE TROU DE LA SECTION : -# --- .ON A IMPOSE QUE PHI EST CONSTANT SUR LE CONTOUR INTERIEUR -# --- EN FAISANT LE LIAISON_UNIF DANS LE AFFE_CHAR_THER PRECEDENT -# --- .ON IMPOSE EN PLUS D(PHI)/DN = 2*AIRE(TROU)/L(TROU) -# --- OU D/DN DESIGNE LA DERIVEE PAR RAPPORT A LA -# --- NORMALE ET L DESIGNE LA LONGUEUR DU BORD DU TROU : -# ------------------------------------------------------- - - if GROUP_MA_INTE: - __tbaire=POST_ELEM(MODELE=__nomoth, - AIRE_INTERNE=_F(GROUP_MA_BORD=GROUP_MA_INTE,), ) - - motscles={} - motscles['FLUX_REP']=[] - if type(GROUP_MA_INTE)==types.StringType: - motscles['FLUX_REP']=_F(GROUP_MA=GROUP_MA_INTE,CARA_TORSION=__tbaire) - else: - motscles['FLUX_REP']=[] - for grma in GROUP_MA_INTE: - motscles['FLUX_REP'].append(_F(GROUP_MA=grma,CARA_TORSION=__tbaire),) - __chart2=AFFE_CHAR_THER(MODELE=__nomoth,**motscles) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -2 -# --- AVEC PHI = 0 SUR LE CONTOUR : -# ---------------------------------------- - - motscles={} - motscles['EXCIT']=[_F(CHARGE=__chart1,),] - if GROUP_MA_INTE: - motscles['EXCIT'].append(_F(CHARGE=__chart2,)) - __tempe1=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - SOLVEUR=_F(STOP_SINGULIER='NON',), - **motscles ) - -# -# ---------------------------------------------- -# --- - CALCUL DU CENTRE DE TORSION/CISAILLEMENT - -# --- - ET DES COEFFICIENTS DE CISAILLEMENT : - -# ---------------------------------------------- -# -# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR -# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE -# --- PAR UNE FONCTION EGALE A Y : -# -------------------------- - - __fnsec1=DEFI_FONCTION(NOM_PARA='X', - VALE=(0.,0.,10.,10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', - ) - - __fnsec0=DEFI_CONSTANTE(VALE=0.,) - -# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION -# --- DE LAPLACE EST PRIS EGAL A Y DANS TOUTE LA SECTION : -# -------------------------------------------------- - - - motscles={} - if NOEUD: - motscles['TEMP_IMPO']=(_F(NOEUD=NOEUD,TEMP=__fnsec0)) - __chart2=AFFE_CHAR_THER_F(MODELE=__nomoth, - SOURCE=_F(TOUT='OUI', - SOUR=__fnsec1,), - **motscles ) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -Y -# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : -# ------------------------------------------------ - - __tempe2=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - EXCIT=_F(CHARGE=__chart2,), - SOLVEUR=_F(STOP_SINGULIER='NON',), - ) - -# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR -# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE -# --- PAR UNE FONCTION EGALE A Z : -# -------------------------- - - __fnsec2=DEFI_FONCTION(NOM_PARA='Y', - VALE=(0.,0.,10.,10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', - ) - -# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION -# --- DE LAPLACE EST PRIS EGAL A Z DANS TOUTE LA SECTION : -# -------------------------------------------------- - - motscles={} - if NOEUD: - motscles['TEMP_IMPO']=_F(NOEUD=NOEUD,TEMP=__fnsec0) - __chart3=AFFE_CHAR_THER_F(MODELE=__nomoth, - SOURCE=_F(TOUT='OUI', - SOUR=__fnsec2,), - **motscles) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -Z -# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : -# ------------------------------------------------ - - __tempe3=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - EXCIT=_F(CHARGE=__chart3,), - SOLVEUR=_F(STOP_SINGULIER='NON',), - ) - -# --- CALCUL DE LA CONSTANTE DE TORSION : -# --------------------------------- - - motscles={} - if GROUP_MA_INTE: - motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres, - LAPL_PHI=__tempe1, - TOUT='OUI', - OPTION='CARA_TORSION', - GROUP_MA_INTE=GROUP_MA_INTE,) - else: - motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres, - LAPL_PHI=__tempe1, - TOUT='OUI', - OPTION='CARA_TORSION', ) - nomres=POST_ELEM(reuse=nomres, - MODELE=__nomoth, - CHAM_MATER=__chmath, - **motscles ) - -# --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU -# --- CENTRE DE CISAILLEMENT/TORSION : -# ------------------------------ - - nomres=POST_ELEM(reuse=nomres, - MODELE=__nomoth, - CHAM_MATER=__chmath, - CARA_POUTRE=_F(CARA_GEOM=nomres, - LAPL_PHI_Y=__tempe2, - LAPL_PHI_Z=__tempe3, - TOUT='OUI', - OPTION='CARA_CISAILLEMENT',), ) - -# -# ------------------------------------------------------------ -# --- - CALCUL DE L INERTIE DE GAUCHISSEMENT PAR RESOLUTION DE - -# --- - LAPLACIEN(OMEGA) = 0 DANS LA SECTION - -# --- - AVEC D(OMEGA)/D(N) = Z*NY-Y*NZ SUR LE - -# --- - CONTOUR DE LA SECTION - -# --- - NY ET NZ SONT LES COMPOSANTES DU VECTEUR N NORMAL - -# --- - A CE CONTOUR - -# --- - ET SOMME_S(OMEGA.DS) = 0 - -# --- - OMEGA EST LA FONCTION DE GAUCHISSEMENT - -# --- - L INERTIE DE GAUCHISSEMENT EST SOMME_S(OMEGA**2.DS) - -# ------------------------------------------------------------ -# -# --- CREATION D UN MAILLAGE DONT LES COORDONNEES SONT EXPRIMEES -# --- DANS LE REPERE PRINCIPAL D INERTIE MAIS AVEC COMME ORIGINE -# --- LE CENTRE DE TORSION DE LA SECTION, ON VA DONC UTILISER -# --- LE MAILLAGE DE NOM NOMAPI DONT LES COORDONNEES SONT -# --- EXPRIMEES DANS LE REPERE PRINCIPAL D'INERTIE, L'ORIGINE -# --- ETANT LE CENTRE DE GRAVITE DE LA SECTION (QUI EST DONC -# --- A CHANGER) : -# ---------- - - __nomapt=CREA_MAILLAGE(MAILLAGE=__nomapi, - REPERE=_F(TABLE=nomres, - NOM_ORIG='TORSION',) ) - -# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE -# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE : -# ------------------------------------------------------ - - __nomot2=AFFE_MODELE(MAILLAGE=__nomapt, - AFFE=_F(TOUT='OUI', - PHENOMENE='THERMIQUE', - MODELISATION='PLAN', ) ) - -# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT : -# --------------------------------------------------------- - - __chmat2=AFFE_MATERIAU(MAILLAGE=__nomapt, - AFFE=_F(TOUT='OUI', - MATER=__nomath, ), ) - -# --- POUR LE CALCUL DE L INERTIE DE GAUCHISSEMENT, ON VA DEFINIR -# --- LA COMPOSANTE SELON Y DU FLUX A IMPOSER SUR LE CONTOUR -# --- PAR UNE FONCTION EGALE A -X : -# --------------------------- - - __fnsec3=DEFI_FONCTION(NOM_PARA='X', - VALE=(0.,0.,10.,-10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', - ) - -# --- POUR LE CALCUL DE L INERTIE DE GAUCHISSEMENT, ON VA DEFINIR -# --- LA COMPOSANTE SELON X DU FLUX A IMPOSER SUR LE CONTOUR -# --- PAR UNE FONCTION EGALE A Y : -# -------------------------- - - __fnsec4=DEFI_FONCTION(NOM_PARA='Y', - VALE=(0.,0.,10.,10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', - ) - -# --- DANS LE BUT D IMPOSER LA RELATION LINEAIRE ENTRE DDLS -# --- SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION -# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE -# --- N = 0, N ETANT L EFFORT NORMAL) -# --- ON CALCULE LE VECTEUR DE CHARGEMENT DU A UN TERME SOURCE EGAL -# --- A 1., LES TERMES DE CE VECTEUR SONT EGAUX A -# --- SOMME_SECTION(NI.DS) ET SONT DONC LES COEFFICIENTS DE -# --- LA RELATION LINEAIRE A IMPOSER. -# --- ON DEFINIT DONC UN CHARGEMENT DU A UN TERME SOURCE EGAL A 1 : -# ----------------------------------------------------------- - - __chart4=AFFE_CHAR_THER(MODELE=__nomot2, - SOURCE=_F(TOUT='OUI', - SOUR=1.0), ) - -# --- ON CALCULE LE VECT_ELEM DU AU CHARGEMENT PRECEDENT -# --- IL S AGIT DES VECTEURS ELEMENTAIRES DONT LE TERME -# --- AU NOEUD COURANT I EST EGAL A SOMME_SECTION(NI.DS) : -# -------------------------------------------------- - - __vecel=CALC_VECT_ELEM(CHARGE=__chart4, - OPTION='CHAR_THER' - ) - -# --- ON CALCULE LE MATR_ELEM DES MATRICES ELEMENTAIRES -# --- DE CONDUCTIVITE UNIQUEMENT POUR GENERER LE NUME_DDL -# --- SUR-LEQUEL S APPUIERA LE CHAMNO UTILISE POUR ECRIRE LA -# --- RELATION LINEAIRE ENTRE DDLS : -# ---------------------------- - - __matel=CALC_MATR_ELEM(MODELE=__nomot2, - CHAM_MATER=__chmat2, - CHARGE=__chart4, - OPTION='RIGI_THER',) - -# --- ON DEFINIT LE NUME_DDL ASSOCIE AU MATR_ELEM DEFINI -# --- PRECEDEMMENT POUR CONSTRUIRE LE CHAMNO UTILISE POUR ECRIRE LA -# --- RELATION LINEAIRE ENTRE DDLS : -# ---------------------------- - - __numddl=NUME_DDL(MATR_RIGI=__matel, - METHODE='LDLT', ) - -# --- ON CONSTRUIT LE CHAMNO QUI VA ETRE UTILISE POUR ECRIRE LA -# --- RELATION LINEAIRE ENTRE DDLS : -# ---------------------------- - - __chamno=ASSE_VECTEUR(VECT_ELEM=__vecel, - NUME_DDL=__numddl, ) - -# --- ON IMPOSE LA RELATION LINEAIRE ENTRE DDLS -# --- SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION -# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE -# --- N = 0, N ETANT L EFFORT NORMAL) -# --- POUR IMPOSER CETTE RELATION ON PASSE PAR LIAISON_CHAMNO, -# --- LES TERMES DU CHAMNO (I.E. SOMME_SECTION(NI.DS)) -# --- SONT LES COEFFICIENTS DE LA RELATION LINEAIRE : -# --------------------------------------------- - - __chart5=AFFE_CHAR_THER(MODELE=__nomot2, - LIAISON_CHAMNO=_F(CHAM_NO=__chamno, - COEF_IMPO=0.), ) - -# --- LE CHARGEMENT EST UN FLUX REPARTI NORMAL AU CONTOUR -# --- DONT LES COMPOSANTES SONT +Z (I.E. +Y) ET -Y (I.E. -X) -# --- SELON LA DIRECTION NORMALE AU CONTOUR : -# ------------------------------------- - - __chart6=AFFE_CHAR_THER_F(MODELE=__nomot2, - FLUX_REP=_F(GROUP_MA=GROUP_MA_BORD, - FLUX_X =__fnsec4, - FLUX_Y =__fnsec3,), ) - -# --- RESOLUTION DE LAPLACIEN(OMEGA) = 0 -# --- AVEC D(OMEGA)/D(N) = Z*NY-Y*NZ SUR LE CONTOUR DE LA SECTION -# --- ET SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION -# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE -# --- N = 0, N ETANT L EFFORT NORMAL) : -# ------------------------------- - - __tempe4=THER_LINEAIRE(MODELE=__nomot2, - CHAM_MATER=__chmat2, - EXCIT=(_F(CHARGE=__chart5,), - _F(CHARGE=__chart6,),), - SOLVEUR=_F(METHODE='LDLT', - RENUM='SANS', - STOP_SINGULIER='NON',), ) - -# --- CALCUL DE L INERTIE DE GAUCHISSEMENT : -# ------------------------------------- - - nomres=POST_ELEM(reuse=nomres, - MODELE=__nomot2, - CHAM_MATER=__chmat2, - CARA_POUTRE=_F(CARA_GEOM=nomres, - LAPL_PHI=__tempe4, - TOUT='OUI', - OPTION='CARA_GAUCHI'), ) - -# -# ================================================================== -# --- = CALCUL DE LA CONSTANTE DE TORSION SUR CHAQUE GROUPE = -# --- = ET DU CENTRE DE TORSION/CISAILLEMENT = -# --- = DES COEFFICIENTS DE CISAILLEMENT = -# ================================================================== -# - - - if GROUP_MA_BORD and GROUP_MA: - - if type(GROUP_MA_BORD)==types.StringType : - l_group_ma_bord=[GROUP_MA_BORD,] - else: - l_group_ma_bord= GROUP_MA_BORD - if type(GROUP_MA)==types.StringType : - l_group_ma=[GROUP_MA,] - else: - l_group_ma= GROUP_MA - - if NOEUD: - if type(NOEUD)==types.StringType : - l_noeud=[NOEUD,] - else: - l_noeud= NOEUD - - if len(l_group_ma)!=len(l_group_ma_bord): - ier=ier+1 - self.cr.fatal("GROUP_MA et GROUP_MA_BORD incoherents") - return ier - if NOEUD and (len(l_group_ma)!=len(l_noeud)): - ier=ier+1 - self.cr.fatal("GROUP_MA et NOEUD incoherents") - return ier - - for i in range(0,len(l_group_ma_bord)): - -# --- TRANSFORMATION DES GROUP_MA EN GROUP_NO SUR-LESQUELS -# --- ON POURRA APPLIQUER DES CONDITIONS DE TEMPERATURE IMPOSEE : -# --------------------------------------------------------- - - __nomlma=DEFI_GROUP(reuse=__nomlma, - MAILLAGE=__nomlma, - CREA_GROUP_NO=_F(GROUP_MA=l_group_ma_bord[i],) ) - - -# --- CREATION D UN MAILLAGE IDENTIQUE AU PREMIER A CECI PRES -# --- QUE LES COORDONNEES SONT EXPRIMEES DANS LE REPERE PRINCIPAL -# --- D INERTIE DONT L ORIGINE EST LE CENTRE DE GRAVITE DE LA SECTION : -# --------------------------------------------------------------- - - __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma, - REPERE=_F(TABLE=nomres, - NOM_ORIG='CDG', - GROUP_MA=l_group_ma[i], ), ) - -# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE -# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE : -# ------------------------------------------------------ - - __nomoth=AFFE_MODELE(MAILLAGE=__nomapi, - AFFE=_F(GROUP_MA=l_group_ma[i], - PHENOMENE='THERMIQUE', - MODELISATION='PLAN', ) ) - -# --- POUR LA CONSTRUCTION DU LAPLACIEN, ON DEFINIT UN -# --- PSEUDO-MATERIAU DONT LES CARACTERISTIQUES THERMIQUES SONT : -# --- LAMBDA = 1, RHO*CP = 0 : -# ---------------------- - - __nomath=DEFI_MATERIAU(THER=_F(LAMBDA=1.0, - RHO_CP=0.0, ), ) - -# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT : -# --------------------------------------------------------- - - __chmath=AFFE_MATERIAU(MAILLAGE=__nomapi, - AFFE=_F(TOUT='OUI', - MATER=__nomath ), ) - -# -# ------------------------------------------------------------ -# --- - CALCUL DE LA CONSTANTE DE TORSION PAR RESOLUTION - -# --- - D UN LAPLACIEN AVEC UN TERME SOURCE EGAL A -2 - -# --- - L INCONNUE ETANT NULLE SUR LE CONTOUR DE LA SECTION : - -# --- - LAPLACIEN(PHI) = -2 DANS LA SECTION - -# --- - PHI = 0 SUR LE CONTOUR : - -# ------------------------------------------------------------ -# -# --- ON IMPOSE LA VALEUR 0 A L INCONNUE SCALAIRE SUR LE CONTOUR -# --- DE LA SECTION -# --- ET ON A UN TERME SOURCE EGAL A -2 DANS TOUTE LA SECTION : -# ------------------------------------------------------- - - __chart1=AFFE_CHAR_THER(MODELE=__nomoth, - TEMP_IMPO=_F(GROUP_NO=l_group_ma_bord[i], - TEMP=0.0 ), - SOURCE=_F(TOUT='OUI', - SOUR=2.0 ) ) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -2 -# --- AVEC PHI = 0 SUR LE CONTOUR : -# ---------------------------------------- - - __tempe1=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - EXCIT=_F(CHARGE=__chart1, ), - SOLVEUR=_F(STOP_SINGULIER='NON',) ) - -# -# ---------------------------------------------- -# --- - CALCUL DU CENTRE DE TORSION/CISAILLEMENT - -# --- - ET DES COEFFICIENTS DE CISAILLEMENT : - -# ---------------------------------------------- -# -# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR -# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE -# --- PAR UNE FONCTION EGALE A Y : -# -------------------------- - - __fnsec1=DEFI_FONCTION(NOM_PARA='X', - VALE=(0.,0.,10.,10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', ) - - __fnsec0=DEFI_CONSTANTE(VALE=0.,) - -# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION -# --- DE LAPLACE EST PRIS EGAL A Y DANS TOUTE LA SECTION : -# -------------------------------------------------- - - __chart2=AFFE_CHAR_THER_F(MODELE=__nomoth, - TEMP_IMPO=_F(NOEUD=l_noeud[i], - TEMP=__fnsec0), - SOURCE=_F(TOUT='OUI', - SOUR=__fnsec1) ) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -Y -# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : -# ------------------------------------------------ - - __tempe2=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - EXCIT=_F(CHARGE=__chart2, ), - SOLVEUR=_F(STOP_SINGULIER='NON',) ) - -# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR -# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE -# --- PAR UNE FONCTION EGALE A Z : -# -------------------------- - - __fnsec2=DEFI_FONCTION(NOM_PARA='Y', - VALE=(0.,0.,10.,10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', ) - -# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION -# --- DE LAPLACE EST PRIS EGAL A Z DANS TOUTE LA SECTION : -# -------------------------------------------------- - - __chart3=AFFE_CHAR_THER_F(MODELE=__nomoth, - TEMP_IMPO=_F(NOEUD=l_noeud[i], - TEMP=__fnsec0), - SOURCE=_F(TOUT='OUI', - SOUR=__fnsec2) ) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -Z -# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : -# ------------------------------------------------ - - __tempe3=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - EXCIT=_F(CHARGE=__chart3, ), - SOLVEUR=_F(STOP_SINGULIER='NON',) ) - -# --- CALCUL DE LA CONSTANTE DE TORSION : -# --------------------------------- - - nomres=POST_ELEM(reuse=nomres, - MODELE=__nomoth, - CHAM_MATER=__chmath, - CARA_POUTRE=_F(CARA_GEOM=nomres, - LAPL_PHI=__tempe1, - GROUP_MA=l_group_ma[i], - OPTION='CARA_TORSION' ), ) - -# --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU -# --- CENTRE DE CISAILLEMENT/TORSION : -# ------------------------------ - - nomres=POST_ELEM(reuse=nomres, - MODELE=__nomoth, - CHAM_MATER=__chmath, - CARA_POUTRE=_F(CARA_GEOM=nomres, - LAPL_PHI_Y=__tempe2, - LAPL_PHI_Z=__tempe3, - GROUP_MA=l_group_ma[i], - LONGUEUR=LONGUEUR, - MATERIAU=MATERIAU, - LIAISON =LIAISON, - OPTION='CARA_CISAILLEMENT' ), ) - - return ier - diff --git a/Aster/Cata/cataSTA6/ops.py b/Aster/Cata/cataSTA6/ops.py deleted file mode 100644 index 66ac3a12..00000000 --- a/Aster/Cata/cataSTA6/ops.py +++ /dev/null @@ -1,246 +0,0 @@ -# -*- coding: iso-8859-1 -*- -#@ MODIF ops Cata DATE 23/10/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# Modules Python -import types -import string,linecache,os,traceback,re - -# Modules Eficas -import Accas -from Accas import ASSD - -try: - import aster - # Si le module aster est présent, on le connecte - # au JDC - import Build.B_CODE - Build.B_CODE.CODE.codex=aster -except: - pass - -def DEBUT(self,PAR_LOT,**args): - """ - Fonction sdprod de la macro DEBUT - """ - self.jdc.set_par_lot(PAR_LOT) - -def POURSUITE(self,PAR_LOT,**args): - """ - Fonction sdprod de la macro POURSUITE - """ - self.jdc.set_par_lot(PAR_LOT) - if self.codex and os.path.isfile("glob.1"): - # Le module d'execution est accessible et glob.1 est present - if hasattr(self,'fichier_init'):return - self.fichier_init='glob.1' - self.jdc.initexec() - lot,ier,lonuti,concepts=self.codex.poursu(self,1) - self.icmd=lonuti - #print "Fin de debut",ier,lot,lonuti - pos=0 - d={} - while pos+80 < len(concepts)+1: - nomres=concepts[pos:pos+8] - concep=concepts[pos+8:pos+24] - nomcmd=concepts[pos+24:pos+40] - statut=concepts[pos+40:pos+48] - if nomres[0] not in (' ','.','&') and statut != '&DETRUIT': - exec nomres+'='+string.lower(concep)+'()' in self.parent.g_context,d - pos=pos+80 - for k,v in d.items(): - self.parent.NommerSdprod(v,k) - self.g_context=d - return - else: - # Si le module d'execution n est pas accessible ou glob.1 absent on - # demande un fichier (EFICAS) - # Il faut éviter de réinterpréter le fichier à chaque appel de - # POURSUITE - if hasattr(self,'fichier_init'): - return - self.make_poursuite() - -def POURSUITE_context(self,d): - """ - Fonction op_init de la macro POURSUITE - """ - # self représente la macro POURSUITE ... - d.update(self.g_context) - # Une commande POURSUITE n'est possible qu'au niveau le plus haut - # On ajoute directement les concepts dans le contexte du jdc - # XXX est ce que les concepts ne sont pas ajoutés plusieurs fois ?? - for v in self.g_context.values(): - if isinstance(v,ASSD) : self.jdc.sds.append(v) - -def INCLUDE(self,UNITE,**args): - """ - Fonction sd_prod pour la macro INCLUDE - """ - if not UNITE : return - if hasattr(self,'unite'):return - self.unite=UNITE - - if self.jdc and self.jdc.par_lot == 'NON': - # On est en mode commande par commande - # On teste la validite de la commande avec interruption eventuelle - cr=self.report() - self.parent.cr.add(cr) - if not cr.estvide(): - raise EOFError - - self.make_include(unite=UNITE) - -def INCLUDE_context(self,d): - """ - Fonction op_init pour macro INCLUDE - """ - for k,v in self.g_context.items(): - d[k]=v - -def detruire(self,d): - """ - Cette fonction est la fonction op_init de la PROC DETRUIRE - """ - sd=[] - for mc in self["CONCEPT"]: - mcs=mc["NOM"] - if type(mcs) == types.ListType or type(mcs) == types.TupleType: - for e in mcs: - if isinstance(e,ASSD): - sd.append(e) - e=e.nom - if d.has_key(e):del d[e] - if self.jdc.sds_dict.has_key(e):del self.jdc.sds_dict[e] - else: - if isinstance(mcs,ASSD): - sd.append(mcs) - mcs=mcs.nom - if d.has_key(mcs):del d[mcs] - if self.jdc.sds_dict.has_key(mcs):del self.jdc.sds_dict[mcs] - for s in sd: - # On signale au parent que le concept s n'existe plus apres l'étape self - self.parent.delete_concept_after_etape(self,s) - -def subst_materiau(text,NOM_MATER,EXTRACTION): - """ - Cette fonction retourne un texte obtenu à partir du texte passé en argument (text) - en substituant le nom du materiau par NOM_MATER - et en réalisant les extractions spéciifées dans EXTRACTION - """ - lines=string.split(text,'\n') - if EXTRACTION: - ll=[] - regmcf=re.compile(r" *(.*) *= *_F\( *## +(.*) +(.*)") - regmcs=re.compile(r" *(.*) *= *([^ ,]*) *, *## +([^ ]*) *([^ ]*)") - regfin=re.compile(r" *\) *") - temps={};lmcf=[] - for e in EXTRACTION: - mcf=e['COMPOR'] - lmcf.append(mcf) - temps[mcf]=e['TEMP_EVAL'] - FLAG=0 - for l in lines: - m=regmcf.match(l) - if m: # On a trouve un mot cle facteur "commentarise" - if m.group(2) == "SUBST": # il est de plus substituable - if temps.has_key(m.group(3)): # Il est a substituer - ll.append(" "+m.group(3)+"=_F(") - mcf=m.group(3) - TEMP=temps[mcf] - FLAG=1 # Indique que l'on est en cours de substitution - else: # Il n est pas a substituer car il n est pas dans la liste demandee - ll.append(l) - else: # Mot cle facteur commentarise non substituable - ll.append(l) - else: # La ligne ne contient pas un mot cle facteur commentarise - if FLAG == 0: # On n est pas en cours de substitution - ll.append(l) - else: # On est en cours de substitution. On cherche les mots cles simples commentarises - m=regmcs.match(l) - if m: # On a trouve un mot cle simple commentarise - if m.group(3) == "EVAL": - ll.append(" "+m.group(1)+' = EVAL("'+m.group(4)+"("+str(TEMP)+')"),') - elif m.group(3) == "SUPPR": - pass - else: - ll.append(l) - else: # On cherche la fin du mot cle facteur en cours de substitution - m=regfin.match(l) - if m: # On l a trouve. On le supprime de la liste - FLAG=0 - del temps[mcf] - ll.append(l) - else: - ll=lines - - for l in ll: - print l - lines=ll - ll=[] - for l in lines: - l=re.sub(" *MAT *= *",NOM_MATER+" = ",l,1) - ll.append(l) - text=string.join(ll,'\n') - return text - -def INCLUDE_MATERIAU(self,NOM_AFNOR,TYPE_MODELE,VARIANTE,TYPE_VALE,NOM_MATER, - EXTRACTION,INFO,**args): - """ - Fonction sd_prod pour la macro INCLUDE_MATERIAU - """ - mat=string.join((NOM_AFNOR,'_',TYPE_MODELE,'_',VARIANTE,'.',TYPE_VALE),'') - if not hasattr(self,'mat') or self.mat != mat or self.nom_mater != NOM_MATER : - # On récupère le répertoire des matériaux dans les arguments - # supplémentaires du JDC - rep_mat=self.jdc.args.get("rep_mat","NOrep_mat") - f=os.path.join(rep_mat,mat) - self.mat=mat - self.nom_mater=NOM_MATER - if not os.path.isfile(f): - del self.mat - self.make_contexte(f,"#Texte sans effet pour reinitialiser le contexte a vide\n") - raise "Erreur sur le fichier materiau: "+f - # Les materiaux sont uniquement disponibles en syntaxe Python - # On lit le fichier et on supprime les éventuels \r - text=string.replace(open(f).read(),'\r\n','\n') - # On effectue les substitutions necessaires - self.prefix=NOM_MATER - self.text= subst_materiau(text,NOM_MATER,EXTRACTION) - if INFO == 2: - print "INCLUDE_MATERIAU: ", self.mat,' ',NOM_MATER,'\n' - print self.text - # on execute le texte fourni dans le contexte forme par - # le contexte de l etape pere (global au sens Python) - # et le contexte de l etape (local au sens Python) - # Il faut auparavant l'enregistrer aupres du module linecache (utile pour nommage.py) - linecache.cache[f]=0,0,string.split(self.text,'\n'),f - if self.jdc.par_lot == 'NON': - # On est en mode commande par commande - # On teste la validite de la commande avec interruption eventuelle - cr=self.report() - self.parent.cr.add(cr) - if not cr.estvide(): - raise EOFError - # Et en plus il faut executer la fonction ops014 avant les sous - # commandes car le prefixe PRFXCO doit etre initialise dans le Fortran - self.codex.opsexe(self,0,-1,-self.definition.op) - - self.make_contexte(f,self.text) - diff --git a/Aster/Cata/cataSTA6/pre_gmsh_ops.py b/Aster/Cata/cataSTA6/pre_gmsh_ops.py deleted file mode 100644 index 8ff4170e..00000000 --- a/Aster/Cata/cataSTA6/pre_gmsh_ops.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- -#@ MODIF pre_gmsh_ops Macro DATE 11/06/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def pre_gmsh_ops(self,UNITE_MAILLAGE,UNITE_GMSH,MODI_QUAD,**args): - """ - Ecriture de la macro PRE_GMSH - """ - import os - from Macro.ajout_quad_gmsh import ajout_quad_gmsh - ier=0 - - PRE_GMSH_LECT =self.get_cmd('PRE_GMSH_LECT') - - # La macro compte pour 1 dans la numerotation des commandes - self.icmd=1 - - if MODI_QUAD=='OUI': - cur_dir=os.getcwd() - unit = str(UNITE_GMSH) - nomFichierGmsh = cur_dir+'/fort.'+unit - nomFichierMail = cur_dir+'/sortie' - -# récupération du fichier .msh complet mis dans la string 'texte' - - fproc=open(nomFichierGmsh,'r') - texte=fproc.read() - fproc.close() - - resu=ajout_quad_gmsh(texte) - if not resu: - ier=ier+1 - self.cr.fatal("Erreur dans la methode python de transformation mailles lineaires-quadratiques") - return ier - - fsort=open(nomFichierMail,'w') - fsort.write(resu) - fsort.close() - os.system('cp '+nomFichierMail+' '+nomFichierGmsh) - - PRE_GMSH_LECT(UNITE_MAILLAGE = UNITE_MAILLAGE, - UNITE_GMSH = UNITE_GMSH ) - - return ier - diff --git a/Aster/Cata/cataSTA7/Macro/__init__.py b/Aster/Cata/cataSTA7/Macro/__init__.py deleted file mode 100644 index 4aebb58b..00000000 --- a/Aster/Cata/cataSTA7/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/cataSTA7/Macro/ajout_quad_gmsh.py b/Aster/Cata/cataSTA7/Macro/ajout_quad_gmsh.py deleted file mode 100644 index e0d64393..00000000 --- a/Aster/Cata/cataSTA7/Macro/ajout_quad_gmsh.py +++ /dev/null @@ -1,252 +0,0 @@ -#@ 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 deleted file mode 100644 index 6d4e7618..00000000 --- a/Aster/Cata/cataSTA7/Macro/calc_precont_ops.py +++ /dev/null @@ -1,468 +0,0 @@ -#@ 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 deleted file mode 100644 index 8608ddec..00000000 --- a/Aster/Cata/cataSTA7/Macro/defi_cable_bp_ops.py +++ /dev/null @@ -1,324 +0,0 @@ -#@ MODIF defi_cable_bp_ops Macro DATE 14/11/2006 AUTEUR VIVAN 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 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, types - 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'] - - if type(GROUP_MA_BETON) in [types.TupleType, types.ListType]: gma = list(GROUP_MA_BETON) - else: gma = [ GROUP_MA_BETON ] - gma.insert(0, __CAB) - - motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': gma, 'GROUP_MA_AXE': __CAB, 'NOM': __NOM1}]} - if i.has_key('MAILLE') == 1: - 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'] - - if type(GROUP_MA_BETON) in [types.TupleType, types.ListType]: gma = list(GROUP_MA_BETON) - else: gma = [ GROUP_MA_BETON ] - gma.insert(0, __CAB) - - motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': gma, 'GROUP_MA_AXE': __CAB, 'NOM': __NOM2}]} - - if i.has_key('MAILLE') == 1: - 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 deleted file mode 100644 index f5e4df29..00000000 --- a/Aster/Cata/cataSTA7/Macro/defi_part_feti_ops.py +++ /dev/null @@ -1,182 +0,0 @@ -#@ 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 deleted file mode 100644 index 1462a5ec..00000000 --- a/Aster/Cata/cataSTA7/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/cataSTA7/Macro/fiabilite_mefisto.py b/Aster/Cata/cataSTA7/Macro/fiabilite_mefisto.py deleted file mode 100644 index 3f820843..00000000 --- a/Aster/Cata/cataSTA7/Macro/fiabilite_mefisto.py +++ /dev/null @@ -1,448 +0,0 @@ -#@ 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 deleted file mode 100644 index 1e9d6e49..00000000 --- a/Aster/Cata/cataSTA7/Macro/impr_fonction_ops.py +++ /dev/null @@ -1,400 +0,0 @@ -#@ 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 deleted file mode 100644 index ef5872f8..00000000 --- a/Aster/Cata/cataSTA7/Macro/impr_table_ops.py +++ /dev/null @@ -1,247 +0,0 @@ -#@ 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 deleted file mode 100644 index 0285487f..00000000 --- a/Aster/Cata/cataSTA7/Macro/lire_fonction_ops.py +++ /dev/null @@ -1,268 +0,0 @@ -#@ 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 deleted file mode 100644 index bb40a907..00000000 --- a/Aster/Cata/cataSTA7/Macro/lire_inte_spec_ops.py +++ /dev/null @@ -1,125 +0,0 @@ -#@ 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 deleted file mode 100644 index 81567113..00000000 --- a/Aster/Cata/cataSTA7/Macro/lire_table_ops.py +++ /dev/null @@ -1,177 +0,0 @@ -#@ 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 deleted file mode 100644 index 16625395..00000000 --- a/Aster/Cata/cataSTA7/Macro/macr_adap_mail_ops.py +++ /dev/null @@ -1,727 +0,0 @@ -#@ 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 deleted file mode 100644 index fda98363..00000000 --- a/Aster/Cata/cataSTA7/Macro/macr_ascouf_calc_ops.py +++ /dev/null @@ -1,677 +0,0 @@ -#@ 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 - DEFI_FICHIER(ACTION='LIBERER',UNITE=19) - DEFI_FICHIER(ACTION='LIBERER',UNITE=20) - EXEC_LOGICIEL( LOGICIEL = logiel , - ARGUMENT = ( _F(NOM_PARA=nomFichierDATG), - _F(NOM_PARA=nomFichierGIBI), ), ) -# PRE_GIBI - PRE_GIBI() - -# LIRE_MAILLAGE - __nomres=LIRE_MAILLAGE(INFO=INFO) - -# DEFI_GROUP 1 - - motscles={} - l_CREA_GROUP_NO=[] - l_CREA_GROUP_NO.append('BORD1') - l_CREA_GROUP_NO.append('CLGV') - l_CREA_GROUP_NO.append('BORD2') - l_CREA_GROUP_NO.append('PEAUINT') - l_CREA_GROUP_NO.append('PEAUEXT') - -# cas des fissures axisymetriques - if FISS_COUDE!=None: - if FISS_COUDE['AXIS']=='OUI': - motscles['CREA_GROUP_MA']=[] - motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS', - NOM = 'MAIL_ORI', - POSITION = 'INIT' , ),) - -# conversion des groupes de mailles en groupes du bloc fissure - if FISS_COUDE!=None: - if SYME == 'ENTIER': - l_CREA_GROUP_NO.append('NOLIG1') - l_CREA_GROUP_NO.append('FACE1') - l_CREA_GROUP_NO.append('NOLIG2') - l_CREA_GROUP_NO.append('FACE2') - l_CREA_GROUP_NO.append('FONDFISS') - - motscles['CREA_GROUP_NO']=[] - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=tuple(l_CREA_GROUP_NO))) - -# conversion des groupes de mailles en groupes de noeuds pour les -# ligaments des sous-ep. - if MCL_SOUS_EPAIS!=None: - issep=0 - for ssep in MCL_SOUS_EPAIS: - issep=issep+1 - if ssep['TYPE']=='ELLI': - for k in range(2*NLX[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='CIR'+chtmp - ch2='ICI'+chtmp - motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, - GROUP_MA = ch1,),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'IPCEN'+str(issep), - GROUP_MA = 'PCENT'+str(issep),),) - for k in range(2*NLY[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='LON'+chtmp - ch2='ILO'+chtmp - motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, - GROUP_MA = ch1,),) - for k in range(2*NLX[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='ICI'+chtmp - ch2='OCI'+chtmp - ch3='ECI'+chtmp - motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, - INTERSEC = ('PEAUEXT',ch1),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = ch3, - INTERSEC = ('PEAUINT',ch1),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'OPCEN'+str(issep), - INTERSEC = ('PEAUEXT','IPCEN'+str(issep),),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'EPCEN'+str(issep), - INTERSEC = ('PEAUINT','IPCEN'+str(issep),),),) - for k in range(2*NLY[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='ILO'+chtmp - ch2='OLO'+chtmp - ch3='ELO'+chtmp - motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, - INTERSEC = ('PEAUEXT',ch1),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = ch3, - INTERSEC = ('PEAUINT',ch1),),) - for k in range(2*NLX[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='CIR'+chtmp - ch2='ICI'+chtmp - ch3='OCI'+chtmp - ch4='ECI'+chtmp - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = ch1, - GROUP_NO = ch2, - GROUP_NO_ORIG = ch3, - GROUP_NO_EXTR = ch4, - PRECISION = PRECIS, - CRITERE = CRITER,),) - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = 'PCENT'+str(issep), - GROUP_NO = 'IPCEN'+str(issep), - GROUP_NO_ORIG = 'OPCEN'+str(issep), - GROUP_NO_EXTR = 'EPCEN'+str(issep), - PRECISION = PRECIS, - CRITERE = CRITER,),) - for k in range(2*NLY[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='LON'+chtmp - ch2='ILO'+chtmp - ch3='OLO'+chtmp - ch4='ELO'+chtmp - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = ch1, - GROUP_NO = ch2, - GROUP_NO_ORIG = ch3, - GROUP_NO_EXTR = ch4, - PRECISION = PRECIS, - CRITERE = CRITER,),) -# 1/ noms intermediaires des groupes de noeuds representant les ligaments -# des sections: TU,MI,GV et sous-ep. - for k in range(8): - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR3[k]+str(issep), - GROUP_MA = CAR6[k]+str(issep),),) - - for k in range(3): - if SYME == 'ENTIER' or k!=2: - for j in range(8): - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR3[j]+SECT[k], - GROUP_MA = CAR6[j]+SECT[k],),) - -# 2/ determination et nommage des noeuds origine et extremite des groupes de noeuds -# representant les ligaments de la ou des sections: sous-ep. - issep=0 - for ssep in MCL_SOUS_EPAIS: - issep=issep+1 - for k in range(8): - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR4[k]+str(issep), - INTERSEC = ('PEAUEXT',CAR3[k]+str(issep),),),) - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR5[k]+str(issep), - INTERSEC = ('PEAUINT',CAR3[k]+str(issep),),),) -# 3/ nommage final des groupes de noeuds representant les ligaments -# de la ou des sections: sous-ep. - for k in range(8): - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = CAR6[k]+str(issep), - GROUP_NO = CAR3[k]+str(issep), - GROUP_NO_ORIG = CAR4[k]+str(issep), - GROUP_NO_EXTR = CAR5[k]+str(issep), - PRECISION = PRECIS, - CRITERE = CRITER,),) - -# 4/ determination et nommage des noeuds origine et extremite des groupes de noeuds -# representant les ligaments des sections: TU,MI,GV - for k in range(3): - if SYME == 'ENTIER' or k!=2: - for j in range(8): - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR4[j]+SECT[k], - INTERSEC = ('PEAUEXT',CAR3[j]+SECT[k],),),) - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR5[j]+SECT[k], - INTERSEC = ('PEAUINT',CAR3[j]+SECT[k],),),) -# 5/ nommage final des groupes de noeuds representant les ligaments des sections: TU,MI,GV - for j in range(8): - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = CAR6[j]+SECT[k], - GROUP_NO = CAR3[j]+SECT[k], - GROUP_NO_ORIG = CAR4[j]+SECT[k], - GROUP_NO_EXTR = CAR5[j]+SECT[k], - PRECISION = PRECIS, - CRITERE = CRITER,),) - - - __nomres=DEFI_GROUP(reuse =__nomres, - MAILLAGE=__nomres, - **motscles ) -# -# DEFI_GROUP 2 - if FISS_COUDE!=None: -# creation des groupes petit axe et grand axe fissure par -# intersection de groupes existants - motscles={} - motscles['CREA_GROUP_NO']=[] - l_peau=[] - l_intersec=[] - if POSIT == 'DEB_INT': - l_peau.append('PEAUINT') - else: - l_peau.append('PEAUEXT') - - if SYME == 'ENTIER' : - l_intersec.append('FACE1') - motscles['CREA_GROUP_NO'].append(_F(NOM = 'P_AXE_1', - INTERSEC = ('NOLIG1','FACE1'),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'G_AXE_1', - INTERSEC = tuple(l_peau+l_intersec),),) - l_intersec=[] - l_intersec.append('FACE2') - motscles['CREA_GROUP_NO'].append(_F(NOM = 'P_AXE_2', - INTERSEC = ('NOLIG2','FACE2'),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'G_AXE_2', - INTERSEC = tuple(l_peau+l_intersec),),) - - __nomres=DEFI_GROUP(reuse =__nomres, - MAILLAGE=__nomres, - **motscles ) - -# 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 - self.DeclareOut('nomre2',self.sd) - motscles={} - motscles['CREA_POI1']=[] - motscles['CREA_POI1'].append(_F(NOM_GROUP_MA='P1', - GROUP_NO='P1'),) - if TYPBOL == None : - motscles['CREA_POI1'].append(_F(NOM_GROUP_MA='P2', - GROUP_NO='P2'),) - nomre2=CREA_MAILLAGE( MAILLAGE=__nomres, - **motscles) -# IMPRESSSION - if IMPRESSION!=None: - if IMPRESSION.__class__.__name__ !='MCList' : IMPRESSION =[IMPRESSION,] - for impr in IMPRESSION : -# - motscles={} - if impr['FORMAT']=='IDEAS' : motscles['VERSION'] =impr['VERSION'] - if impr['FORMAT']=='CASTEM' : motscles['NIVE_GIBI'] =impr['NIVE_GIBI'] - if impr['UNITE']!=None : motscles['UNITE'] =impr['UNITE'] - impr_resu = _F( MAILLAGE = nomre2,) -# - IMPR_RESU( RESU = impr_resu, - FORMAT= impr['FORMAT'],**motscles) - - - - return ier - - diff --git a/Aster/Cata/cataSTA7/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA7/Macro/macr_aspic_calc_ops.py deleted file mode 100644 index 5bd34c5e..00000000 --- a/Aster/Cata/cataSTA7/Macro/macr_aspic_calc_ops.py +++ /dev/null @@ -1,822 +0,0 @@ -#@ 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 deleted file mode 100644 index bb872ef0..00000000 --- a/Aster/Cata/cataSTA7/Macro/macr_aspic_mail_ops.py +++ /dev/null @@ -1,941 +0,0 @@ -#@ MODIF macr_aspic_mail_ops Macro DATE 04/10/2006 AUTEUR CIBHHPD L.SALMONA -# -*- 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 - # Correction necessaire dans le cas theta grand (cf. AL9679) - if ( abs(STHETA) > 0.8) : - DXY = sqrt(pow(XD,2) + pow(YD,2) ) - XN = XN * DXY/XD0 - YN = YN * DXY/XD0 - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - D0N0 = sqrt( pow((XA0 - XN0),2) + pow((ZA0 - ZN0),2) ) - DN = sqrt( pow((XA - XN),2) + pow((YA - YN),2) + pow((ZA - ZN),2) ) - RAPP = D0N0 / DN - ECART = (ECART + (RAPP - 1.0) * D0N0)/2 - A = A + ECART - - elif (ITYPSO == 2) : -# PIQUAGE TYPE 2 - if (POSI == 'DROIT') : -# PIQUAGE DROIT - SGAMMI = STHETA * ((DET1/2.0) - EPT1)/(DEC/2.0) - XI = ((DET1/2.0) - EPT1) * CTHETA - YI = ((DET1/2.0) - EPT1) * STHETA - ZI = (DEC/2.0) * sqrt(1.0 - pow(SGAMMI,2)) - XI0 = (DET1/2.0) -EPT1 - YI0 = 0.0 - ZI0 = (DEC/2.0) - - SGAMMA = STHETA * (DET1/2.0)/((DEC/2.0) -EPC) - YA = (DET1/2.0) * STHETA - ZA = ((DEC/2.0) - EPC) * sqrt(1.0 - pow(SGAMMA,2)) - TGALP = H / EPC - EPSIL = STHETA * TGALP - PHI = (EPSIL * ZA) - YA - DELTA = pow(PHI,2) - (1.0 + pow(EPSIL,2))*(pow(PHI,2) - pow((DEC/2.0),2)*pow(EPSIL,2)) - if (STHETA > 0) : - YD = (sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) - else : - YD = (-1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) - - ZD = sqrt( pow((DEC/2.0),2) - pow(YD,2) ) - if ( (abs(THETA - 0.0) < 1.0e-3) or - (abs(THETA - 180.0) < 1.0e-3) or - (abs(THETA + 180.0) < 1.0e-3) or - (abs(THETA + 90.0) < 1.0e-3) or - (abs(THETA - 90.0) < 1.0e-3) ) : - XD = CTHETA * ((DET1/2.0) + H) - else : - XD = YD / (tan(THETA*pi/180.0)) - - XD0 = (DET1/2.0) + H - YD0 = 0.0 - ZD0 = (DEC/2.0) - - if (TFISS == 'DEB_EXT') : - XN0 = XD0 - A - YN0 = 0.0 - ZN0 = ZI0 - XN = XN0 * CTHETA - YN = XN0 * STHETA - DZID = abs(ZI - ZD) - DXYID = sqrt( pow((XD - XI),2) + pow((YD - YI),2) ) - DXYIN = sqrt( pow((XN - XI),2) + pow((YN - YI),2) ) - DZIN = (DXYIN * DZID) / DXYID - ZN = ZI - DZIN - D0N0 = sqrt( pow((XD0 - XN0),2) + pow((ZD0 - ZN0),2) ) - DN = sqrt( pow((XD - XN),2) + pow((YD - YN),2) + pow((ZD - ZN),2) ) - RAPP = D0N0 / DN - ECART = DN - D0N0 - A = A - ECART - - if (TFISS == 'DEB_INT') : - XN0 = XI0 + A - YN0 = 0.0 - ZN0 = ZI0 - XN = XN0 * CTHETA - YN = XN0 * STHETA - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - I0N0 = sqrt( pow((XI0 - XN0),2) + pow((ZI0 - ZN0),2) ) - IN = sqrt( pow((XI - XN),2) + pow((YI - YN),2) + pow((ZI - ZN),2) ) - RAPP = I0N0 / IN - ECART = I0N0 * ( 1.0 - RAPP ) - A = A - ECART - - elif (POSI == 'INCLINE') : -# PIQUAGE INCLINE - TGALPHA = SALPHA/CALPHA - REPB = (DEC/2.0) + JEU + (EPT1*TGALPHA) - SGAMB = (STHETA * DET1/2.0 ) / REPB - CGAMB = sqrt(1.0 - pow(SGAMB,2)) - XB = (DET1/2.0) * CTHETA - YB = (DET1/2.0) * STHETA - ZB = ( (DEC/2.0) + JEU + (EPT1*TGALPHA) ) * CGAMB - XB0 = (DET1/2.0) - YB0 = 0.0 - ZB0 = (DEC/2.0) + JEU + (EPT1*TGALPHA) -# - RIT1 = (DET1/2.0) - EPT1 - REPG = (DEC/2.0) + JEU - SGAMG = ((STHETA ) * RIT1) / REPG - CGAMG = sqrt(1.0 - pow(SGAMG,2)) - XG = RIT1 * CTHETA - YG = RIT1 * STHETA - ZG = ((DEC/2.0) + JEU) * CGAMG - XG0 = RIT1 - YG0 = 0.0 - ZG0 = (DEC/2.0) + JEU -# - if (TFISS == 'DEB_INT') : - XN0 = XG0 + A*CALPHA - YN0 = 0.0 - ZN0 = ZG0 + A*SALPHA - XN = XN0 * CTHETA - YN = XN0 * STHETA - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - G0N0 = sqrt( pow((XG0 - XN0),2) + pow((ZG0 - ZN0),2) ) - GN = sqrt( pow((XG - XN),2) + pow((YG - YN),2) + pow((ZG - ZN),2) ) - RAPP = G0N0 / GN - ECART = (RAPP - 1.0) * G0N0 - A = A + ECART - - if (TFISS == 'DEB_EXT') : - XN0 = XB0 - A*CALPHA - YN0 = 0.0 - ZN0 = ZB0 - A*SALPHA - XN = XN0 * CTHETA - YN = XN0 * STHETA - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - B0N0 = sqrt( pow((XB0 - XN0),2) + pow((ZB0 - ZN0),2) ) - BN = sqrt( pow((XB - XN),2) + pow((YB - YN),2) + pow((ZB - ZN),2) ) - RAPP = B0N0 / BN - ECART = (RAPP - 1.0) * B0N0 - A = A + ECART - - 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') - DEFI_FICHIER =self.get_cmd('DEFI_FICHIER') - -# La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - TYPELE = TYPE_ELEM - NIVMAG = EXEC_MAILLAGE['NIVE_GIBI'] -# -# --- raffinement maillage --- -# - TYPMAI = RAFF_MAIL - GROS = (TYPMAI=='GROS') - if GROS : NBAZIT = 40 - else : NBAZIT = 48 -# -# --- caracteristiques de la tubulure --- -# - EPT1 = TUBULURE['E_BASE' ] - DET1 = TUBULURE['DEXT_BASE'] - D1 = TUBULURE['L_BASE' ] - D2 = TUBULURE['L_CHANF' ] - EPT2 = TUBULURE['E_TUBU' ] - DET2 = TUBULURE['DEXT_TUBU'] - ZMAX = TUBULURE['Z_MAX' ] - TYPSOU= TUBULURE['TYPE' ] - DPENE = TUBULURE['L_PENETR' ] - if TYPSOU=='TYPE_2' and DPENE>0.0 : - 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) -# - DEFI_FICHIER(ACTION='LIBERER',UNITE=19) - DEFI_FICHIER(ACTION='LIBERER',UNITE=20) - 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 deleted file mode 100644 index a829425f..00000000 --- a/Aster/Cata/cataSTA7/Macro/macr_cabri_calc_ops.py +++ /dev/null @@ -1,542 +0,0 @@ -#@ 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 deleted file mode 100644 index 7d673257..00000000 --- a/Aster/Cata/cataSTA7/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/cataSTA7/Macro/macr_cabri_mail_ops.py b/Aster/Cata/cataSTA7/Macro/macr_cabri_mail_ops.py deleted file mode 100644 index dbafafe0..00000000 --- a/Aster/Cata/cataSTA7/Macro/macr_cabri_mail_ops.py +++ /dev/null @@ -1,461 +0,0 @@ -#@ 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 deleted file mode 100644 index de567ca7..00000000 --- a/Aster/Cata/cataSTA7/Macro/macr_cara_poutre_ops.py +++ /dev/null @@ -1,815 +0,0 @@ -#@ 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 deleted file mode 100644 index 8bfada76..00000000 --- a/Aster/Cata/cataSTA7/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/cataSTA7/Macro/macr_fiab_impr_ops.py b/Aster/Cata/cataSTA7/Macro/macr_fiab_impr_ops.py deleted file mode 100644 index 08ac8d10..00000000 --- a/Aster/Cata/cataSTA7/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/cataSTA7/Macro/macr_fiabilite_ops.py b/Aster/Cata/cataSTA7/Macro/macr_fiabilite_ops.py deleted file mode 100644 index 62a10eba..00000000 --- a/Aster/Cata/cataSTA7/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/cataSTA7/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA7/Macro/macr_lign_coupe_ops.py deleted file mode 100644 index 91bbca8d..00000000 --- a/Aster/Cata/cataSTA7/Macro/macr_lign_coupe_ops.py +++ /dev/null @@ -1,174 +0,0 @@ -#@ 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 deleted file mode 100644 index 180f8459..00000000 --- a/Aster/Cata/cataSTA7/Macro/macr_recal_ops.py +++ /dev/null @@ -1,161 +0,0 @@ -#@ 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 deleted file mode 100644 index 34595923..00000000 --- a/Aster/Cata/cataSTA7/Macro/macro_matr_ajou_ops.py +++ /dev/null @@ -1,260 +0,0 @@ -#@ 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 deleted file mode 100644 index ee260dca..00000000 --- a/Aster/Cata/cataSTA7/Macro/macro_matr_asse_ops.py +++ /dev/null @@ -1,155 +0,0 @@ -#@ MODIF macro_matr_asse_ops Macro DATE 05/07/2006 AUTEUR CIBHHPD L.SALMONA -# -*- 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 == 'RIGI_MECA_HYST': - if (not lrigel): - UTMESS('F', "MACRO_MATR_ASSE", "POUR CALCULER RIGI_MECA_HYST, IL FAUT AVOIR CALCULE RIGI_MECA AUPARAVANT (DANS LE MEME APPEL)") - motscles['RIGI_MECA'] =rigel - if option == 'AMOR_MECA': - if (not lrigel or not lmasel): - 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 deleted file mode 100644 index 042dd411..00000000 --- a/Aster/Cata/cataSTA7/Macro/macro_miss_3d_ops.py +++ /dev/null @@ -1,75 +0,0 @@ -#@ 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 deleted file mode 100644 index 9134f81b..00000000 --- a/Aster/Cata/cataSTA7/Macro/macro_mode_meca_ops.py +++ /dev/null @@ -1,138 +0,0 @@ -#@ 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 deleted file mode 100644 index 1411934f..00000000 --- a/Aster/Cata/cataSTA7/Macro/macro_proj_base_ops.py +++ /dev/null @@ -1,62 +0,0 @@ -#@ 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 deleted file mode 100644 index 61ccdc9d..00000000 --- a/Aster/Cata/cataSTA7/Macro/reca_algo.py +++ /dev/null @@ -1,271 +0,0 @@ -#@ MODIF reca_algo Macro DATE 05/07/2006 AUTEUR CIBHHPD L.SALMONA -# -*- 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 - try: - epsilon = Numeric.dot(gradient,gradient)/Numeric.dot(gradient_init,gradient_init) - except: - self.cr.fatal(" Erreur dans le test de convergence de MACR_RECAL") - return - 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 deleted file mode 100644 index 00ad62d2..00000000 --- a/Aster/Cata/cataSTA7/Macro/reca_interp.py +++ /dev/null @@ -1,180 +0,0 @@ -#@ 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 deleted file mode 100644 index 0691b785..00000000 --- a/Aster/Cata/cataSTA7/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/cataSTA7/Macro/recal.py b/Aster/Cata/cataSTA7/Macro/recal.py deleted file mode 100644 index 4de35252..00000000 --- a/Aster/Cata/cataSTA7/Macro/recal.py +++ /dev/null @@ -1,396 +0,0 @@ -#@ MODIF recal Macro DATE 05/07/2006 AUTEUR CIBHHPD L.SALMONA -# -*- 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 verif_RESU_EXP(RESU_EXP): - # RESU_EXP doit etre une liste de tableaux Numeric de taille Nx2 - # pour éviter l'arret du programme - txt="" - for index,resu in enumerate(RESU_EXP): - if (isinstance(resu,Numeric.ArrayType)): - if (len(Numeric.shape(resu)) != 2): - txt="\nLa courbe experimentale no " +str(index+1)+ " n'est pas un tableau de N lignes et 2 colonnes." - else: - if (Numeric.shape(resu)[1] != 2): - txt="\nLa courbe experimentale no " +str(index+1)+ " n'est pas un tableau de N lignes et 2 colonnes." - else: - txt="\nLa courbe experimentale no " +str(index+1)+ " n'est pas un tableau Numeric." - return txt - -def compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP): - # POIDS et Y sont deux arguments qui doivent avoir la meme dimension - # pour éviter l'arret du programme - txt="" - if( len(POIDS) != len(RESU_EXP)): - txt="\nVous avez entré " +str(len(POIDS))+ " poids et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de poids que de résultats expérimentaux" - return txt - - -def verif_fichier(UL,PARAMETRES,REPONSES): -#On verifie les occurences des noms des PARAMETRES et REPONSES -#dans le fichier de commande ASTER - txt="" - fichier = open('fort.'+str(UL),'r') - fic=fichier.read() - for i in range(len(PARAMETRES)): - if((string.find(fic,PARAMETRES[i][0])==-1) or ((string.find(fic,PARAMETRES[i][0]+'=')==-1) and (string.find(fic,PARAMETRES[i][0]+' ')==-1))): - txt=txt + "\nLe paramètre "+PARAMETRES[i][0]+" que vous avez entré pour la phase d'optimisation n'a pas été trouvé dans votre fichier de commandes ASTER" - for i in range(len(REPONSES)): - if((string.find(fic,REPONSES[i][0])==-1) or ((string.find(fic,REPONSES[i][0]+'=')==-1) and (string.find(fic,REPONSES[i][0]+' ')==-1))): - txt=txt + "\nLa réponse "+REPONSES[i][0]+" que vous avez entrée pour la phase d'optimisation n'a pas été trouvée dans votre fichier de commandes ASTER" - return txt - - -def verif_valeurs_des_PARAMETRES(PARAMETRES): -#On verifie que pour chaque PARAMETRES de l'optimisation -# les valeurs entrées par l'utilisateur sont telles que : -# val_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 le type et la dimension des résultats expérimentaux - texte = texte + verif_RESU_EXP(RESU_EXP) - #on verifie que l'on a autant de réponses que de résultats expérimentaux - texte = texte + compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP) - #on verifie que l'on a autant de poids que de résultats expérimentaux - texte = texte + compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP) - - #on verifie les types des arguments de chaque sous liste de PARAMETRES et REPONSES - #verification du type stringet type float des arguments de PARAMETRES - for i in range(len(PARAMETRES)): - texte = texte + erreur_de_type(1,PARAMETRES[i][0]) - for k in [1,2,3]: - texte = texte + erreur_de_type(2,PARAMETRES[i][k]) - - #verification du type string pour les arguments de REPONSES - for i in range(len(REPONSES)): - for j in range(len(REPONSES[i])): - texte = texte + erreur_de_type(1,REPONSES[i][j]) - - #verification du fichier de commndes ASTER - texte = texte + verif_fichier(UL,PARAMETRES,REPONSES) - - #verifiaction des valeurs des PARAMETRES entrées par l'utilisteur - texte = texte + verif_valeurs_des_PARAMETRES(PARAMETRES) - - #verifiaction des unités logiques renseignées par l'utilisateur - texte = texte + verif_UNITE(GRAPHIQUE,UNITE_RESU) - - return texte - - diff --git a/Aster/Cata/cataSTA7/Macro/stanley_ops.py b/Aster/Cata/cataSTA7/Macro/stanley_ops.py deleted file mode 100644 index 1e4c9031..00000000 --- a/Aster/Cata/cataSTA7/Macro/stanley_ops.py +++ /dev/null @@ -1,75 +0,0 @@ -#@ 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 deleted file mode 100644 index e5107f5c..00000000 --- a/Aster/Cata/cataSTA7/Macro/test_fichier_ops.py +++ /dev/null @@ -1,279 +0,0 @@ -#@ 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 deleted file mode 100644 index ab98c3be..00000000 --- a/Aster/Cata/cataSTA7/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -import os,sys -sys.modules["Cata"]=sys.modules[__name__] -rep_macro = os.path.dirname(__file__) -sys.path.insert(0,rep_macro) -rep_macro=os.path.join(rep_macro,'Macro') -sys.path.insert(0,rep_macro) - - -#compatibilite avec V9 -import Noyau -import Accas -class ASSD(Accas.ASSD,Noyau.AsBase):pass -class GEOM(Accas.GEOM,ASSD):pass -class formule(Accas.formule,ASSD):pass -Accas.ASSD=ASSD -Accas.GEOM=GEOM -Accas.formule=formule -#fin compatibilite - -from cata import * - -from math import ceil -from Extensions import param2 -pi=param2.Variable('pi',pi) - diff --git a/Aster/Cata/cataSTA7/cata.py b/Aster/Cata/cataSTA7/cata.py deleted file mode 100644 index c6f11df7..00000000 --- a/Aster/Cata/cataSTA7/cata.py +++ /dev/null @@ -1,21842 +0,0 @@ -#& 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: V6_main $" -__Id__="$Id: cata.py,v 1.6 2009-06-19 08:36:49 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 - 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 -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. -# ====================================================================== -# 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 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 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 09/11/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 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',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_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. -# ====================================================================== -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. -# ====================================================================== -# 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 05/12/2006 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", -# -# 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_9", - into=("V7_9", "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 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 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 05/12/2006 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", - 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_9", - into=("V7_9", "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 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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. -# ====================================================================== -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/materiau/18MND5_REF_A.NOMI b/Aster/Cata/cataSTA7/materiau/18MND5_REF_A.NOMI deleted file mode 100755 index 0a4989c6..00000000 --- a/Aster/Cata/cataSTA7/materiau/18MND5_REF_A.NOMI +++ /dev/null @@ -1,135 +0,0 @@ -# MODIF DATE 24/10/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -#------------------------------------------------------ -# LAMBDA EN FONCTION DE LA TEMPéRATURE -# -coef0=1.E ## UNIT -3 -_A0=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,37.7 *coef0, - 50. ,38.6 *coef0, - 100. ,39.9 *coef0, - 150. ,40.5 *coef0, - 200. ,40.5 *coef0, - 250. ,40.2 *coef0, - 300. ,39.5 *coef0, - 350. ,38.7 *coef0, - 400. ,37.7 *coef0, - 450. ,36.6 *coef0, - 500. ,35.5 *coef0, - 550. ,34.3 *coef0, - 600. ,33.0 *coef0, - 650. ,31.8 *coef0, - )) - -# -# RHO_CP EN FONCTION DE LA TEMPéRATURE -# -coef1=1.E ## UNIT -9 -_A1=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,3.49E+6 *coef1, - 50. ,3.59E+6 *coef1, - 100. ,3.77E+6 *coef1, - 150. ,3.93E+6 *coef1, - 200. ,4.09E+6 *coef1, - 250. ,4.27E+6 *coef1, - 300. ,4.42E+6 *coef1, - 350. ,4.60E+6 *coef1, - 400. ,4.80E+6 *coef1, - 450. ,5.04E+6 *coef1, - 500. ,5.35E+6 *coef1, - 550. ,5.69E+6 *coef1, - 600. ,6.10E+6 *coef1, - 650. ,6.65E+6 *coef1, - )) - -# -# E EN FONCTION DE LA TEMPéRATURE -# -coef2=1.E ## UNIT -6 -_A2=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0. ,205.E+9 *coef2, - 20. ,204.E+9 *coef2, - 50. ,203.E+9 *coef2, - 100. ,200.E+9 *coef2, - 150. ,197.E+9 *coef2, - 200. ,193.E+9 *coef2, - 250. ,189.E+9 *coef2, - 300. ,185.E+9 *coef2, - 350. ,180.E+9 *coef2, - 400. ,176.E+9 *coef2, - 450. ,171.E+9 *coef2, - 500. ,166.E+9 *coef2, - 550. ,160.E+9 *coef2, - 600. ,155.E+9 *coef2, - )) - -# -# NU EN FONCTION DE LA TEMPéRATURE -# - -_A3=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT', - VALE=( 0., 0.3, - )) - -# -# ALPHA EN FONCTION DE LA TEMPéRATURE -# - -_A4=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( 20., 11.22E-6, 50., 11.45E-6, - 100., 11.79E-6, 150., 12.14E-6, - 200., 12.47E-6, 250., 12.78E-6, - 300., 13.08E-6, 350., 13.40E-6, - 400., 13.72E-6, 450., 14.02E-6, - )) - - -MAT=DEFI_MATERIAU( - THER_NL=_F( ## SUBST THER - RHO_CP = _A1, ## EVAL _A1 - LAMBDA = _A0, ## EVAL _A0 - ), - ELAS_FO=_F( ## SUBST ELAS - E = _A2, ## EVAL _A2 - NU = _A3, ## EVAL _A3 - ALPHA = _A4, ## EVAL _A4 - TEMP_DEF_ALPHA = 20., ## SUPPR - ) - ) - -# - diff --git a/Aster/Cata/cataSTA7/materiau/README.PY b/Aster/Cata/cataSTA7/materiau/README.PY deleted file mode 100644 index 00d14c17..00000000 --- a/Aster/Cata/cataSTA7/materiau/README.PY +++ /dev/null @@ -1 +0,0 @@ -indispensable pour ne pas avoir une directory vide diff --git a/Aster/Cata/cataSTA7/materiau/Z12CN13_REF_A.NOMI b/Aster/Cata/cataSTA7/materiau/Z12CN13_REF_A.NOMI deleted file mode 100755 index 85034ed5..00000000 --- a/Aster/Cata/cataSTA7/materiau/Z12CN13_REF_A.NOMI +++ /dev/null @@ -1,134 +0,0 @@ -# MODIF DATE 24/10/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -#------------------------------------------------------ -# LAMBDA EN FONCTION DE LA TEMPéRATURE -# -coef0=1.E ## UNIT -3 -_A0=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,22.7 *coef0, - 50. ,23.1 *coef0, - 100. ,23.9 *coef0, - 150. ,24.7 *coef0, - 200. ,25.5 *coef0, - 250. ,26.3 *coef0, - 300. ,27.1 *coef0, - 350. ,27.9 *coef0, - 400. ,28.7 *coef0, - 450. ,29.5 *coef0, - 500. ,30.3 *coef0, - 550. ,31.1 *coef0, - 600. ,31.9 *coef0, - 650. ,32.7 *coef0, - )) - -# -# RHO_CP EN FONCTION DE LA TEMPéRATURE -# -coef1=1.E ## UNIT -9 -_A1=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,3.64E+6 *coef1, - 50. ,3.73E+6 *coef1, - 100. ,3.90E+6 *coef1, - 150. ,4.06E+6 *coef1, - 200. ,4.22E+6 *coef1, - 250. ,4.39E+6 *coef1, - 300. ,4.55E+6 *coef1, - 350. ,4.70E+6 *coef1, - 400. ,4.86E+6 *coef1, - 450. ,5.04E+6 *coef1, - 500. ,5.21E+6 *coef1, - 550. ,5.32E+6 *coef1, - 600. ,5.39E+6 *coef1, - 650. ,5.37E+6 *coef1, - )) - -# -# E EN FONCTION DE LA TEMPéRATURE -# -coef2=1.E ## UNIT -6 -_A2=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0. ,216.5E+9 *coef2, - 20. ,215.4E+9 *coef2, - 50. ,213.0E+9 *coef2, - 100. ,209.4E+9 *coef2, - 150. ,206.0E+9 *coef2, - 200. ,201.8E+9 *coef2, - 250. ,197.5E+9 *coef2, - 300. ,193.5E+9 *coef2, - 350. ,189.0E+9 *coef2, - 400. ,184.5E+9 *coef2, - 450. ,179.0E+9 *coef2, - 500. ,173.5E+9 *coef2, - 550. ,167.0E+9 *coef2, - )) - -# -# NU EN FONCTION DE LA TEMPéRATURE -# - -_A3=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT', - VALE=( 0., 0.3, - )) - -# -# ALPHA EN FONCTION DE LA TEMPéRATURE -# - -_A4=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( 20., 9.42E-6, 50., 9.60E-6, - 100., 9.96E-6, 150., 10.20E-6, - 200., 10.44E-6, 250., 10.69E-6, - 300., 10.95E-6, 350., 11.19E-6, - 400., 11.40E-6, 450., 11.59E-6, - )) - - -MAT=DEFI_MATERIAU( - THER_NL=_F( ## SUBST THER - RHO_CP = _A1, ## EVAL _A1 - LAMBDA = _A0, ## EVAL _A0 - ), - ELAS_FO=_F( ## SUBST ELAS - E = _A2, ## EVAL _A2 - NU = _A3, ## EVAL _A3 - ALPHA = _A4, ## EVAL _A4 - TEMP_DEF_ALPHA = 20., ## SUPPR - ) - ) - -# - diff --git a/Aster/Cata/cataSTA7/materiau/Z2CN1810_REF_A.NOMI b/Aster/Cata/cataSTA7/materiau/Z2CN1810_REF_A.NOMI deleted file mode 100755 index 7b74d452..00000000 --- a/Aster/Cata/cataSTA7/materiau/Z2CN1810_REF_A.NOMI +++ /dev/null @@ -1,354 +0,0 @@ -# MODIF DATE 24/10/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# -# LAMBDA EN FONCTION DE LA TEMPéRATURE -# -coef0=1.E ## UNIT -3 -_A0=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,14.7 *coef0, - 50. ,15.2 *coef0, - 100. ,15.8 *coef0, - 150. ,16.7 *coef0, - 200. ,17.2 *coef0, - 250. ,18. *coef0, - 300. ,18.6 *coef0, - 350. ,19.3 *coef0, - 400. ,20. *coef0, - 450. ,20.5 *coef0, - 500. ,21.1 *coef0, - 550. ,21.7 *coef0, - 600. ,22.2 *coef0, - 650. ,22.7 *coef0, - 700. ,23.2 *coef0, - 750. ,23.7 *coef0, - 800. ,24.1 *coef0, - 950. ,26.67 *coef0, - 1150. ,29.24 *coef0, - 1370. ,32.06 *coef0, - )) - -# -# RHO_CP EN FONCTION DE LA TEMPéRATURE -# -coef1=1.E ## UNIT -9 -_A1=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,3.60E+6 *coef1, - 50. ,3.74E+6 *coef1, - 100. ,3.90E+6 *coef1, - 150. ,4.10E+6 *coef1, - 200. ,4.16E+6 *coef1, - 250. ,4.27E+6 *coef1, - 300. ,4.30E+6 *coef1, - 350. ,4.35E+6 *coef1, - 400. ,4.39E+6 *coef1, - 450. ,4.39E+6 *coef1, - 500. ,4.44E+6 *coef1, - 550. ,4.47E+6 *coef1, - 600. ,4.49E+6 *coef1, - 650. ,4.53E+6 *coef1, - 700. ,4.58E+6 *coef1, - 750. ,4.61E+6 *coef1, - 800. ,4.72E+6 *coef1, - 1000. ,4.99E+6 *coef1, - 1200. ,5.04E+6 *coef1, - 1500. ,5.04E+6 *coef1, - )) - -# -# E EN FONCTION DE LA TEMPéRATURE -# -coef2=1.E ## UNIT -6 -_A2=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0. ,198.5E+9 *coef2, - 20. ,197.E+9 *coef2, - 50. ,195.E+9 *coef2, - 100. ,191.5E+9 *coef2, - 150. ,187.5E+9 *coef2, - 200. ,184.E+9 *coef2, - 250. ,180.E+9 *coef2, - 300. ,176.5E+9 *coef2, - 350. ,172.E+9 *coef2, - 400. ,168.E+9 *coef2, - 450. ,164.E+9 *coef2, - 500. ,160.E+9 *coef2, - 550. ,155.5E+9 *coef2, - 600. ,151.5E+9 *coef2, - 700. ,142.5E+9 *coef2, - 800. ,130.E+9 *coef2, - 1000. ,81.5E+9 *coef2, - 1200. ,7.4E+9 *coef2, - 1400. ,0. *coef2, - )) - -# -# NU EN FONCTION DE LA TEMPéRATURE -# -_A3=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT', - VALE=( 0., 0.3, - )) - -# -# ALPHA EN FONCTION DE LA TEMPéRATURE -# - -_A4=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( 20., 16.4E-6, - 50., 16.54E-6, 100., 16.8E-6, - 150., 17.04E-6, 200., 17.2E-6, - 250., 17.5E-6, 300., 17.7E-6, - 350., 17.9E-6, 400., 18.1E-6, - 450., 18.24E-6, 500., 18.4E-6, - 600., 18.7E-6, 700., 18.9E-6, - 800., 19.1E-6, 900., 19.3E-6, - 1000., 19.5E-6, 1400., 20.E-6, - 1600., 20.2E-6, - )) - -# -# COURBE DE TRACTION à LA TEMPéRATURE 20°C -# - -coef5=1.E ## UNIT -6 -_A5=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 9.39E-4, 185.E+6 *coef5, - 1.07E-3, 190.53E+6 *coef5, - 1.64E-3, 225.E+6 *coef5, - 3.32E-3, 261.E+6 *coef5, - 7.45E-3, 287.E+6 *coef5, - 0.011, 300.E+6 *coef5, - 0.032, 360.E+6 *coef5, - 0.05, 404.E+6 *coef5, - 0.1, 491.E+6 *coef5, - )) - -# -# COURBE DE TRACTION à LA TEMPéRATURE 200°C -# -coef6=1.E ## UNIT -6 -_A6=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 7.61E-4 ,140.E+6 *coef6, - 1.E-3 ,150.E+6 *coef6, - 2.9E-3 ,168.E+6 *coef6, - 4.E-3 ,181.E+6 *coef6, - 7.E-3 ,195.E+6 *coef6, - 1.E-2 ,205.E+6 *coef6, - 0.034 ,276.E+6 *coef6, - 0.05 ,303.E+6 *coef6, - 0.15 ,450.E+6 *coef6, - )) - -# -# COURBE DE TRACTION à LA TEMPéRATURE 350°C -# -coef7=1.E ## UNIT -6 -_A7=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 7.56E-4 ,130.E+6 *coef7, - 8.9E-4 ,136.E+6 *coef7, - 1.84E-3 ,145.E+6 *coef7, - 2.9E-3 ,151.E+6 *coef7, - 4.9E-3 ,160.E+6 *coef7, - 8.9E-3 ,174.E+6 *coef7, - 0.011 ,180.E+6 *coef7, - 0.051 ,261.E+6 *coef7, - #0.01 ,353.E+6 *coef7, - 0.1 ,353.E+6 *coef7, - )) - -# -# COURBE DE TRACTION à LA TEMPéRATURE 400°C -# -coef8=1.E ## UNIT -6 -_A8=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 7.14E-4 ,120.E+6 *coef8, - 1.E-3 ,125.E+6 *coef8, - 2.E-3 ,134.E+6 *coef8, - 3.E-3 ,141.E+6 *coef8, - 8.E-3 ,157.E+6 *coef8, - 19.E-3 ,185.E+6 *coef8, - 25.E-3 ,200.E+6 *coef8, - 0.05 ,240.E+6 *coef8, - 0.1 ,320.E+6 *coef8, - )) - -# -# COURBE DE TRACTION à LA TEMPéRATURE 600°C -# -coef9=1.E ## UNIT -6 -_A9=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 5.94E-4 ,90.E+6 *coef9, - 1.E-3 ,104.E+6 *coef9, - 2.E-3 ,112.E+6 *coef9, - 3.E-3 ,119.E+6 *coef9, - 6.5E-3 ,131.E+6 *coef9, - 1.E-2 ,141.E+6 *coef9, - 2.14E-2 ,174.E+6 *coef9, - 0.05 ,224.E+6 *coef9, - 0.15 ,350.E+6 *coef9, - )) - -# -# COURBE DE TRACTION à LA TEMPéRATURE 800°C -# -coefA=1.E ## UNIT -6 -_AA=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 5.77E-4 ,75.E+6 *coefA, - 1.5E-3 ,81.E+6 *coefA, - 3.E-3 ,92.5E+6 *coefA, - 4.E-3 ,95.5E+6 *coefA, - 6.E-3 ,104.E+6 *coefA, - 0.01 ,115.E+6 *coefA, - 0.0278 ,141.E+6 *coefA, - 0.05 ,159.E+6 *coefA, - 0.1 ,170.E+6 *coefA, - )) - -# -# COURBE DE TRACTION -# - -_AB=DEFI_NAPPE( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - PARA=(20.,200.,350.,400.,600.,800., ), - FONCTION=(_A5,_A6,_A7,_A8,_A9,_AA, )) - -# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2 - -_AZ=DEFI_FONCTION(NOM_PARA='SIGM', - INTERPOL='LOG', - VALE=( - 180.0E6, 1000000.0 , - 200.0E6, 500000.0 , - 230.0E6, 200000.0 , - 260.0E6, 100000.0 , - 295.0E6, 50000.0 , - 350.0E6, 20000.0 , - 405.0E6, 10000.0 , - 485.0E6, 5000.0 , - 615.0E6, 2000.0 , - 750.0E6, 1000.0 , - 940.0E6, 500.0 , - 1275.0E6, 200.0 , - 1655.0E6, 100.0 , - 2190.0E6, 50.0 , - 3240.0E6, 20.0 , - 4480.0E6, 10.0, - ),); -_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),); -_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ, - COEF = 1.E ## UNIT -6 - ),); -DETRUIRE( CONCEPT =_F( NOM=_AZ), ) -_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),); - - - -# SM EN FONCTION DE LA TEMPERATURE - -_BD=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='CONSTANT', - VALE=( - 20.0,115.0E6, - 50.0,115.0E6, - 100.0,115.0E6, - 150.0,115.0E6, - 200.0,109.0E6, - 250.0,103.0E6, - 300.0,96.0E6, - 340.0,94.0E6, - 350.0,94.0E6, - )) -_AD=CALC_FONCTION(COMB=_F(FONCTION = _BD, - COEF = 1.E ## UNIT -6 - ),); - -# N_KE CONSTANTE EN FAIT -_AE=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',VALE=(20.,0.3,100.,0.3),) - -# M_KE CONSTANTE EN FAIT -_AF=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',VALE=(20.,1.7,100.,1.7),) - - - -MAT=DEFI_MATERIAU( - THER_NL=_F( ## SUBST THER - RHO_CP = _A1, ## EVAL _A1 - LAMBDA = _A0, ## EVAL _A0 - ), - ELAS_FO=_F( ## SUBST ELAS - E = _A2, ## EVAL _A2 - NU = _A3, ## EVAL _A3 - ALPHA = _A4, ## EVAL _A4 - TEMP_DEF_ALPHA = 20., ## SUPPR - ), - TRACTION=_F( SIGM = _AB, ), - - FATIGUE=_F(WOHLER=_AZ, - E_REFE=1.79E11*1.E ## UNIT -6 - ), - - RCCM_FO=_F( ## SUBST RCCM - SM=_AD, ## EVAL _AD - N_KE=_AE, ## EVAL _AE - M_KE=_AF, ## EVAL _AF - ) - ) - -# - diff --git a/Aster/Cata/cataSTA7/materiau/Z2CND1712_REF_A.NOMI b/Aster/Cata/cataSTA7/materiau/Z2CND1712_REF_A.NOMI deleted file mode 100755 index c72be9f4..00000000 --- a/Aster/Cata/cataSTA7/materiau/Z2CND1712_REF_A.NOMI +++ /dev/null @@ -1,337 +0,0 @@ -# MODIF DATE 24/10/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# -# Catalogue MATERIAU de l'acier inoxydable austenitique 316L -# - Denomination AFNOR : Z2CND1712 -# - Denomination usuelle : A316L -# -# LAMBDA EN FONCTION DE LA TEMPERATURE -# -coef0=1.E ## UNIT -3 - -_A0=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,14.0 *coef0, - 50. ,14.4 *coef0, - 100. ,15.2 *coef0, - 150. ,15.8 *coef0, - 200. ,16.6 *coef0, - 250. ,17.3 *coef0, - 300. ,17.9 *coef0, - 350. ,18.6 *coef0, - 400. ,19.2 *coef0, - 450. ,19.9 *coef0, - 500. ,20.6 *coef0, - 550. ,21.2 *coef0, - 600. ,21.8 *coef0, - 650. ,22.4 *coef0, - 700. ,23.1 *coef0, - 750. ,23.7 *coef0, - 800. ,24.3 *coef0, - 900. ,26.0 *coef0, - 1000. ,27.3 *coef0, - 1200. ,29.9 *coef0, - 1500. ,34.0 *coef0, - )) - -# -# RHO_CP EN FONCTION DE LA TEMPERATURE -# -coef1=1.E ## UNIT -9 -_A1=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,3598972. *coef1, - 50. ,3701799. *coef1, - 100. ,3907455. *coef1, - 150. ,4010152. *coef1, - 200. ,4160401. *coef1, - 250. ,4261084. *coef1, - 300. ,4292566. *coef1, - 350. ,4366197. *coef1, - 400. ,4393593. *coef1, - 450. ,4422222. *coef1, - 500. ,4439655. *coef1, - 550. ,4463158. *coef1, - 600. ,4494845. *coef1, - 650. ,4525252. *coef1, - 700. ,4583333. *coef1, - 750. ,4637965. *coef1, - 800. ,4700193. *coef1, - 900. ,4946500. *coef1, - 1000. ,4989600. *coef1, - 1200. ,5043650. *coef1, - 1500. ,5037000. *coef1, - )) - -# -# E EN FONCTION DE LA TEMPERATURE -# -coef2=1.E ## UNIT -6 -_A2=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0. ,198500.E+6 *coef2, - 20. ,197000.E+6 *coef2, - 50. ,195000.E+6 *coef2, - 100. ,191500.E+6 *coef2, - 150. ,187500.E+6 *coef2, - 200. ,184000.E+6 *coef2, - 250. ,180000.E+6 *coef2, - 300. ,176500.E+6 *coef2, - 350. ,172000.E+6 *coef2, - 400. ,168000.E+6 *coef2, - 450. ,164000.E+6 *coef2, - 500. ,160000.E+6 *coef2, - 550. ,155500.E+6 *coef2, - 600. ,151500.E+6 *coef2, - 700. ,142500.E+6 *coef2, - 800. ,130000.E+6 *coef2, - 900. ,108000.E+6 *coef2, - 1000. ,81500.E+6 *coef2, - 1100. ,32000.E+6 *coef2, - 1200. ,7400.E+6 *coef2, - 1300. ,3000.E+6 *coef2, - 1400. ,5.E+6 *coef2, - )) -# -# NU EN FONCTION DE LA TEMPERATURE -# -_A3=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT', - VALE=( 0., 0.3, - )) - -# -# ALPHA EN FONCTION DE LA TEMPERATURE -# - -_A4=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0.0 ,15.4E-6 , - 20.0 ,15.54E-6 , - 50.0 ,15.72E-6 , - 100.0 ,16.0E-6 , - 150.0 ,16.3E-6 , - 200.0 ,16.6E-6 , - 250.0 ,16.86E-6 , - 300.0 ,17.1E-6 , - 350.0 ,17.36E-6 , - 400.0 ,17.6E-6 , - 450.0 ,17.82E-6 , - 500.0 ,18.0E-6 , - 600.0 ,18.4E-6 , - 700.0 ,18.7E-6 , - 800.0 ,19.0E-6 , - 900.0 ,19.2E-6 , - 1000.0 ,19.4E-6 , - 1400.0 ,19.6E-6 , - 1600.0 ,19.7E-6 , - )) - - -# -# COURBE DE TRACTION A LA TEMPERATURE 20C -# - -coef5=1.E ## UNIT -6 -_TR20=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0.08446701E-2 ,166.4E+6 *coef5, - 0.09221476E-2 ,177.72307E+6 *coef5, - 0.09675755E-2 ,184.702374E+6 *coef5, - 0.10035526E-2 ,189.819863E+6 *coef5, - 0.10341966E-2 ,193.88674E+6 *coef5, - 0.10613920E-2 ,197.274216E+6 *coef5, - 0.11091372E-2 ,202.74003E+6 *coef5, - 0.11294416E-2 ,202.8E+6 *coef5, - 0.13218274E-2 ,221.E+6 *coef5, - 0.17010152E-2 ,236.6E+6 *coef5, - 0.22670051E-2 ,249.6E+6 *coef5, - 0.33197970E-2 ,260.E+6 *coef5, - 0.53857868E-2 ,273.E+6 *coef5, - 0.74253807E-2 ,280.8E+6 *coef5, - 0.94517766E-2 ,286.E+6 *coef5, - 1.14913706E-2 ,293.8E+6 *coef5, - 1.65573604E-2 ,306.8E+6 *coef5, - 2.16101523E-2 ,317.2E+6 *coef5, - 3.17289340E-2 ,340.6E+6 *coef5, - )) - -# -# COURBE DE TRACTION A LA TEMPERATURE 100C -# -coef6=1.E ## UNIT -6 -_TR100=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0.07268930E-2 ,139.2E+6 *coef6, - 0.10049608E-2 ,173.3E+6 *coef6, - 0.20003864E-2 ,200.E+6 *coef6, - 0.30757180E-2 ,206.E+6 *coef6, - 1.11994778E-2 ,229.7E+6 *coef6, - 2.13211488E-2 ,253.E+6 *coef6, - 4.15456919E-2 ,296.E+6 *coef6, - 6.17545692E-2 ,336.E+6 *coef6, - 8.19582245E-2 ,375.E+6 *coef6, - 10.2151436E-2 ,412.E+6 *coef6, - 15.2647520E-2 ,507.E+6 *coef6, - 20.3143603E-2 ,602.E+6 *coef6, - )) -# -# COURBE DE TRACTION A LA TEMPERATURE 200C -# -coef7=1.E ## UNIT -6 -_TR200=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0.06271740E-2 ,115.4E+6 *coef7, - 0.10631555E-2 ,153.4E+6 *coef7, - 0.19565609E-2 ,170.E+6 *coef7, - 0.29734414E-2 ,173.E+6 *coef7, - 1.11084853E-2 ,197.E+6 *coef7, - 2.12435291E-2 ,221.E+6 *coef7, - 4.14854828E-2 ,264.E+6 *coef7, - 6.17133693E-2 ,304.5E+6 *coef7, - 8.19300023E-2 ,343.E+6 *coef7, - 10.2149449E-2 ,382.E+6 *coef7, - 15.2689624E-2 ,478.E+6 *coef7, - 20.3224173E-2 ,573.E+6 *coef7, - )) -# -# COURBE DE TRACTION A LA TEMPERATURE 300C -# -coef8=1.E ## UNIT -6 -_TR300=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0.05694051E-2 ,100.5E+6 *coef8, - 0.09563739E-2 ,133.5E+6 *coef8, - 0.19998584E-2 ,150.E+6 *coef8, - 0.28781870E-2 ,155.E+6 *coef8, - 1.10254958E-2 ,181.E+6 *coef8, - 2.11614731E-2 ,205.E+6 *coef8, - 4.14164306E-2 ,250.E+6 *coef8, - 6.16430595E-2 ,290.E+6 *coef8, - 8.18696884E-2 ,330.E+6 *coef8, - 10.2096317E-2 ,370.E+6 *coef8, - 15.2623229E-2 ,463.E+6 *coef8, - 20.3161473E-2 ,558.E+6 *coef8, - )) -# -# COURBE DE TRACTION A LA TEMPERATURE 350C -# -coef9=1.E ## UNIT -6 -_TR350=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0.05558140E-2 ,95.6E+6 *coef9, - 0.06134823E-2 ,102.078952E+6 *coef9, - 0.06467887E-2 ,106.087661E+6 *coef9, - 0.06738779E-2 ,109.026998E+6 *coef9, - 0.06974587E-2 ,111.362893E+6 *coef9, - 0.07187707E-2 ,113.308561E+6 *coef9, - 0.07570231E-2 ,116.447965E+6 *coef9, - 0.08008140E-2 ,120.54E+6 *coef9, - 0.09520930E-2 ,129.36E+6 *coef9, - 0.12862791E-2 ,135.24E+6 *coef9, - 0.18204651E-2 ,141.12E+6 *coef9, - 0.28546512E-2 ,147.E+6 *coef9, - 0.48973837E-2 ,154.35E+6 *coef9, - 0.69315698E-2 ,160.23E+6 *coef9, - 0.89657558E-2 ,166.11E+6 *coef9, - 1.09913953E-2 ,170.52E+6 *coef9, - 1.60597674E-2 ,182.28E+6 *coef9, - 2.11195930E-2 ,192.57E+6 *coef9, - 3.12477907E-2 ,214.62E+6 *coef9, - )) -# -# COURBE DE TRACTION -# - -_A5=DEFI_NAPPE( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - PARA=(20.,100.,200.,300.,350., ), - FONCTION=(_TR20,_TR100,_TR200,_TR300,_TR350)) - -# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2 - -_AZ=DEFI_FONCTION(NOM_PARA='SIGM', - INTERPOL='LOG', - VALE=( - 180.0E6, 1000000.0 , - 200.0E6, 500000.0 , - 230.0E6, 200000.0 , - 260.0E6, 100000.0 , - 295.0E6, 50000.0 , - 350.0E6, 20000.0 , - 405.0E6, 10000.0 , - 485.0E6, 5000.0 , - 615.0E6, 2000.0 , - 750.0E6, 1000.0 , - 940.0E6, 500.0 , - 1275.0E6, 200.0 , - 1655.0E6, 100.0 , - 2190.0E6, 50.0 , - 3240.0E6, 20.0 , - 4480.0E6, 10.0, - ),); -_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),); -_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ, - COEF = 1.E ## UNIT -6 - ),); -DETRUIRE( CONCEPT =_F( NOM=_AZ), ) -_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),); - - -MAT=DEFI_MATERIAU( - THER_NL=_F( ## SUBST THER - RHO_CP = _A1, ## EVAL _A1 - LAMBDA = _A0, ## EVAL _A0 - ), - ELAS_FO=_F( ## SUBST ELAS - E = _A2, ## EVAL _A2 - NU = _A3, ## EVAL _A3 - ALPHA = _A4, ## EVAL _A4 - TEMP_DEF_ALPHA = 20., ## SUPPR - ), - TRACTION=_F( SIGM = _A5, ), - - FATIGUE=_F(WOHLER=_AZ, - E_REFE=2.07E11*1.E ## UNIT -6 - ), - ) - -# - diff --git a/Aster/Cata/cataSTA7/materiau/Z6CND1712_REF_A.NOMI b/Aster/Cata/cataSTA7/materiau/Z6CND1712_REF_A.NOMI deleted file mode 100755 index 0d1facbf..00000000 --- a/Aster/Cata/cataSTA7/materiau/Z6CND1712_REF_A.NOMI +++ /dev/null @@ -1,178 +0,0 @@ -# MODIF DATE 24/10/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -#------------------------------------------------------ -# LAMBDA EN FONCTION DE LA TEMPéRATURE -# -coef0=1.E ## UNIT -3 -_A0=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,14.0 *coef0, - 50. ,14.4 *coef0, - 100. ,15.2 *coef0, - 150. ,15.8 *coef0, - 200. ,16.6 *coef0, - 250. ,17.3 *coef0, - 300. ,17.9 *coef0, - 350. ,18.6 *coef0, - 400. ,19.2 *coef0, - 450. ,19.9 *coef0, - 500. ,20.6 *coef0, - 550. ,21.2 *coef0, - 600. ,21.8 *coef0, - 650. ,22.4 *coef0, - 700. ,23.1 *coef0, - 750. ,23.7 *coef0, - 800. ,24.3 *coef0, - )) - -# -# RHO_CP EN FONCTION DE LA TEMPéRATURE -# -coef1=1.E ## UNIT -9 -_A1=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,3.60E+6 *coef1, - 50. ,3.70E+6 *coef1, - 100. ,3.91E+6 *coef1, - 150. ,4.01E+6 *coef1, - 200. ,4.16E+6 *coef1, - 250. ,4.26E+6 *coef1, - 300. ,4.29E+6 *coef1, - 350. ,4.37E+6 *coef1, - 400. ,4.39E+6 *coef1, - 450. ,4.42E+6 *coef1, - 500. ,4.44E+6 *coef1, - 550. ,4.46E+6 *coef1, - 600. ,4.49E+6 *coef1, - 650. ,4.53E+6 *coef1, - 700. ,4.58E+6 *coef1, - 750. ,4.64E+6 *coef1, - 800. ,4.70E+6 *coef1, - )) - -# -# E EN FONCTION DE LA TEMPéRATURE -# -coef2=1.E ## UNIT -6 -_A2=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0. ,198.5E+9 *coef2, - 20. ,197.0E+9 *coef2, - 50. ,195.0E+9 *coef2, - 100. ,191.5E+9 *coef2, - 150. ,187.5E+9 *coef2, - 200. ,184.0E+9 *coef2, - 250. ,180.0E+9 *coef2, - 300. ,176.5E+9 *coef2, - 350. ,172.0E+9 *coef2, - 400. ,168.0E+9 *coef2, - 450. ,164.0E+9 *coef2, - 500. ,160.0E+9 *coef2, - 550. ,155.5E+9 *coef2, - 600. ,151.5E+9 *coef2, - )) - -# -# NU EN FONCTION DE LA TEMPéRATURE -# - -_A3=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT', - VALE=( 0., 0.3, - )) - -# -# ALPHA EN FONCTION DE LA TEMPéRATURE -# - -_A4=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( 20., 15.54E-6, 50., 15.72E-6, - 100., 16.00E-6, 150., 16.30E-6, - 200., 16.60E-6, 250., 16.86E-6, - 300., 17.10E-6, 350., 17.36E-6, - 400., 17.60E-6, 450., 17.82E-6, - )) - - -# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2 - -_AZ=DEFI_FONCTION(NOM_PARA='SIGM', - INTERPOL='LOG', - VALE=( - 180.0E6, 1000000.0 , - 200.0E6, 500000.0 , - 230.0E6, 200000.0 , - 260.0E6, 100000.0 , - 295.0E6, 50000.0 , - 350.0E6, 20000.0 , - 405.0E6, 10000.0 , - 485.0E6, 5000.0 , - 615.0E6, 2000.0 , - 750.0E6, 1000.0 , - 940.0E6, 500.0 , - 1275.0E6, 200.0 , - 1655.0E6, 100.0 , - 2190.0E6, 50.0 , - 3240.0E6, 20.0 , - 4480.0E6, 10.0, - ),); -_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),); -_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ, - COEF = 1.E ## UNIT -6 - ),); -DETRUIRE( CONCEPT =_F( NOM=_AZ), ) -_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),); - - - - -MAT=DEFI_MATERIAU( - THER_NL=_F( ## SUBST THER - RHO_CP = _A1, ## EVAL _A1 - LAMBDA = _A0, ## EVAL _A0 - ), - ELAS_FO=_F( ## SUBST ELAS - E = _A2, ## EVAL _A2 - NU = _A3, ## EVAL _A3 - ALPHA = _A4, ## EVAL _A4 - TEMP_DEF_ALPHA = 20., ## SUPPR - ), - - FATIGUE=_F(WOHLER=_AZ, - E_REFE=1.79E11*1.E ## UNIT -6 - ), - - ) - -# - diff --git a/Aster/Cata/cataSTA7/ops.py b/Aster/Cata/cataSTA7/ops.py deleted file mode 100644 index b4cbbca3..00000000 --- a/Aster/Cata/cataSTA7/ops.py +++ /dev/null @@ -1,442 +0,0 @@ -#@ MODIF ops Cata DATE 04/10/2006 AUTEUR CIBHHPD L.SALMONA -# -*- 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 - -try: - from Utilitai.Utmess import UTMESS - 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__ - # on rattache chaque assd au nouveau jdc courant (en poursuite) - if isinstance(pickle_context[elem],ASSD) : - pickle_context[elem].jdc=self.jdc - pickle_context[elem].parent=self.jdc - 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/cataSTA73/Macro/__init__.py b/Aster/Cata/cataSTA73/Macro/__init__.py deleted file mode 100644 index 4aebb58b..00000000 --- a/Aster/Cata/cataSTA73/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/cataSTA73/Macro/ajout_quad_gmsh.py b/Aster/Cata/cataSTA73/Macro/ajout_quad_gmsh.py deleted file mode 100644 index e0d64393..00000000 --- a/Aster/Cata/cataSTA73/Macro/ajout_quad_gmsh.py +++ /dev/null @@ -1,252 +0,0 @@ -#@ 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/cataSTA73/Macro/calc_precont_ops.py b/Aster/Cata/cataSTA73/Macro/calc_precont_ops.py deleted file mode 100644 index b345ca86..00000000 --- a/Aster/Cata/cataSTA73/Macro/calc_precont_ops.py +++ /dev/null @@ -1,468 +0,0 @@ -#@ MODIF calc_precont_ops Macro DATE 22/11/2004 AUTEUR LEBOUVIE F.LEBOUVIER -# -*- 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.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/cataSTA73/Macro/defi_cable_bp_ops.py b/Aster/Cata/cataSTA73/Macro/defi_cable_bp_ops.py deleted file mode 100644 index 3d234d76..00000000 --- a/Aster/Cata/cataSTA73/Macro/defi_cable_bp_ops.py +++ /dev/null @@ -1,313 +0,0 @@ -#@ 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/cataSTA73/Macro/defi_part_feti_ops.py b/Aster/Cata/cataSTA73/Macro/defi_part_feti_ops.py deleted file mode 100644 index bf46f881..00000000 --- a/Aster/Cata/cataSTA73/Macro/defi_part_feti_ops.py +++ /dev/null @@ -1,182 +0,0 @@ -#@ MODIF defi_part_feti_ops Macro DATE 23/11/2004 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 : 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.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/cataSTA73/Macro/fiabilite_fichier.py b/Aster/Cata/cataSTA73/Macro/fiabilite_fichier.py deleted file mode 100644 index 1462a5ec..00000000 --- a/Aster/Cata/cataSTA73/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/cataSTA73/Macro/fiabilite_mefisto.py b/Aster/Cata/cataSTA73/Macro/fiabilite_mefisto.py deleted file mode 100644 index 3f820843..00000000 --- a/Aster/Cata/cataSTA73/Macro/fiabilite_mefisto.py +++ /dev/null @@ -1,448 +0,0 @@ -#@ 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/cataSTA73/Macro/impr_fonction_ops.py b/Aster/Cata/cataSTA73/Macro/impr_fonction_ops.py deleted file mode 100644 index bdba4bf4..00000000 --- a/Aster/Cata/cataSTA73/Macro/impr_fonction_ops.py +++ /dev/null @@ -1,420 +0,0 @@ -#@ MODIF impr_fonction_ops Macro DATE 22/11/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 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 - 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') - DEFI_FICHIER = self.get_cmd('DEFI_FICHIER') - DETRUIRE = self.get_cmd('DETRUIRE') - - #---------------------------------------------- - # 0. Traitement des arguments, initialisations - # unité logique des fichiers réservés - ul_reserve=(8,) - - # 0.1. Fichier - nomfich=None - if args['UNITE'] and args['UNITE']<>6: - nomfich='fort.'+str(args['UNITE']) - if INFO==2: - print ' Nom du fichier :',nomfich - if nomfich and os.path.exists(nomfich): - if FORMAT=='XMGRACE': - niv='A' - else: - niv='I' - from Utilitai.Utmess import UTMESS - UTMESS(niv,macro,'Le fichier '+nomfich+' existe déjà, on écrit ' \ - 'à la suite.',self) - - # 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 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: - from Utilitai.Utmess import UTMESS - UTMESS('S',macro,'incohérence entre le catalogue et la macro.', self) - 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 - #---------------------------------------------- - from Utilitai import Graph - 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'): - dCi['LEGENDE']=obj.get_name() - if obj==None: - from Utilitai.Utmess import UTMESS - UTMESS('S',macro,'incohérence entre le catalogue et la macro.',self) - - # 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() - 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 - dicC={ - 'Val' : [lx,ly], - 'Lab' : [dic['NOM_PARA_FONC'],dic['NOM_RESU']] - } - AjoutParaCourbe(dicC, args=dCi) - graph.AjoutCourbe(**dicC) - 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']=='COMPLEXE' : lr=lval[2] - # on stocke les données dans le Graph - if typ=='fonction_c' and not dCi.has_key('PARTIE'): - dicC={ - 'Val' : lval, - 'Lab' : [dpar['NOM_PARA'],dpar['NOM_RESU']+'_R',dpar['NOM_RESU']+'_I'] - } - else: - dicC={ - 'Val' : [lx,lr], - 'Lab' : [dpar['NOM_PARA'],dpar['NOM_RESU']] - } - AjoutParaCourbe(dicC, args=dCi) - graph.AjoutCourbe(**dicC) - - # 1.2.2. Mot-clé LIST_RESU - elif typi=='LIST_RESU': - if interp and iocc>0: - from Utilitai.Utmess import UTMESS - 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""",self) - lx=dCi['LIST_PARA'].Valeurs() - lr=obj.Valeurs() - if len(lx)<>len(lr): - from Utilitai.Utmess import UTMESS - UTMESS('S',macro,"LIST_PARA et LIST_RESU n'ont pas la meme taille",self) - # on stocke les données dans le Graph - dicC={ - 'Val' : [lx,lr], - 'Lab' : [dCi['LIST_PARA'].get_name(),obj.get_name()] - } - 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": - from Utilitai.Utmess import UTMESS - UTMESS('S',macro,"FONC_X/FONC_Y ne peuvent pas etre des nappes !",self) - if interp and iocc>0: - from Utilitai.Utmess import UTMESS - UTMESS('S',macro,"""Au format 'TABLEAU' ,FONC_X/FONC_Y ne peut apparaitre qu'une seule fois - et à la première occurence de COURBE""",self) - 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: - dicC={ - 'Val' : [lt,lx,ly], - 'Lab' : [dpar['NOM_PARA'],dpar['NOM_RESU'],dpa2['NOM_RESU']] - } - else: - dicC={ - 'Val' : [lx,ly], - 'Lab' : [dpar['NOM_RESU'],dpa2['NOM_RESU']] - } - AjoutParaCourbe(dicC, args=dCi) - graph.AjoutCourbe(**dicC) - - # 1.2.4. Mot-clé ABSCISSE / ORDONNEE - elif typi=='ABSCISSE': - if interp and iocc>0: - from Utilitai.Utmess import UTMESS - 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""",self) - lx=obj - lr=dCi['ORDONNEE'] - if len(lx)<>len(lr): - from Utilitai.Utmess import UTMESS - UTMESS('S',macro,"ABSCISSE et ORDONNEE n'ont pas la meme taille",self) - # on stocke les données dans le Graph - dicC={ - 'Val' : [lx,lr], - 'Lab' : ['Absc','Ordo'] - } - 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 - 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='fort.'+str(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: - from Utilitai.Utmess import UTMESS - UTMESS('S',macro,'Format inconnu : '+FORMAT,self) - - # Traiter le cas des UL réservées - if args['UNITE'] and args['UNITE'] in ul_reserve: - DEFI_FICHIER( ACTION='LIBERER', UNITE=args['UNITE'], ) - if FORMAT=='AGRAF' and args['UNITE_DIGR']<>args['UNITE'] \ - and args['UNITE_DIGR'] in ul_reserve: - DEFI_FICHIER( ACTION='LIBERER', UNITE=args['UNITE_DIGR'], ) - - # 2.4. On trace ! - graph.Trace(**kargs) - - # 99. Traiter le cas des UL réservées - if args['UNITE'] and args['UNITE'] in ul_reserve: - DEFI_FICHIER( ACTION='ASSOCIER', UNITE=args['UNITE'], - TYPE='ASCII', ACCES='APPEND' ) - if FORMAT=='AGRAF' and args['UNITE_DIGR']<>args['UNITE'] \ - and args['UNITE_DIGR'] in ul_reserve: - DEFI_FICHIER( ACTION='ASSOCIER', UNITE=args['UNITE_DIGR'], - TYPE='ASCII', ACCES='APPEND' ) - - return ier - -# ------------------------------------------------------------------------------ -def AjoutParaCourbe(dCourbe, args): - """Ajoute les arguments fournis par l'utilisateur (args) dans le dictionnaire - décrivant la courbe (dCourbe). - """ - # correspondance : mot-clé Aster / clé du dico de l'objet Graph - keys={ - 'LEGENDE' : 'Leg', - 'STYLE' : 'Sty', - 'COULEUR' : 'Coul', - 'MARQUEUR' : 'Marq', - 'FREQ_MARQUEUR' : 'FreqM', - 'TRI' : 'Tri', - } - for mc, key in keys.items(): - if args.has_key(mc): - dCourbe[key]=args[mc] - diff --git a/Aster/Cata/cataSTA73/Macro/impr_table_ops.py b/Aster/Cata/cataSTA73/Macro/impr_table_ops.py deleted file mode 100644 index ca1a492f..00000000 --- a/Aster/Cata/cataSTA73/Macro/impr_table_ops.py +++ /dev/null @@ -1,232 +0,0 @@ -#@ MODIF impr_table_ops Macro DATE 30/11/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 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 - 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') - DEFI_FICHIER = self.get_cmd('DEFI_FICHIER') - RECU_FONCTION = self.get_cmd('RECU_FONCTION') - - #---------------------------------------------- - # 0. Traitement des arguments, initialisations - # unité logique des fichiers réservés - ul_reserve=(8,) - - # 0.1. Fichier - nomfich=None - if args['UNITE'] and args['UNITE']<>6: - nomfich='fort.'+str(args['UNITE']) - if nomfich and os.path.exists(nomfich): - 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'] - - # 0.4.2. Traiter le cas des UL réservées - if args['UNITE'] and args['UNITE'] in ul_reserve: - DEFI_FICHIER( ACTION='LIBERER', UNITE=args['UNITE'], ) - - #---------------------------------------------- - # 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 - 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']: - kargs['PAGINATION']=args['PAGINATION'] - - 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 - if args['UNITE'] and args['UNITE'] in ul_reserve: - DEFI_FICHIER( ACTION='ASSOCIER', UNITE=args['UNITE'], - TYPE='ASCII', ACCES='APPEND' ) - - 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/cataSTA73/Macro/lire_fonction_ops.py b/Aster/Cata/cataSTA73/Macro/lire_fonction_ops.py deleted file mode 100644 index 25f56807..00000000 --- a/Aster/Cata/cataSTA73/Macro/lire_fonction_ops.py +++ /dev/null @@ -1,258 +0,0 @@ -#@ MODIF lire_fonction_ops Macro DATE 20/09/2004 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,os,Numeric - - -###################################################################### -#### méthode de construction du VALE pour le format libre -###################################################################### -def m_format_libre(texte,INDIC_PARA,INDIC_RESU,SEPAR): - - from Utilitai.transpose import transpose - - # 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. - - l_fonc=[] - fonc =[] - ier =0 - if SEPAR=='None' : SEPAR=None - for line in texte : - try : - if string.strip(line)=='' : raise ValueError - fonc.append(map(float,string.split(line,SEPAR))) - except ValueError: - if fonc==[] : pass # dans ce cas, on a plusieurs lignes délimitant 2 fonctions - else : - l_fonc.append(Numeric.array(fonc)) - fonc=[] - if fonc!=[] : - l_fonc.append(Numeric.array(fonc)) - - # vérifications de cohérences lignes et colonnes - ind_para=[INDIC_PARA[0]-1,INDIC_PARA[1]-1] - ind_resu=[INDIC_RESU[0]-1,INDIC_RESU[1]-1] - if INDIC_PARA[0]>len(l_fonc) : - ier=ier+1 - message= " INDIC_PARA :le nombre de blocs de fonctions dans " - message=message+"le fichier est inférieur à "+str(INDIC_PARA[0]) - return ier,message,[] - if INDIC_RESU[0]>len(l_fonc) : - ier=ier+1 - message= " INDIC_RESU :le nombre de blocs de fonctions dans " - message=message+"le fichier est inférieur à "+str(INDIC_RESU[0]) - return ier,message,[] - if INDIC_PARA[1]>len(l_fonc[ind_para[0]]) : - ier=ier+1 - message= " INDIC_PARA :la fonction numéro " - message=message+str(INDIC_PARA[0]) - message=message+" ne comporte que "+str(l_fonc[INDIC_PARA[0]])+" colonnes" - return ier,message,[] - if INDIC_RESU[1]>len(l_fonc[ind_resu[0]]) : - ier=ier+1 - message= " INDIC_RESU :la fonction numéro " - message=message+str(INDIC_RESU[0]) - message=message+" ne comporte que "+str(l_fonc[INDIC_RESU[0]])+" colonnes" - return ier,message,[] - - # construction du VALE de la fonction par recherche des indices - # de colonnes et de fonctions dans le tableau l_fonc - vale_1=l_fonc[ind_para[0]][:,ind_para[1]] - vale_2=l_fonc[ind_resu[0]][:,ind_resu[1]] - if len(vale_1)!=len(vale_2) : - ier=ier+1 - message= " INDIC_RESU :les deux colonnes demandées " - message=message+" pour INDIC_PARA et INDIC_RESU n ont pas la meme longueur :" - message=message+str(len(vale_1))+" et "+str(len(vale_2)) - return ier,message,[] - liste_vale=transpose([vale_1,vale_2]) - def add(x,y):return x+y - liste_vale=reduce(add,liste_vale) - return ier,'',liste_vale - -###################################################################### -#### recherche d une liste simple -###################################################################### -def liste_simple(texte,INDIC_PARA,SEPAR): - - # format LIBRE - # liste simple - - l_fonc=[] - fonc =[] - ier =0 - if SEPAR=='None' : SEPAR=None - for line in texte : - try : - if string.strip(line)=='' : raise ValueError - fonc.append(map(float,string.split(line,SEPAR))) - except ValueError: - if fonc==[] : pass # dans ce cas, on a plusieurs lignes délimitant 2 fonctions - else : - l_fonc.append(Numeric.array(fonc)) - fonc=[] - if fonc!=[] : - l_fonc.append(Numeric.array(fonc)) - - # vérifications de cohérences lignes et colonnes - ind_para=[INDIC_PARA[0]-1,INDIC_PARA[1]-1] - if INDIC_PARA[0]>len(l_fonc) : - ier=ier+1 - message= " INDIC_PARA :le nombre de blocs de fonctions dans " - message=message+"le fichier est inférieur à "+str(INDIC_PARA[0]) - return ier,message,[] - if INDIC_PARA[1]>len(l_fonc[ind_para[0]]) : - ier=ier+1 - message= " INDIC_PARA :la fonction numéro " - message=message+str(INDIC_PARA[0]) - message=message+" ne comporte que "+str(l_fonc[INDIC_PARA[0]])+" colonnes" - self.cr.fatal(message) - return ier,message,[] - - # construction du VALE de la fonction par recherche des indices - # de colonnes et de fonctions dans le tableau l_fonc - vale_1=l_fonc[ind_para[0]][:,ind_para[1]] - return ier,'',vale_1.tolist() - -###################################################################### -#### méthode corps de la macro -###################################################################### -def lire_fonction_ops(self,FORMAT,TYPE,SEPAR,INDIC_PARA,UNITE, - NOM_PARA,NOM_RESU,INTERPOL,PROL_DROITE, - PROL_GAUCHE,VERIF,INFO,TITRE,**args): - ier=0 - - from Accas import _F -# 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') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Lecture de la fonction dans un fichier d unité logique UNITE - - file="./fort."+str(UNITE) - if not os.path.isfile(file) : - ier=ier+1 - self.cr.fatal(" le fichier d unité logique "+str(UNITE)+" est introuvable") - return ier - file=open(file,'r') - texte=file.readlines() - file.close() - - 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=m_format_libre(texte,INDIC_PARA,args['INDIC_RESU'],SEPAR) - if ier!=0 : - self.cr.fatal(message) - return ier - - # 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=m_format_libre(texte,INDIC_PARA,indic1,SEPAR) - if ier!=0 : - self.cr.fatal(message) - return ier - ier,message,liste_vale_i=m_format_libre(texte,INDIC_PARA,indic2,SEPAR) - if ier!=0 : - self.cr.fatal(message) - return ier - liste=[] - if 'INDIC_REEL' in args : - for i in range(len(liste_vale_r)/2) : - liste=liste+[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=liste+[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=m_format_libre(texte,args['INDIC_ABSCISSE'],elem['INDIC_RESU'],SEPAR) - if ier!=0 : - self.cr.fatal(message) - return ier - 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(texte,INDIC_PARA,SEPAR) - if ier!=0 : - self.cr.fatal(message) - return ier - 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) - - return ier diff --git a/Aster/Cata/cataSTA73/Macro/lire_inte_spec_ops.py b/Aster/Cata/cataSTA73/Macro/lire_inte_spec_ops.py deleted file mode 100644 index d3ae6d67..00000000 --- a/Aster/Cata/cataSTA73/Macro/lire_inte_spec_ops.py +++ /dev/null @@ -1,122 +0,0 @@ -#@ MODIF lire_inte_spec_ops Macro DATE 20/09/2004 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 - # 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) - - # Lecture de la fonction dans un fichier d unité logique UNITE - - file="./fort."+str(UNITE) - if not os.path.isfile(file) : - ier=ier+1 - self.cr.fatal(" le fichier d unité logique "+str(UNITE)+" est introuvable") - return ier - file=open(file,'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,) - - return ier diff --git a/Aster/Cata/cataSTA73/Macro/lire_table_ops.py b/Aster/Cata/cataSTA73/Macro/lire_table_ops.py deleted file mode 100644 index f42d2c95..00000000 --- a/Aster/Cata/cataSTA73/Macro/lire_table_ops.py +++ /dev/null @@ -1,177 +0,0 @@ -#@ MODIF lire_table_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. -# ====================================================================== - - - -import string - - -###################################################################### -#### méthode de construction du dictionnaire -#### PARAMETRE / LISTE DE VALEURS -###################################################################### -def lecture_table(texte,nume,separ): - - from Utilitai.transpose import transpose - # 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. - - 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 - -###################################################################### -#### méthode corps de la macro LIRE_TABLE -###################################################################### -def lire_table_ops(self,UNITE,FORMAT,NUME_TABLE,SEPARATEUR, - TYPE_TABLE,PARA,TITRE,**args): - from Accas import _F - import os - - 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 - file="./fort."+str(UNITE) - if not os.path.isfile(file) : - ier=ier+1 - self.cr.fatal(" le fichier d unité logique "+str(UNITE)+" est introuvable") - return ier - file=open(file,'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) - - return ier diff --git a/Aster/Cata/cataSTA73/Macro/macr_adap_mail_ops.py b/Aster/Cata/cataSTA73/Macro/macr_adap_mail_ops.py deleted file mode 100644 index 16625395..00000000 --- a/Aster/Cata/cataSTA73/Macro/macr_adap_mail_ops.py +++ /dev/null @@ -1,727 +0,0 @@ -#@ 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/cataSTA73/Macro/macr_ascouf_calc_ops.py b/Aster/Cata/cataSTA73/Macro/macr_ascouf_calc_ops.py deleted file mode 100644 index fda98363..00000000 --- a/Aster/Cata/cataSTA73/Macro/macr_ascouf_calc_ops.py +++ /dev/null @@ -1,677 +0,0 @@ -#@ 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 -################################################################################ -################################################################################ -################################################################################ -# 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' -# - -def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME): - 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 -################################################################################ -################################################################################ -################################################################################ -# 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 -# -def ASCTCI(MCL_SOUS_EPAIS,RM): -# -# --- 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 -# -################################################################################ -################################################################################ -################################################################################ -# 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 -# -def ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM): -# -# 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+'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 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/cataSTA73/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA73/Macro/macr_aspic_calc_ops.py deleted file mode 100644 index b6d91b36..00000000 --- a/Aster/Cata/cataSTA73/Macro/macr_aspic_calc_ops.py +++ /dev/null @@ -1,821 +0,0 @@ -#@ MODIF macr_aspic_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_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 - 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) -# -# 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/cataSTA73/Macro/macr_aspic_mail_ops.py b/Aster/Cata/cataSTA73/Macro/macr_aspic_mail_ops.py deleted file mode 100644 index 296cab1d..00000000 --- a/Aster/Cata/cataSTA73/Macro/macr_aspic_mail_ops.py +++ /dev/null @@ -1,845 +0,0 @@ -#@ MODIF macr_aspic_mail_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. -# ====================================================================== - - - -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) : - -# 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 - 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) : - -# 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" - 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) : -# - 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 (THETA > 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 - 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 (THETA > 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+'opti donn ' - texte=texte+"'"+loc_datg+'aspic.datg'+"';\n" - 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 ) -# - return ier - diff --git a/Aster/Cata/cataSTA73/Macro/macr_cabri_calc_ops.py b/Aster/Cata/cataSTA73/Macro/macr_cabri_calc_ops.py deleted file mode 100644 index a829425f..00000000 --- a/Aster/Cata/cataSTA73/Macro/macr_cabri_calc_ops.py +++ /dev/null @@ -1,542 +0,0 @@ -#@ 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/cataSTA73/Macro/macr_cabri_mail_dat.py b/Aster/Cata/cataSTA73/Macro/macr_cabri_mail_dat.py deleted file mode 100644 index 7d673257..00000000 --- a/Aster/Cata/cataSTA73/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/cataSTA73/Macro/macr_cabri_mail_ops.py b/Aster/Cata/cataSTA73/Macro/macr_cabri_mail_ops.py deleted file mode 100644 index d5ad388f..00000000 --- a/Aster/Cata/cataSTA73/Macro/macr_cabri_mail_ops.py +++ /dev/null @@ -1,461 +0,0 @@ -#@ MODIF macr_cabri_mail_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. -# ====================================================================== - -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/cataSTA73/Macro/macr_cara_poutre_ops.py b/Aster/Cata/cataSTA73/Macro/macr_cara_poutre_ops.py deleted file mode 100644 index e0849aff..00000000 --- a/Aster/Cata/cataSTA73/Macro/macr_cara_poutre_ops.py +++ /dev/null @@ -1,816 +0,0 @@ -#@ MODIF macr_cara_poutre_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 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.icmd=1 - 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/cataSTA73/Macro/macr_ecla_pg_ops.py b/Aster/Cata/cataSTA73/Macro/macr_ecla_pg_ops.py deleted file mode 100644 index 8bfada76..00000000 --- a/Aster/Cata/cataSTA73/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/cataSTA73/Macro/macr_fiab_impr_ops.py b/Aster/Cata/cataSTA73/Macro/macr_fiab_impr_ops.py deleted file mode 100644 index 3b338c77..00000000 --- a/Aster/Cata/cataSTA73/Macro/macr_fiab_impr_ops.py +++ /dev/null @@ -1,110 +0,0 @@ -#@ MODIF macr_fiab_impr_ops Macro DATE 07/10/2004 AUTEUR GNICOLAS G.NICOLAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -# RESPONSABLE GNICOLAS G.NICOLAS -# -def macr_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 -#____________________________________________________________________ -# - 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/cataSTA73/Macro/macr_fiabilite_ops.py b/Aster/Cata/cataSTA73/Macro/macr_fiabilite_ops.py deleted file mode 100644 index 62a10eba..00000000 --- a/Aster/Cata/cataSTA73/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/cataSTA73/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA73/Macro/macr_lign_coupe_ops.py deleted file mode 100644 index 0d57da06..00000000 --- a/Aster/Cata/cataSTA73/Macro/macr_lign_coupe_ops.py +++ /dev/null @@ -1,173 +0,0 @@ -#@ MODIF macr_lign_coupe_ops 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 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 - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') - DEFI_GROUP =self.get_cmd('DEFI_GROUP') - AFFE_MODELE =self.get_cmd('AFFE_MODELE') - PROJ_CHAMP =self.get_cmd('PROJ_CHAMP') - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T') - - # La macro compte pour 1 dans la numerotation des commandes - #self.icmd=1 - 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) - cur_dir=os.getcwd() - nomFichierSortie =cur_dir+'/fort.'+str(UNITE_MAILLAGE) - fproc=open(nomFichierSortie,'w') - fproc.write(resu_mail) - fproc.close() - - # Lecture du maillage de seg2 contenant toutes les lignes de coupe - - __macou=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,); - - motscles={} - iocc=1 - motscles['CREA_GROUP_NO']=[] - for m in LIGN_COUPE : - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA='LICOU'+str(iocc),) ) - iocc=iocc+1 - __macou=DEFI_GROUP( reuse =__macou , MAILLAGE=__macou , **motscles ); - - if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') : - __mocou=AFFE_MODELE(MAILLAGE=__macou, - AFFE=_F(TOUT='OUI', - PHENOMENE='MECANIQUE', - MODELISATION='BARRE',),); - elif AsType(RESULTAT).__name__ in ('evol_ther',) : - __mocou=AFFE_MODELE(MAILLAGE=__macou, - AFFE=_F(TOUT='OUI', - PHENOMENE='THERMIQUE', - MODELISATION='PLAN',),); - - __recou=PROJ_CHAMP(METHODE='ELEM', - RESULTAT=RESULTAT, - MODELE_1=MODELE, - MODELE_2=__mocou, - NOM_CHAM=NOM_CHAM,); - - # Production d'une table par ligne de coupe - # Toutes les tables sont des concepts sortant de la macro définies - # dans chaque occurence du mcfact lign_coupe - - iocc=1 - for m in LIGN_COUPE : - self.DeclareOut('tt',m['TABLE']) - tt=POST_RELEVE_T(ACTION=_F(INTITULE = 'lig.coupe'+str(iocc), - RESULTAT = __recou, - GROUP_NO = 'LICOU'+str(iocc), - NOM_CHAM = NOM_CHAM, - TOUT_CMP = 'OUI', - OPERATION = 'EXTRACTION', ),); - iocc=iocc+1 - - return ier diff --git a/Aster/Cata/cataSTA73/Macro/macr_recal_ops.py b/Aster/Cata/cataSTA73/Macro/macr_recal_ops.py deleted file mode 100644 index 308846a5..00000000 --- a/Aster/Cata/cataSTA73/Macro/macr_recal_ops.py +++ /dev/null @@ -1,162 +0,0 @@ -#@ MODIF macr_recal_ops 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. -# ====================================================================== - - - -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.icmd=1 - 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/cataSTA73/Macro/macro_matr_ajou_ops.py b/Aster/Cata/cataSTA73/Macro/macro_matr_ajou_ops.py deleted file mode 100644 index 34595923..00000000 --- a/Aster/Cata/cataSTA73/Macro/macro_matr_ajou_ops.py +++ /dev/null @@ -1,260 +0,0 @@ -#@ 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/cataSTA73/Macro/macro_matr_asse_ops.py b/Aster/Cata/cataSTA73/Macro/macro_matr_asse_ops.py deleted file mode 100644 index 5466b685..00000000 --- a/Aster/Cata/cataSTA73/Macro/macro_matr_asse_ops.py +++ /dev/null @@ -1,160 +0,0 @@ -#@ MODIF macro_matr_asse_ops 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. -# ====================================================================== - - - -def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE, - SOLVEUR,NUME_DDL,CHARGE,INST,**args): - """ - Ecriture de la macro MACRO_MATR_ASSE - """ - ier=0 - - # On met le mot cle NUME_DDL dans une variable locale pour le proteger - numeddl=NUME_DDL - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - CALC_MATR_ELEM=self.get_cmd('CALC_MATR_ELEM') - NUME_DDL =self.get_cmd('NUME_DDL') - ASSE_MATRICE =self.get_cmd('ASSE_MATRICE') - # La macro compte pour 1 dans la numerotation des commandes - #self.icmd=1 - 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 - - if m['SIEF_ELGA']!=None and option!='RIGI_GEOM': - ier=ier+1 - self.cr.fatal(" SIEF_ELGA N EST ADMIS QU AVEC L OPTION RIGI_GEOM") - return ier - - if m['MODE_FOURIER']!=None and option not in ('RIGI_MECA','RIGI_FLUI_STRU','RIGI_THER'): - ier=ier+1 - self.cr.fatal(" MODE_FOURIER N EST ADMIS QU AVEC UNE DES OPTIONS RIGI_MECA RIGI_FLUI_STRU RIGI_THER") - return ier - - if (m['THETA']!=None or m['PROPAGATION']!=None) and option!='RIGI_MECA_LAGR': - ier=ier+1 - self.cr.fatal(" PROPAGATION ET,OU THETA NE SONT ADMIS QU AVEC L OPTION RIGI_MECA_LAGR") - return ier - - motscles={'OPTION':option} - if option == 'AMOR_MECA': - if (not lrigel or not lmasel): - ier=ier+1 - self.cr.fatal(""" POUR CALCULER AMOR_MECA, IL FAUT AVOIR CALCULE - RIGI_MECA ET MASS_MECA AUPARAVANT (DANS LE MEME APPEL)""") - return ier - if CHAM_MATER != None: - motscles['RIGI_MECA'] =rigel - motscles['MASS_MECA'] =masel - if CHARGE != None: - if option[0:9] not in ('MASS_THER','RIGI_GEOM','MASS_ID_M'): - motscles['CHARGE'] =CHARGE - if CHAM_MATER != None: motscles['CHAM_MATER'] =CHAM_MATER - if CARA_ELEM != None: motscles['CARA_ELEM'] =CARA_ELEM - if INST != None: motscles['INST'] =INST - if m['SIEF_ELGA'] : motscles['SIEF_ELGA'] =m['SIEF_ELGA'] - if m['MODE_FOURIER']: motscles['MODE_FOURIER']=m['MODE_FOURIER'] - if m['THETA'] : motscles['THETA'] =m['THETA'] - if m['PROPAGATION'] : motscles['PROPAGATION'] =m['PROPAGATION'] - - __a=CALC_MATR_ELEM(MODELE=MODELE,**motscles) - - if option == 'RIGI_MECA': - rigel = __a - lrigel = 1 - if option == 'MASS_MECA': - masel = __a - lmasel = 1 - - if lnume and option in ('RIGI_MECA','RIGI_THER','RIGI_ACOU','RIGI_MECA_LAGR'): - self.DeclareOut('num',numeddl) - # On peut passer des mots cles egaux a None. Ils sont ignores - num=NUME_DDL(MATR_RIGI=__a,METHODE=methode,RENUM=renum) - else: - num=numeddl - - self.DeclareOut('mm',m['MATRICE']) - mm=ASSE_MATRICE(MATR_ELEM=__a,NUME_DDL=num) - return ier diff --git a/Aster/Cata/cataSTA73/Macro/macro_miss_3d_ops.py b/Aster/Cata/cataSTA73/Macro/macro_miss_3d_ops.py deleted file mode 100644 index 0d5d360b..00000000 --- a/Aster/Cata/cataSTA73/Macro/macro_miss_3d_ops.py +++ /dev/null @@ -1,76 +0,0 @@ -#@ MODIF macro_miss_3d_ops Macro DATE 03/11/2004 AUTEUR ACBHHCD G.DEVESA -# -*- 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.icmd=1 - 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/cataSTA73/Macro/macro_mode_meca_ops.py b/Aster/Cata/cataSTA73/Macro/macro_mode_meca_ops.py deleted file mode 100644 index 882890eb..00000000 --- a/Aster/Cata/cataSTA73/Macro/macro_mode_meca_ops.py +++ /dev/null @@ -1,136 +0,0 @@ -#@ MODIF macro_mode_meca_ops 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. -# ====================================================================== - - - -def macro_mode_meca_ops(self,MATR_A,MATR_B,INFO,METHODE,OPTION,CALC_FREQ, - VERI_MODE,NORM_MODE,FILTRE_MODE,IMPRESSION,**args): - """ - Ecriture de la macro MACRO_MODE_MECA - """ - from Accas import _F - ier=0 - - # on protege le contenu du mot cle NORM_MODE pour eviter les confusions - # avec la commande du meme nom - - normode=NORM_MODE - - # On importe les definitions des commandes a utiliser dans la macro - MODE_ITER_SIMULT =self.get_cmd('MODE_ITER_SIMULT') - NORM_MODE =self.get_cmd('NORM_MODE') - IMPR_RESU =self.get_cmd('IMPR_RESU') - EXTR_MODE =self.get_cmd('EXTR_MODE') - # La macro compte pour 1 dans la numerotation des commandes - #self.icmd=1 - 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) - return ier diff --git a/Aster/Cata/cataSTA73/Macro/macro_proj_base_ops.py b/Aster/Cata/cataSTA73/Macro/macro_proj_base_ops.py deleted file mode 100644 index edfee029..00000000 --- a/Aster/Cata/cataSTA73/Macro/macro_proj_base_ops.py +++ /dev/null @@ -1,63 +0,0 @@ -#@ MODIF macro_proj_base_ops 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. -# ====================================================================== - - - -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.icmd=1 - 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/cataSTA73/Macro/pre_gmsh_ops.py b/Aster/Cata/cataSTA73/Macro/pre_gmsh_ops.py deleted file mode 100644 index 8ff4170e..00000000 --- a/Aster/Cata/cataSTA73/Macro/pre_gmsh_ops.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- -#@ MODIF pre_gmsh_ops Macro DATE 11/06/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def pre_gmsh_ops(self,UNITE_MAILLAGE,UNITE_GMSH,MODI_QUAD,**args): - """ - Ecriture de la macro PRE_GMSH - """ - import os - from Macro.ajout_quad_gmsh import ajout_quad_gmsh - ier=0 - - PRE_GMSH_LECT =self.get_cmd('PRE_GMSH_LECT') - - # La macro compte pour 1 dans la numerotation des commandes - self.icmd=1 - - if MODI_QUAD=='OUI': - cur_dir=os.getcwd() - unit = str(UNITE_GMSH) - nomFichierGmsh = cur_dir+'/fort.'+unit - nomFichierMail = cur_dir+'/sortie' - -# récupération du fichier .msh complet mis dans la string 'texte' - - fproc=open(nomFichierGmsh,'r') - texte=fproc.read() - fproc.close() - - resu=ajout_quad_gmsh(texte) - if not resu: - ier=ier+1 - self.cr.fatal("Erreur dans la methode python de transformation mailles lineaires-quadratiques") - return ier - - fsort=open(nomFichierMail,'w') - fsort.write(resu) - fsort.close() - os.system('cp '+nomFichierMail+' '+nomFichierGmsh) - - PRE_GMSH_LECT(UNITE_MAILLAGE = UNITE_MAILLAGE, - UNITE_GMSH = UNITE_GMSH ) - - return ier - diff --git a/Aster/Cata/cataSTA73/Macro/reca_algo.py b/Aster/Cata/cataSTA73/Macro/reca_algo.py deleted file mode 100644 index 319d6d67..00000000 --- a/Aster/Cata/cataSTA73/Macro/reca_algo.py +++ /dev/null @@ -1,260 +0,0 @@ -#@ MODIF reca_algo 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 Numeric -from Numeric import take -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)) - 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=',')) - 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/cataSTA73/Macro/reca_interp.py b/Aster/Cata/cataSTA73/Macro/reca_interp.py deleted file mode 100644 index 00ad62d2..00000000 --- a/Aster/Cata/cataSTA73/Macro/reca_interp.py +++ /dev/null @@ -1,180 +0,0 @@ -#@ 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/cataSTA73/Macro/reca_message.py b/Aster/Cata/cataSTA73/Macro/reca_message.py deleted file mode 100644 index 0691b785..00000000 --- a/Aster/Cata/cataSTA73/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/cataSTA73/Macro/recal.py b/Aster/Cata/cataSTA73/Macro/recal.py deleted file mode 100644 index cb2d4778..00000000 --- a/Aster/Cata/cataSTA73/Macro/recal.py +++ /dev/null @@ -1,379 +0,0 @@ -#@ MODIF recal 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 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/cataSTA73/Macro/stanley_ops.py b/Aster/Cata/cataSTA73/Macro/stanley_ops.py deleted file mode 100644 index 10da21e3..00000000 --- a/Aster/Cata/cataSTA73/Macro/stanley_ops.py +++ /dev/null @@ -1,61 +0,0 @@ -#@ MODIF stanley_ops Macro DATE 23/11/2004 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,**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.icmd=1 - - - # 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 n'est définie!\n STANLEY ne peut pas fonctionner. On l'ignore.\n\n Si vous etes en Interactif, cochez le bouton Suivi Interactif\n dans ASTK.") - - return ier diff --git a/Aster/Cata/cataSTA73/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA73/Macro/test_fichier_ops.py deleted file mode 100644 index 5f4ac116..00000000 --- a/Aster/Cata/cataSTA73/Macro/test_fichier_ops.py +++ /dev/null @@ -1,195 +0,0 @@ -#@ MODIF test_fichier_ops Macro DATE 03/11/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 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.icmd=1 - 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 - from Macro.test_fichier_ops import md5file - - # 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: - print ' '+str(s)+' pour "'+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: - print " LE FICHIER N'A PAS ETE FERME :\n",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 : - 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(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): - """ - 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 - OUT : - code retour : 0 si ok, >0 sinon - md5sum - """ - import os.path - import re - import string - import math - import md5 - # 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: - #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)) - 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() - 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) - return 0, md5sum diff --git a/Aster/Cata/cataSTA73/__init__.py b/Aster/Cata/cataSTA73/__init__.py deleted file mode 100644 index 3d102164..00000000 --- a/Aster/Cata/cataSTA73/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -import pre74 -from cata import * - -INCLUDE_MATERIAU.itemeditor=pre74.compomacro.INCLUDE_MATERIAUTreeItem -INCLUDE.itemeditor=pre74.compomacro.INCLUDETreeItem -POURSUITE.itemeditor=pre74.compomacro.POURSUITETreeItem diff --git a/Aster/Cata/cataSTA73/cata.py b/Aster/Cata/cataSTA73/cata.py deleted file mode 100644 index ae6c1a67..00000000 --- a/Aster/Cata/cataSTA73/cata.py +++ /dev/null @@ -1,21652 +0,0 @@ -#& MODIF ENTETE DATE 30/11/2004 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 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: V6_main $" -__Id__="$Id: cata.py,v 1.1 2005-01-25 18:25:17 eficas 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 cara_pout (ASSD):pass -class cham_mater (ASSD):pass -class char_acou (ASSD):pass -class char_cine_acou (ASSD):pass -class char_cine_meca (ASSD):pass -class char_cine_ther (ASSD):pass -class char_meca (ASSD):pass -class char_ther (ASSD):pass -class 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] - """ - 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_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 """ - - - 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 """ - - - 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) : - 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. - """ - 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]], - } - 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 Valeurs(self) : - """ - Retourne deux listes de valeurs : abscisses et ordonnees - """ - if hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : - 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] - 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): - 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): - def Parametres(self):pass -class fonction_c(fonction_class): - 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) -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. - """ - 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. - """ - 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""" - 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): - 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 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 - """ - 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 08/11/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. -# ====================================================================== -# 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='**'), - CARA_SECT =SIMP(statut='f',typ=(cara_pout) ), - 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'),), - 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 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 affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args): - if MECA_IMPO != None : return char_cine_meca - if THER_IMPO != None : return char_cine_ther - if ACOU_IMPO != None : return char_cine_acou - raise AsException("type de concept resultat non prevu") - -AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod - ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation", - 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_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' ), - ), - 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 -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT 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/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. -# ====================================================================== -# 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='I',defaut=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 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 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_NS", - "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 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 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='**' ), - 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 27/09/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. -# ====================================================================== -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 - 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 27/09/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 -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',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 ) ), - 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 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_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") ), - - 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_charge =BLOC (condition = "CHARGE != None", - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ), - - b_rigi_meca_lagr =BLOC(condition = "OPTION=='RIGI_MECA_LAGR'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ), - b_charge =BLOC(condition = "CHARGE != None", - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - THETA =SIMP(statut='o',typ=theta_geom ), - PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')", - regles=(AU_MOINS_UN('MODELE','CHARGE'),), - MODELE =SIMP(statut='f',typ=modele_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_charge =BLOC(condition = "CHARGE != None", - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ), - - b_mass_identite =BLOC(condition = "(OPTION in ('MASS_ID_MDEP_R','MASS_ID_MTEM_R','MASS_ID_MDNS_R','MASS_ID_MTNS_R')) ", - MODELE =SIMP(statut='o',typ=modele_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='**' ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_amor_meca =BLOC(condition = "OPTION=='AMOR_MECA'", - regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'), - ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ), - MODELE =SIMP(statut='o',typ=modele_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 ), - ), - - b_rigi_acou =BLOC(condition = "(OPTION=='RIGI_ACOU') or (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') or (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='**' ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_impe_meca =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - ), -) ; -#& 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_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('NUME_INIT', 'INST_INIT', 'META_INIT',),), - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - NUME_INIT =SIMP(statut='f',typ='I' ), - INST_INIT =SIMP(statut='f',typ='R'), - b_inst =BLOC(condition="(INST_INIT != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - META_INIT =SIMP(statut='f',typ=carte_var2_r ), - ), - COMP_INCR =FACT(statut='o',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 31/08/2004 AUTEUR VABHHTS J.PELLET -# 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") - - vv=eval(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 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. -# ====================================================================== -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="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes", - - OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ECLA_PG","PERM_CHAM","PROL_RTZ",), - fr="choix de la fonction a activer",), - - b_affe =BLOC(condition = "OPERATION == 'AFFE'", - - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS", - "EVOL_THER","EVOL_VARC",) ), - NOM_CHAM =SIMP(statut='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 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 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. -# ====================================================================== -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"), - 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), - ), - 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 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. -# ====================================================================== - -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=(PRESENT_PRESENT('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 05/10/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE D6BHHJP J.P.LEFEBVRE -def DEFIC_prod(self,ACTION,UNITE,**args): - if ACTION == "ASSOCIER" : - if UNITE != None : - return - else : - return entier - elif ACTION == "LIBERER" : - return - else : - raise AsException("ACTION non prevue") - -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"),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_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 16/06/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 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',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 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 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_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',into=C_PARA_FONCTION() ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - PARA =SIMP(statut='o',typ='R',max='**'), - FONCTION =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("TEMP","INST","X","Y","Z","EPSI","FREQ", - "PULS","AMOR","EPAIS","SAT", "PGAZ","PCAP") ), - DEFI_FONCTION =FACT(statut='f',max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/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 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 dyna_line_harm_prod(MATR_MASS,**args): - if AsType(MATR_MASS) == matr_asse_depl_r : return dyna_harmo - if AsType(MATR_MASS) == matr_asse_depl_c : return dyna_harmo - if AsType(MATR_MASS) == matr_asse_pres_c : return acou_harmo - if AsType(MATR_MASS) == matr_asse_gene_r : return harm_gene - raise AsException("type de concept resultat non prevu") - -DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, - fr="Réponse dynamique complexe d un système à une excitation harmonique", - 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_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 21/09/2004 AUTEUR PBADEL P.BADEL -# 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 ), - ), - 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 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158, - fr="Impression des charges mécaniques de type ddl imposés et relations linéaires entre les ddl", - UIinfo={"groupes":("Fonction",)}, - UNITE =SIMP(statut='f',typ='I',defaut=30), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",) ), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**', ), -) ; -#& MODIF COMMANDE DATE 10/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 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_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 ), - b_prec_crit =BLOC(condition = "LIST_FREQ != None or FREQ != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - ), - TOUT_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NUME_CMP_GENE =SIMP(statut='f',typ='I',max='**'), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 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 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_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',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')or(FORMAT == 'MED'))""", -### fr="sélection des entités toplogiques", - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), -### ), -### -### 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 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_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',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 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 09/11/2004 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 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='**', - NOM_CHAM =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()), - NOM_CHAM_MED =SIMP(statut='o',typ='TXM', fr="Nom du champ dans le fichier MED.", ), - NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), fr="Les composantes ont le meme nom dans MED et ASTER.", ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**', fr="Nom des composantes dans ASTER.", ), - NOM_CMP_MED =SIMP(statut='f',typ='TXM',max='**', fr="Nom des composantes dans MED.", ), - ), - ), - -# 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 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. -# ====================================================================== - -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', - FICHIER = SIMP(statut='f',typ='TX'), - UNITE = SIMP(statut='f',typ='I'), - FORMAT = SIMP(statut='f',typ='TXM',defaut="ASTER", - into=("ASTER","CASTEM","IDEAS"), - ), - b_impr_castem = BLOC(condition = "FORMAT == 'CASTEM'", - NIVE_GIBI = SIMP(statut='f',typ='I',defaut=10,into=(3,10),), - ), - b_impr_ideas = BLOC(condition = "FORMAT == 'IDEAS'", - VERSION = SIMP(statut='f',typ='I',defaut=5,into=(4,5),), - ), - ), - ); - -#& MODIF COMMANDE DATE 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 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_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), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R'), - 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",) - ), - SIEF_ELGA =SIMP(statut='f',typ=cham_elem_sief_r), - MODE_FOURIER =SIMP(statut='f',typ='I'), - THETA =SIMP(statut='f',typ=theta_geom), - PROPAGATION =SIMP(statut='f',typ='R'), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 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 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_mode_meca_ops import macro_mode_meca_ops - -def macro_mode_meca_prod(self,MATR_A,MATR_B,**args ): - self.type_sdprod(MATR_A,matr_asse_depl_r) - self.type_sdprod(MATR_B,matr_asse_depl_r) - return mode_meca - -MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=macro_mode_meca_prod, - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=(CO,matr_asse_depl_r) ), - MATR_B =SIMP(statut='o',typ=(CO,matr_asse_depl_r) ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# ce mot cle ne devrait il pas etre dans calc_freq - METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN", - into=("TRI_DIAG","JACOBI","SORENSEN",) ), - b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'", - PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ), - NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ), - NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), - ), - b_jacobi =BLOC(condition = "METHODE == 'JACOBI'", - PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ), - NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ), - PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ), - NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ), - ), - b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'", - PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ), - NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ), - PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SANS", - into=("MODE_RIGIDE","SANS") ), - CALC_FREQ =FACT(statut='d',min=0, - 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 22/11/2004 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="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.", - ), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ), - ANGLE =SIMP(statut='f',typ='I',defaut=0), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),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 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 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), - ), - 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 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 JMBHH01 J.M.PROIX -POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k, - fr="Calcul des FIC par extrapolation du champ de déplacements sur les lèvres de la fissure", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - - regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'), - PRESENT_PRESENT('TABL_DEPL_SUP','TABL_DEPL_INF'), - 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), - PRECISION = SIMP(statut='f',typ='R',defaut=0.001), - NOEUD = SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD = SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - 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") ), - ), - 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 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 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 pour chargement thermique"), - TABL_SIGM_THER =SIMP(statut='f',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 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. -# ====================================================================== -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=('TES',)), - ), - MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1, - GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'), - TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1), - TAILLE =SIMP(statut='f',typ='I'), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.), - PARTITION =SIMP(statut='f',typ='R' ), - ), - CODE =FACT("définition d un nom pour l'esemble d'une étude", - statut='f',min=1,max=1, - NOM =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='f',typ='I',defaut=15), - ), -) ; -#& MODIF COMMANDE DATE 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 16/06/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 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', 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 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 10/06/2004 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.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), -) ; -#& 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 05/10/2004 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='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 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/cataSTA74/Macro/__init__.py b/Aster/Cata/cataSTA74/Macro/__init__.py deleted file mode 100644 index 4aebb58b..00000000 --- a/Aster/Cata/cataSTA74/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/cataSTA74/Macro/ajout_quad_gmsh.py b/Aster/Cata/cataSTA74/Macro/ajout_quad_gmsh.py deleted file mode 100644 index e0d64393..00000000 --- a/Aster/Cata/cataSTA74/Macro/ajout_quad_gmsh.py +++ /dev/null @@ -1,252 +0,0 @@ -#@ 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/cataSTA74/Macro/calc_precont_ops.py b/Aster/Cata/cataSTA74/Macro/calc_precont_ops.py deleted file mode 100644 index b345ca86..00000000 --- a/Aster/Cata/cataSTA74/Macro/calc_precont_ops.py +++ /dev/null @@ -1,468 +0,0 @@ -#@ MODIF calc_precont_ops Macro DATE 22/11/2004 AUTEUR LEBOUVIE F.LEBOUVIER -# -*- 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.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/cataSTA74/Macro/defi_cable_bp_ops.py b/Aster/Cata/cataSTA74/Macro/defi_cable_bp_ops.py deleted file mode 100644 index 3d234d76..00000000 --- a/Aster/Cata/cataSTA74/Macro/defi_cable_bp_ops.py +++ /dev/null @@ -1,313 +0,0 @@ -#@ 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/cataSTA74/Macro/defi_part_feti_ops.py b/Aster/Cata/cataSTA74/Macro/defi_part_feti_ops.py deleted file mode 100644 index bf46f881..00000000 --- a/Aster/Cata/cataSTA74/Macro/defi_part_feti_ops.py +++ /dev/null @@ -1,182 +0,0 @@ -#@ MODIF defi_part_feti_ops Macro DATE 23/11/2004 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 : 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.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/cataSTA74/Macro/fiabilite_fichier.py b/Aster/Cata/cataSTA74/Macro/fiabilite_fichier.py deleted file mode 100644 index 1462a5ec..00000000 --- a/Aster/Cata/cataSTA74/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/cataSTA74/Macro/fiabilite_mefisto.py b/Aster/Cata/cataSTA74/Macro/fiabilite_mefisto.py deleted file mode 100644 index 3f820843..00000000 --- a/Aster/Cata/cataSTA74/Macro/fiabilite_mefisto.py +++ /dev/null @@ -1,448 +0,0 @@ -#@ 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/cataSTA74/Macro/impr_fonction_ops.py b/Aster/Cata/cataSTA74/Macro/impr_fonction_ops.py deleted file mode 100644 index 4f2ace21..00000000 --- a/Aster/Cata/cataSTA74/Macro/impr_fonction_ops.py +++ /dev/null @@ -1,393 +0,0 @@ -#@ MODIF impr_fonction_ops Macro DATE 30/11/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 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 - 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') - DEFI_FICHIER = self.get_cmd('DEFI_FICHIER') - DETRUIRE = self.get_cmd('DETRUIRE') - - #---------------------------------------------- - # 0. Traitement des arguments, initialisations - # unité logique des fichiers réservés - ul_reserve=(8,) - - # 0.1. Fichier - nomfich=None - if args['UNITE'] and args['UNITE']<>6: - nomfich='fort.'+str(args['UNITE']) - if INFO==2: - print ' Nom du fichier :',nomfich - if nomfich and os.path.exists(nomfich): - 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 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() - 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 - dicC={ - 'Val' : [lx,ly], - 'Lab' : [dic['NOM_PARA_FONC'],dic['NOM_RESU']] - } - Graph.AjoutParaCourbe(dicC, args=dCi) - graph.AjoutCourbe(**dicC) - 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']=='COMPLEXE' : lr=lval[2] - # on stocke les données dans le Graph - if typ=='fonction_c' and not dCi.has_key('PARTIE'): - dicC={ - 'Val' : lval, - 'Lab' : [dpar['NOM_PARA'],dpar['NOM_RESU']+'_R',dpar['NOM_RESU']+'_I'] - } - else: - dicC={ - 'Val' : [lx,lr], - 'Lab' : [dpar['NOM_PARA'],dpar['NOM_RESU']] - } - 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: - dicC={ - 'Val' : [lt,lx,ly], - 'Lab' : [dpar['NOM_PARA'],dpar['NOM_RESU'],dpa2['NOM_RESU']] - } - else: - dicC={ - 'Val' : [lx,ly], - 'Lab' : [dpar['NOM_RESU'],dpa2['NOM_RESU']] - } - 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='fort.'+str(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: - DEFI_FICHIER( ACTION='LIBERER', UNITE=args['UNITE'], ) - if FORMAT=='AGRAF' and args['UNITE_DIGR']<>args['UNITE'] \ - and args['UNITE_DIGR'] in ul_reserve: - DEFI_FICHIER( ACTION='LIBERER', UNITE=args['UNITE_DIGR'], ) - - # 2.4. On trace ! - graph.Trace(**kargs) - - # 99. Traiter le cas des UL réservées - if args['UNITE'] and args['UNITE'] in ul_reserve: - DEFI_FICHIER( ACTION='ASSOCIER', UNITE=args['UNITE'], - TYPE='ASCII', ACCES='APPEND' ) - if FORMAT=='AGRAF' and args['UNITE_DIGR']<>args['UNITE'] \ - and args['UNITE_DIGR'] in ul_reserve: - DEFI_FICHIER( ACTION='ASSOCIER', UNITE=args['UNITE_DIGR'], - TYPE='ASCII', ACCES='APPEND' ) - - return ier diff --git a/Aster/Cata/cataSTA74/Macro/impr_table_ops.py b/Aster/Cata/cataSTA74/Macro/impr_table_ops.py deleted file mode 100644 index ca1a492f..00000000 --- a/Aster/Cata/cataSTA74/Macro/impr_table_ops.py +++ /dev/null @@ -1,232 +0,0 @@ -#@ MODIF impr_table_ops Macro DATE 30/11/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 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 - 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') - DEFI_FICHIER = self.get_cmd('DEFI_FICHIER') - RECU_FONCTION = self.get_cmd('RECU_FONCTION') - - #---------------------------------------------- - # 0. Traitement des arguments, initialisations - # unité logique des fichiers réservés - ul_reserve=(8,) - - # 0.1. Fichier - nomfich=None - if args['UNITE'] and args['UNITE']<>6: - nomfich='fort.'+str(args['UNITE']) - if nomfich and os.path.exists(nomfich): - 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'] - - # 0.4.2. Traiter le cas des UL réservées - if args['UNITE'] and args['UNITE'] in ul_reserve: - DEFI_FICHIER( ACTION='LIBERER', UNITE=args['UNITE'], ) - - #---------------------------------------------- - # 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 - 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']: - kargs['PAGINATION']=args['PAGINATION'] - - 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 - if args['UNITE'] and args['UNITE'] in ul_reserve: - DEFI_FICHIER( ACTION='ASSOCIER', UNITE=args['UNITE'], - TYPE='ASCII', ACCES='APPEND' ) - - 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/cataSTA74/Macro/lire_fonction_ops.py b/Aster/Cata/cataSTA74/Macro/lire_fonction_ops.py deleted file mode 100644 index 52d1e906..00000000 --- a/Aster/Cata/cataSTA74/Macro/lire_fonction_ops.py +++ /dev/null @@ -1,254 +0,0 @@ -#@ MODIF lire_fonction_ops Macro DATE 30/11/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. -# ====================================================================== - -import string,os,Numeric - -# ------------------------------------------------------------------------------ -def m_format_libre(texte,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 - l_fonc=[] - fonc =[] - ier =0 - if SEPAR=='None' : SEPAR=None - for line in texte : - try : - if string.strip(line)=='' : raise ValueError - fonc.append(map(float,string.split(line,SEPAR))) - except ValueError: - if fonc==[] : pass # dans ce cas, on a plusieurs lignes délimitant 2 fonctions - else : - l_fonc.append(Numeric.array(fonc)) - fonc=[] - if fonc!=[] : - l_fonc.append(Numeric.array(fonc)) - - # vérifications de cohérences lignes et colonnes - ind_para=[INDIC_PARA[0]-1,INDIC_PARA[1]-1] - ind_resu=[INDIC_RESU[0]-1,INDIC_RESU[1]-1] - if INDIC_PARA[0]>len(l_fonc) : - ier=ier+1 - message= " INDIC_PARA :le nombre de blocs de fonctions dans " - message=message+"le fichier est inférieur à "+str(INDIC_PARA[0]) - return ier,message,[] - if INDIC_RESU[0]>len(l_fonc) : - ier=ier+1 - message= " INDIC_RESU :le nombre de blocs de fonctions dans " - message=message+"le fichier est inférieur à "+str(INDIC_RESU[0]) - return ier,message,[] - if INDIC_PARA[1]>len(l_fonc[ind_para[0]]) : - ier=ier+1 - message= " INDIC_PARA :la fonction numéro " - message=message+str(INDIC_PARA[0]) - message=message+" ne comporte que "+str(l_fonc[INDIC_PARA[0]])+" colonnes" - return ier,message,[] - if INDIC_RESU[1]>len(l_fonc[ind_resu[0]]) : - ier=ier+1 - message= " INDIC_RESU :la fonction numéro " - message=message+str(INDIC_RESU[0]) - message=message+" ne comporte que "+str(l_fonc[INDIC_RESU[0]])+" colonnes" - return ier,message,[] - - # construction du VALE de la fonction par recherche des indices - # de colonnes et de fonctions dans le tableau l_fonc - vale_1=l_fonc[ind_para[0]][:,ind_para[1]] - vale_2=l_fonc[ind_resu[0]][:,ind_resu[1]] - if len(vale_1)!=len(vale_2) : - ier=ier+1 - message= " INDIC_RESU :les deux colonnes demandées " - message=message+" pour INDIC_PARA et INDIC_RESU n ont pas la meme longueur :" - message=message+str(len(vale_1))+" et "+str(len(vale_2)) - return ier,message,[] - liste_vale=transpose([vale_1,vale_2]) - def add(x,y):return x+y - liste_vale=reduce(add,liste_vale) - return ier,'',liste_vale - -# ------------------------------------------------------------------------------ -def liste_simple(texte,INDIC_PARA,SEPAR): - """recherche d'une liste simple - """ - # format LIBRE - # liste simple - - l_fonc=[] - fonc =[] - ier =0 - if SEPAR=='None' : SEPAR=None - for line in texte : - try : - if string.strip(line)=='' : raise ValueError - fonc.append(map(float,string.split(line,SEPAR))) - except ValueError: - if fonc==[] : pass # dans ce cas, on a plusieurs lignes délimitant 2 fonctions - else : - l_fonc.append(Numeric.array(fonc)) - fonc=[] - if fonc!=[] : - l_fonc.append(Numeric.array(fonc)) - - # vérifications de cohérences lignes et colonnes - ind_para=[INDIC_PARA[0]-1,INDIC_PARA[1]-1] - if INDIC_PARA[0]>len(l_fonc) : - ier=ier+1 - message= " INDIC_PARA :le nombre de blocs de fonctions dans " - message=message+"le fichier est inférieur à "+str(INDIC_PARA[0]) - return ier,message,[] - if INDIC_PARA[1]>len(l_fonc[ind_para[0]]) : - ier=ier+1 - message= " INDIC_PARA :la fonction numéro " - message=message+str(INDIC_PARA[0]) - message=message+" ne comporte que "+str(l_fonc[INDIC_PARA[0]])+" colonnes" - self.cr.fatal(message) - return ier,message,[] - - # construction du VALE de la fonction par recherche des indices - # de colonnes et de fonctions dans le tableau l_fonc - vale_1=l_fonc[ind_para[0]][:,ind_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 - """ - ier=0 - - from Accas import _F -# 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') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Lecture de la fonction dans un fichier d unité logique UNITE - - file="./fort."+str(UNITE) - if not os.path.isfile(file) : - ier=ier+1 - self.cr.fatal(" le fichier d unité logique "+str(UNITE)+" est introuvable") - return ier - file=open(file,'r') - texte=file.readlines() - file.close() - - 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=m_format_libre(texte,INDIC_PARA,args['INDIC_RESU'],SEPAR) - if ier!=0 : - self.cr.fatal(message) - return ier - - # 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=m_format_libre(texte,INDIC_PARA,indic1,SEPAR) - if ier!=0 : - self.cr.fatal(message) - return ier - ier,message,liste_vale_i=m_format_libre(texte,INDIC_PARA,indic2,SEPAR) - if ier!=0 : - self.cr.fatal(message) - return ier - liste=[] - if 'INDIC_REEL' in args : - for i in range(len(liste_vale_r)/2) : - liste=liste+[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=liste+[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=m_format_libre(texte,args['INDIC_ABSCISSE'],elem['INDIC_RESU'],SEPAR) - if ier!=0 : - self.cr.fatal(message) - return ier - 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(texte,INDIC_PARA,SEPAR) - if ier!=0 : - self.cr.fatal(message) - return ier - 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) - - return ier diff --git a/Aster/Cata/cataSTA74/Macro/lire_inte_spec_ops.py b/Aster/Cata/cataSTA74/Macro/lire_inte_spec_ops.py deleted file mode 100644 index d3ae6d67..00000000 --- a/Aster/Cata/cataSTA74/Macro/lire_inte_spec_ops.py +++ /dev/null @@ -1,122 +0,0 @@ -#@ MODIF lire_inte_spec_ops Macro DATE 20/09/2004 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 - # 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) - - # Lecture de la fonction dans un fichier d unité logique UNITE - - file="./fort."+str(UNITE) - if not os.path.isfile(file) : - ier=ier+1 - self.cr.fatal(" le fichier d unité logique "+str(UNITE)+" est introuvable") - return ier - file=open(file,'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,) - - return ier diff --git a/Aster/Cata/cataSTA74/Macro/lire_table_ops.py b/Aster/Cata/cataSTA74/Macro/lire_table_ops.py deleted file mode 100644 index e7ba1006..00000000 --- a/Aster/Cata/cataSTA74/Macro/lire_table_ops.py +++ /dev/null @@ -1,173 +0,0 @@ -#@ MODIF lire_table_ops Macro DATE 30/11/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. -# ====================================================================== - -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 - """ - from Accas import _F - import os - - 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 - file="./fort."+str(UNITE) - if not os.path.isfile(file) : - ier=ier+1 - self.cr.fatal(" le fichier d unité logique "+str(UNITE)+" est introuvable") - return ier - file=open(file,'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) - - return ier diff --git a/Aster/Cata/cataSTA74/Macro/macr_adap_mail_ops.py b/Aster/Cata/cataSTA74/Macro/macr_adap_mail_ops.py deleted file mode 100644 index 16625395..00000000 --- a/Aster/Cata/cataSTA74/Macro/macr_adap_mail_ops.py +++ /dev/null @@ -1,727 +0,0 @@ -#@ 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/cataSTA74/Macro/macr_ascouf_calc_ops.py b/Aster/Cata/cataSTA74/Macro/macr_ascouf_calc_ops.py deleted file mode 100644 index fda98363..00000000 --- a/Aster/Cata/cataSTA74/Macro/macr_ascouf_calc_ops.py +++ /dev/null @@ -1,677 +0,0 @@ -#@ 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+'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 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/cataSTA74/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA74/Macro/macr_aspic_calc_ops.py deleted file mode 100644 index b6d91b36..00000000 --- a/Aster/Cata/cataSTA74/Macro/macr_aspic_calc_ops.py +++ /dev/null @@ -1,821 +0,0 @@ -#@ MODIF macr_aspic_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_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 - 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) -# -# 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/cataSTA74/Macro/macr_aspic_mail_ops.py b/Aster/Cata/cataSTA74/Macro/macr_aspic_mail_ops.py deleted file mode 100644 index 296cab1d..00000000 --- a/Aster/Cata/cataSTA74/Macro/macr_aspic_mail_ops.py +++ /dev/null @@ -1,845 +0,0 @@ -#@ MODIF macr_aspic_mail_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. -# ====================================================================== - - - -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) : - -# 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 - 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) : - -# 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" - 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) : -# - 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 (THETA > 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 - 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 (THETA > 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+'opti donn ' - texte=texte+"'"+loc_datg+'aspic.datg'+"';\n" - 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 ) -# - return ier - diff --git a/Aster/Cata/cataSTA74/Macro/macr_cabri_calc_ops.py b/Aster/Cata/cataSTA74/Macro/macr_cabri_calc_ops.py deleted file mode 100644 index a829425f..00000000 --- a/Aster/Cata/cataSTA74/Macro/macr_cabri_calc_ops.py +++ /dev/null @@ -1,542 +0,0 @@ -#@ 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/cataSTA74/Macro/macr_cabri_mail_dat.py b/Aster/Cata/cataSTA74/Macro/macr_cabri_mail_dat.py deleted file mode 100644 index 7d673257..00000000 --- a/Aster/Cata/cataSTA74/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/cataSTA74/Macro/macr_cabri_mail_ops.py b/Aster/Cata/cataSTA74/Macro/macr_cabri_mail_ops.py deleted file mode 100644 index d5ad388f..00000000 --- a/Aster/Cata/cataSTA74/Macro/macr_cabri_mail_ops.py +++ /dev/null @@ -1,461 +0,0 @@ -#@ MODIF macr_cabri_mail_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. -# ====================================================================== - -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/cataSTA74/Macro/macr_cara_poutre_ops.py b/Aster/Cata/cataSTA74/Macro/macr_cara_poutre_ops.py deleted file mode 100644 index e0849aff..00000000 --- a/Aster/Cata/cataSTA74/Macro/macr_cara_poutre_ops.py +++ /dev/null @@ -1,816 +0,0 @@ -#@ MODIF macr_cara_poutre_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 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.icmd=1 - 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/cataSTA74/Macro/macr_ecla_pg_ops.py b/Aster/Cata/cataSTA74/Macro/macr_ecla_pg_ops.py deleted file mode 100644 index 8bfada76..00000000 --- a/Aster/Cata/cataSTA74/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/cataSTA74/Macro/macr_fiab_impr_ops.py b/Aster/Cata/cataSTA74/Macro/macr_fiab_impr_ops.py deleted file mode 100644 index 3b338c77..00000000 --- a/Aster/Cata/cataSTA74/Macro/macr_fiab_impr_ops.py +++ /dev/null @@ -1,110 +0,0 @@ -#@ MODIF macr_fiab_impr_ops Macro DATE 07/10/2004 AUTEUR GNICOLAS G.NICOLAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -# RESPONSABLE GNICOLAS G.NICOLAS -# -def macr_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 -#____________________________________________________________________ -# - 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/cataSTA74/Macro/macr_fiabilite_ops.py b/Aster/Cata/cataSTA74/Macro/macr_fiabilite_ops.py deleted file mode 100644 index 62a10eba..00000000 --- a/Aster/Cata/cataSTA74/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/cataSTA74/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA74/Macro/macr_lign_coupe_ops.py deleted file mode 100644 index 0d57da06..00000000 --- a/Aster/Cata/cataSTA74/Macro/macr_lign_coupe_ops.py +++ /dev/null @@ -1,173 +0,0 @@ -#@ MODIF macr_lign_coupe_ops 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 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 - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') - DEFI_GROUP =self.get_cmd('DEFI_GROUP') - AFFE_MODELE =self.get_cmd('AFFE_MODELE') - PROJ_CHAMP =self.get_cmd('PROJ_CHAMP') - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T') - - # La macro compte pour 1 dans la numerotation des commandes - #self.icmd=1 - 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) - cur_dir=os.getcwd() - nomFichierSortie =cur_dir+'/fort.'+str(UNITE_MAILLAGE) - fproc=open(nomFichierSortie,'w') - fproc.write(resu_mail) - fproc.close() - - # Lecture du maillage de seg2 contenant toutes les lignes de coupe - - __macou=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,); - - motscles={} - iocc=1 - motscles['CREA_GROUP_NO']=[] - for m in LIGN_COUPE : - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA='LICOU'+str(iocc),) ) - iocc=iocc+1 - __macou=DEFI_GROUP( reuse =__macou , MAILLAGE=__macou , **motscles ); - - if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') : - __mocou=AFFE_MODELE(MAILLAGE=__macou, - AFFE=_F(TOUT='OUI', - PHENOMENE='MECANIQUE', - MODELISATION='BARRE',),); - elif AsType(RESULTAT).__name__ in ('evol_ther',) : - __mocou=AFFE_MODELE(MAILLAGE=__macou, - AFFE=_F(TOUT='OUI', - PHENOMENE='THERMIQUE', - MODELISATION='PLAN',),); - - __recou=PROJ_CHAMP(METHODE='ELEM', - RESULTAT=RESULTAT, - MODELE_1=MODELE, - MODELE_2=__mocou, - NOM_CHAM=NOM_CHAM,); - - # Production d'une table par ligne de coupe - # Toutes les tables sont des concepts sortant de la macro définies - # dans chaque occurence du mcfact lign_coupe - - iocc=1 - for m in LIGN_COUPE : - self.DeclareOut('tt',m['TABLE']) - tt=POST_RELEVE_T(ACTION=_F(INTITULE = 'lig.coupe'+str(iocc), - RESULTAT = __recou, - GROUP_NO = 'LICOU'+str(iocc), - NOM_CHAM = NOM_CHAM, - TOUT_CMP = 'OUI', - OPERATION = 'EXTRACTION', ),); - iocc=iocc+1 - - return ier diff --git a/Aster/Cata/cataSTA74/Macro/macr_recal_ops.py b/Aster/Cata/cataSTA74/Macro/macr_recal_ops.py deleted file mode 100644 index 308846a5..00000000 --- a/Aster/Cata/cataSTA74/Macro/macr_recal_ops.py +++ /dev/null @@ -1,162 +0,0 @@ -#@ MODIF macr_recal_ops 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. -# ====================================================================== - - - -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.icmd=1 - 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/cataSTA74/Macro/macro_matr_ajou_ops.py b/Aster/Cata/cataSTA74/Macro/macro_matr_ajou_ops.py deleted file mode 100644 index 34595923..00000000 --- a/Aster/Cata/cataSTA74/Macro/macro_matr_ajou_ops.py +++ /dev/null @@ -1,260 +0,0 @@ -#@ 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/cataSTA74/Macro/macro_matr_asse_ops.py b/Aster/Cata/cataSTA74/Macro/macro_matr_asse_ops.py deleted file mode 100644 index 5466b685..00000000 --- a/Aster/Cata/cataSTA74/Macro/macro_matr_asse_ops.py +++ /dev/null @@ -1,160 +0,0 @@ -#@ MODIF macro_matr_asse_ops 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. -# ====================================================================== - - - -def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE, - SOLVEUR,NUME_DDL,CHARGE,INST,**args): - """ - Ecriture de la macro MACRO_MATR_ASSE - """ - ier=0 - - # On met le mot cle NUME_DDL dans une variable locale pour le proteger - numeddl=NUME_DDL - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - CALC_MATR_ELEM=self.get_cmd('CALC_MATR_ELEM') - NUME_DDL =self.get_cmd('NUME_DDL') - ASSE_MATRICE =self.get_cmd('ASSE_MATRICE') - # La macro compte pour 1 dans la numerotation des commandes - #self.icmd=1 - 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 - - if m['SIEF_ELGA']!=None and option!='RIGI_GEOM': - ier=ier+1 - self.cr.fatal(" SIEF_ELGA N EST ADMIS QU AVEC L OPTION RIGI_GEOM") - return ier - - if m['MODE_FOURIER']!=None and option not in ('RIGI_MECA','RIGI_FLUI_STRU','RIGI_THER'): - ier=ier+1 - self.cr.fatal(" MODE_FOURIER N EST ADMIS QU AVEC UNE DES OPTIONS RIGI_MECA RIGI_FLUI_STRU RIGI_THER") - return ier - - if (m['THETA']!=None or m['PROPAGATION']!=None) and option!='RIGI_MECA_LAGR': - ier=ier+1 - self.cr.fatal(" PROPAGATION ET,OU THETA NE SONT ADMIS QU AVEC L OPTION RIGI_MECA_LAGR") - return ier - - motscles={'OPTION':option} - if option == 'AMOR_MECA': - if (not lrigel or not lmasel): - ier=ier+1 - self.cr.fatal(""" POUR CALCULER AMOR_MECA, IL FAUT AVOIR CALCULE - RIGI_MECA ET MASS_MECA AUPARAVANT (DANS LE MEME APPEL)""") - return ier - if CHAM_MATER != None: - motscles['RIGI_MECA'] =rigel - motscles['MASS_MECA'] =masel - if CHARGE != None: - if option[0:9] not in ('MASS_THER','RIGI_GEOM','MASS_ID_M'): - motscles['CHARGE'] =CHARGE - if CHAM_MATER != None: motscles['CHAM_MATER'] =CHAM_MATER - if CARA_ELEM != None: motscles['CARA_ELEM'] =CARA_ELEM - if INST != None: motscles['INST'] =INST - if m['SIEF_ELGA'] : motscles['SIEF_ELGA'] =m['SIEF_ELGA'] - if m['MODE_FOURIER']: motscles['MODE_FOURIER']=m['MODE_FOURIER'] - if m['THETA'] : motscles['THETA'] =m['THETA'] - if m['PROPAGATION'] : motscles['PROPAGATION'] =m['PROPAGATION'] - - __a=CALC_MATR_ELEM(MODELE=MODELE,**motscles) - - if option == 'RIGI_MECA': - rigel = __a - lrigel = 1 - if option == 'MASS_MECA': - masel = __a - lmasel = 1 - - if lnume and option in ('RIGI_MECA','RIGI_THER','RIGI_ACOU','RIGI_MECA_LAGR'): - self.DeclareOut('num',numeddl) - # On peut passer des mots cles egaux a None. Ils sont ignores - num=NUME_DDL(MATR_RIGI=__a,METHODE=methode,RENUM=renum) - else: - num=numeddl - - self.DeclareOut('mm',m['MATRICE']) - mm=ASSE_MATRICE(MATR_ELEM=__a,NUME_DDL=num) - return ier diff --git a/Aster/Cata/cataSTA74/Macro/macro_miss_3d_ops.py b/Aster/Cata/cataSTA74/Macro/macro_miss_3d_ops.py deleted file mode 100644 index 0d5d360b..00000000 --- a/Aster/Cata/cataSTA74/Macro/macro_miss_3d_ops.py +++ /dev/null @@ -1,76 +0,0 @@ -#@ MODIF macro_miss_3d_ops Macro DATE 03/11/2004 AUTEUR ACBHHCD G.DEVESA -# -*- 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.icmd=1 - 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/cataSTA74/Macro/macro_mode_meca_ops.py b/Aster/Cata/cataSTA74/Macro/macro_mode_meca_ops.py deleted file mode 100644 index efbd4db3..00000000 --- a/Aster/Cata/cataSTA74/Macro/macro_mode_meca_ops.py +++ /dev/null @@ -1,139 +0,0 @@ -#@ MODIF macro_mode_meca_ops Macro DATE 30/11/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. -# ====================================================================== - - - -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.icmd=1 - 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/cataSTA74/Macro/macro_proj_base_ops.py b/Aster/Cata/cataSTA74/Macro/macro_proj_base_ops.py deleted file mode 100644 index edfee029..00000000 --- a/Aster/Cata/cataSTA74/Macro/macro_proj_base_ops.py +++ /dev/null @@ -1,63 +0,0 @@ -#@ MODIF macro_proj_base_ops 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. -# ====================================================================== - - - -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.icmd=1 - 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/cataSTA74/Macro/pre_gmsh_ops.py b/Aster/Cata/cataSTA74/Macro/pre_gmsh_ops.py deleted file mode 100644 index 8ff4170e..00000000 --- a/Aster/Cata/cataSTA74/Macro/pre_gmsh_ops.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- -#@ MODIF pre_gmsh_ops Macro DATE 11/06/2002 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def pre_gmsh_ops(self,UNITE_MAILLAGE,UNITE_GMSH,MODI_QUAD,**args): - """ - Ecriture de la macro PRE_GMSH - """ - import os - from Macro.ajout_quad_gmsh import ajout_quad_gmsh - ier=0 - - PRE_GMSH_LECT =self.get_cmd('PRE_GMSH_LECT') - - # La macro compte pour 1 dans la numerotation des commandes - self.icmd=1 - - if MODI_QUAD=='OUI': - cur_dir=os.getcwd() - unit = str(UNITE_GMSH) - nomFichierGmsh = cur_dir+'/fort.'+unit - nomFichierMail = cur_dir+'/sortie' - -# récupération du fichier .msh complet mis dans la string 'texte' - - fproc=open(nomFichierGmsh,'r') - texte=fproc.read() - fproc.close() - - resu=ajout_quad_gmsh(texte) - if not resu: - ier=ier+1 - self.cr.fatal("Erreur dans la methode python de transformation mailles lineaires-quadratiques") - return ier - - fsort=open(nomFichierMail,'w') - fsort.write(resu) - fsort.close() - os.system('cp '+nomFichierMail+' '+nomFichierGmsh) - - PRE_GMSH_LECT(UNITE_MAILLAGE = UNITE_MAILLAGE, - UNITE_GMSH = UNITE_GMSH ) - - return ier - diff --git a/Aster/Cata/cataSTA74/Macro/reca_algo.py b/Aster/Cata/cataSTA74/Macro/reca_algo.py deleted file mode 100644 index 319d6d67..00000000 --- a/Aster/Cata/cataSTA74/Macro/reca_algo.py +++ /dev/null @@ -1,260 +0,0 @@ -#@ MODIF reca_algo 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 Numeric -from Numeric import take -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)) - 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=',')) - 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/cataSTA74/Macro/reca_interp.py b/Aster/Cata/cataSTA74/Macro/reca_interp.py deleted file mode 100644 index 00ad62d2..00000000 --- a/Aster/Cata/cataSTA74/Macro/reca_interp.py +++ /dev/null @@ -1,180 +0,0 @@ -#@ 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/cataSTA74/Macro/reca_message.py b/Aster/Cata/cataSTA74/Macro/reca_message.py deleted file mode 100644 index 0691b785..00000000 --- a/Aster/Cata/cataSTA74/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/cataSTA74/Macro/recal.py b/Aster/Cata/cataSTA74/Macro/recal.py deleted file mode 100644 index cb2d4778..00000000 --- a/Aster/Cata/cataSTA74/Macro/recal.py +++ /dev/null @@ -1,379 +0,0 @@ -#@ MODIF recal 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 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/cataSTA74/Macro/stanley_ops.py b/Aster/Cata/cataSTA74/Macro/stanley_ops.py deleted file mode 100644 index a38f2808..00000000 --- a/Aster/Cata/cataSTA74/Macro/stanley_ops.py +++ /dev/null @@ -1,66 +0,0 @@ -#@ MODIF stanley_ops Macro DATE 30/11/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 stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,**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.icmd=1 - - - # 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.""") - - return ier diff --git a/Aster/Cata/cataSTA74/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA74/Macro/test_fichier_ops.py deleted file mode 100644 index 5f4ac116..00000000 --- a/Aster/Cata/cataSTA74/Macro/test_fichier_ops.py +++ /dev/null @@ -1,195 +0,0 @@ -#@ MODIF test_fichier_ops Macro DATE 03/11/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 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.icmd=1 - 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 - from Macro.test_fichier_ops import md5file - - # 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: - print ' '+str(s)+' pour "'+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: - print " LE FICHIER N'A PAS ETE FERME :\n",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 : - 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(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): - """ - 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 - OUT : - code retour : 0 si ok, >0 sinon - md5sum - """ - import os.path - import re - import string - import math - import md5 - # 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: - #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)) - 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() - 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) - return 0, md5sum diff --git a/Aster/Cata/cataSTA74/__init__.py b/Aster/Cata/cataSTA74/__init__.py deleted file mode 100644 index 17b64ff9..00000000 --- a/Aster/Cata/cataSTA74/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -import os,sys -import prefs -import sys -rep_macro = os.path.join(prefs.repIni,'Cata/cataSTA74') -sys.path.insert(0,rep_macro) -from cata import * diff --git a/Aster/Cata/cataSTA74/cata.py b/Aster/Cata/cataSTA74/cata.py deleted file mode 100755 index 7941b1c2..00000000 --- a/Aster/Cata/cataSTA74/cata.py +++ /dev/null @@ -1,21679 +0,0 @@ -#& MODIF ENTETE DATE 04/04/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. -# ====================================================================== - -import Accas -from Accas import * -from Accas import _F -import string -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: V6_main $" -__Id__="$Id: cata.py,v 1.2 2005-06-03 13:04:05 eficas 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] - """ - 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_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 """ - - - 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 """ - - - 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) : - 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. - """ - 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]], - } - 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 Valeurs(self) : - """ - Retourne deux listes de valeurs : abscisses et ordonnees - """ - if hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : - 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] - 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 - 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 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) -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. - """ - 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. - """ - 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""" - 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): - 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 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 - """ - 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 31/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 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='**', - 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'),), - 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 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 affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args): - if MECA_IMPO != None : return char_cine_meca - if THER_IMPO != None : return char_cine_ther - if ACOU_IMPO != None : return char_cine_acou - raise AsException("type de concept resultat non prevu") - -AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod - ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation", - 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_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' ), - ), - 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 -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT 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 04/04/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. -# ====================================================================== -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', - 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 27/09/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 -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',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 ) ), - 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 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. -# ====================================================================== -# 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 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_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('NUME_INIT', 'INST_INIT', 'META_INIT',),), - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - NUME_INIT =SIMP(statut='f',typ='I' ), - INST_INIT =SIMP(statut='f',typ='R'), - b_inst =BLOC(condition="(INST_INIT != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - META_INIT =SIMP(statut='f',typ=carte_var2_r ), - ), - COMP_INCR =FACT(statut='o',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 31/08/2004 AUTEUR VABHHTS J.PELLET -# 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") - - vv=eval(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 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. -# ====================================================================== -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="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes", - - OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ECLA_PG","PERM_CHAM","PROL_RTZ",), - fr="choix de la fonction a activer",), - - b_affe =BLOC(condition = "OPERATION == 'AFFE'", - - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS", - "EVOL_THER","EVOL_VARC",) ), - NOM_CHAM =SIMP(statut='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 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 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. -# ====================================================================== -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"), - 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), - ), - 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 16/06/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 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',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 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 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_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',into=C_PARA_FONCTION() ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - PARA =SIMP(statut='o',typ='R',max='**'), - FONCTION =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("TEMP","INST","X","Y","Z","EPSI","FREQ", - "PULS","AMOR","EPAIS","SAT", "PGAZ","PCAP") ), - DEFI_FONCTION =FACT(statut='f',max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/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 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 dyna_line_harm_prod(MATR_MASS,**args): - if AsType(MATR_MASS) == matr_asse_depl_r : return dyna_harmo - if AsType(MATR_MASS) == matr_asse_depl_c : return dyna_harmo - if AsType(MATR_MASS) == matr_asse_pres_c : return acou_harmo - if AsType(MATR_MASS) == matr_asse_gene_r : return harm_gene - raise AsException("type de concept resultat non prevu") - -DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, - fr="Réponse dynamique complexe d un système à une excitation harmonique", - 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_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 21/09/2004 AUTEUR PBADEL P.BADEL -# 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 ), - ), - 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 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158, - fr="Impression des charges mécaniques de type ddl imposés et relations linéaires entre les ddl", - UIinfo={"groupes":("Fonction",)}, - UNITE =SIMP(statut='f',typ='I',defaut=30), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",) ), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**', ), -) ; -#& MODIF COMMANDE DATE 10/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 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_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 ), - b_prec_crit =BLOC(condition = "LIST_FREQ != None or FREQ != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - ), - TOUT_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NUME_CMP_GENE =SIMP(statut='f',typ='I',max='**'), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 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 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_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',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 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 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 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), - ), - 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 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. -# ====================================================================== -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=('TES',)), - ), - MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1, - GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'), - TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1), - TAILLE =SIMP(statut='f',typ='I'), - TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.), - PARTITION =SIMP(statut='f',typ='R' ), - ), - CODE =FACT("définition d un nom pour l'esemble d'une étude", - statut='f',min=1,max=1, - NOM =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='f',typ='I',defaut=15), - ), -) ; -#& MODIF COMMANDE DATE 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 16/06/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 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', 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 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 10/06/2004 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.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), -) ; -#& 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 05/10/2004 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='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 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/cataSTA74/ops.py b/Aster/Cata/cataSTA74/ops.py deleted file mode 100644 index 3becd375..00000000 --- a/Aster/Cata/cataSTA74/ops.py +++ /dev/null @@ -1,432 +0,0 @@ -#@ MODIF ops Cata DATE 05/10/2004 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. -# ====================================================================== - - -# Modules Python -import types -import string,linecache,os,traceback,re -import pickle - -# Modules Eficas -import Accas -from Accas import ASSD - -try: - import aster - # Si le module aster est présent, on le connecte - # au JDC - import Build.B_CODE - Build.B_CODE.CODE.codex=aster -except: - pass - -def DEBUT(self,PAR_LOT,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 : - self.jdc.cr.fatal(" Erreur a la relecture du fichier pick.1 : aucun objet sauvegardé ne sera récupéré") - return - 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 : - self.jdc.cr.fatal(" types incompatibles entre glob.1 et pick.1 pour concept de nom "+elem) - return - else: - self.jdc.cr.fatal(" 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 - - for l in ll: - print l - lines=ll - ll=[] - for l in lines: - l=re.sub(" *MAT *= *",NOM_MATER+" = ",l,1) - ll.append(l) - text=string.join(ll,'\n') - return text - -def 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) - -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/__init__.py b/Aster/Cata/cataSTA76/Macro/__init__.py deleted file mode 100644 index 4aebb58b..00000000 --- a/Aster/Cata/cataSTA76/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/cataSTA76/Macro/ajout_quad_gmsh.py b/Aster/Cata/cataSTA76/Macro/ajout_quad_gmsh.py deleted file mode 100644 index e0d64393..00000000 --- a/Aster/Cata/cataSTA76/Macro/ajout_quad_gmsh.py +++ /dev/null @@ -1,252 +0,0 @@ -#@ 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/cataSTA76/Macro/calc_precont_ops.py b/Aster/Cata/cataSTA76/Macro/calc_precont_ops.py deleted file mode 100644 index 6d4e7618..00000000 --- a/Aster/Cata/cataSTA76/Macro/calc_precont_ops.py +++ /dev/null @@ -1,468 +0,0 @@ -#@ 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/cataSTA76/Macro/defi_cable_bp_ops.py b/Aster/Cata/cataSTA76/Macro/defi_cable_bp_ops.py deleted file mode 100644 index 3d234d76..00000000 --- a/Aster/Cata/cataSTA76/Macro/defi_cable_bp_ops.py +++ /dev/null @@ -1,313 +0,0 @@ -#@ 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/cataSTA76/Macro/defi_part_feti_ops.py b/Aster/Cata/cataSTA76/Macro/defi_part_feti_ops.py deleted file mode 100644 index f5e4df29..00000000 --- a/Aster/Cata/cataSTA76/Macro/defi_part_feti_ops.py +++ /dev/null @@ -1,182 +0,0 @@ -#@ 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/cataSTA76/Macro/fiabilite_fichier.py b/Aster/Cata/cataSTA76/Macro/fiabilite_fichier.py deleted file mode 100644 index 1462a5ec..00000000 --- a/Aster/Cata/cataSTA76/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/cataSTA76/Macro/fiabilite_mefisto.py b/Aster/Cata/cataSTA76/Macro/fiabilite_mefisto.py deleted file mode 100644 index 3f820843..00000000 --- a/Aster/Cata/cataSTA76/Macro/fiabilite_mefisto.py +++ /dev/null @@ -1,448 +0,0 @@ -#@ 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/cataSTA76/Macro/impr_fonction_ops.py b/Aster/Cata/cataSTA76/Macro/impr_fonction_ops.py deleted file mode 100644 index 1e9d6e49..00000000 --- a/Aster/Cata/cataSTA76/Macro/impr_fonction_ops.py +++ /dev/null @@ -1,400 +0,0 @@ -#@ 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/cataSTA76/Macro/impr_table_ops.py b/Aster/Cata/cataSTA76/Macro/impr_table_ops.py deleted file mode 100644 index ef5872f8..00000000 --- a/Aster/Cata/cataSTA76/Macro/impr_table_ops.py +++ /dev/null @@ -1,247 +0,0 @@ -#@ 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/cataSTA76/Macro/lire_fonction_ops.py b/Aster/Cata/cataSTA76/Macro/lire_fonction_ops.py deleted file mode 100644 index 0285487f..00000000 --- a/Aster/Cata/cataSTA76/Macro/lire_fonction_ops.py +++ /dev/null @@ -1,268 +0,0 @@ -#@ 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/cataSTA76/Macro/lire_inte_spec_ops.py b/Aster/Cata/cataSTA76/Macro/lire_inte_spec_ops.py deleted file mode 100644 index bb40a907..00000000 --- a/Aster/Cata/cataSTA76/Macro/lire_inte_spec_ops.py +++ /dev/null @@ -1,125 +0,0 @@ -#@ 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/cataSTA76/Macro/lire_table_ops.py b/Aster/Cata/cataSTA76/Macro/lire_table_ops.py deleted file mode 100644 index 81567113..00000000 --- a/Aster/Cata/cataSTA76/Macro/lire_table_ops.py +++ /dev/null @@ -1,177 +0,0 @@ -#@ 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/cataSTA76/Macro/macr_adap_mail_ops.py b/Aster/Cata/cataSTA76/Macro/macr_adap_mail_ops.py deleted file mode 100644 index 16625395..00000000 --- a/Aster/Cata/cataSTA76/Macro/macr_adap_mail_ops.py +++ /dev/null @@ -1,727 +0,0 @@ -#@ 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/cataSTA76/Macro/macr_ascouf_calc_ops.py b/Aster/Cata/cataSTA76/Macro/macr_ascouf_calc_ops.py deleted file mode 100644 index fda98363..00000000 --- a/Aster/Cata/cataSTA76/Macro/macr_ascouf_calc_ops.py +++ /dev/null @@ -1,677 +0,0 @@ -#@ 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/cataSTA76/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA76/Macro/macr_aspic_calc_ops.py deleted file mode 100644 index 5bd34c5e..00000000 --- a/Aster/Cata/cataSTA76/Macro/macr_aspic_calc_ops.py +++ /dev/null @@ -1,822 +0,0 @@ -#@ 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/cataSTA76/Macro/macr_aspic_mail_ops.py b/Aster/Cata/cataSTA76/Macro/macr_aspic_mail_ops.py deleted file mode 100644 index d1140f87..00000000 --- a/Aster/Cata/cataSTA76/Macro/macr_aspic_mail_ops.py +++ /dev/null @@ -1,927 +0,0 @@ -#@ 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/cataSTA76/Macro/macr_cabri_calc_ops.py b/Aster/Cata/cataSTA76/Macro/macr_cabri_calc_ops.py deleted file mode 100644 index a829425f..00000000 --- a/Aster/Cata/cataSTA76/Macro/macr_cabri_calc_ops.py +++ /dev/null @@ -1,542 +0,0 @@ -#@ 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/cataSTA76/Macro/macr_cabri_mail_dat.py b/Aster/Cata/cataSTA76/Macro/macr_cabri_mail_dat.py deleted file mode 100644 index 7d673257..00000000 --- a/Aster/Cata/cataSTA76/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/cataSTA76/Macro/macr_cabri_mail_ops.py b/Aster/Cata/cataSTA76/Macro/macr_cabri_mail_ops.py deleted file mode 100644 index dbafafe0..00000000 --- a/Aster/Cata/cataSTA76/Macro/macr_cabri_mail_ops.py +++ /dev/null @@ -1,461 +0,0 @@ -#@ 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/cataSTA76/Macro/macr_cara_poutre_ops.py b/Aster/Cata/cataSTA76/Macro/macr_cara_poutre_ops.py deleted file mode 100644 index de567ca7..00000000 --- a/Aster/Cata/cataSTA76/Macro/macr_cara_poutre_ops.py +++ /dev/null @@ -1,815 +0,0 @@ -#@ 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/cataSTA76/Macro/macr_ecla_pg_ops.py b/Aster/Cata/cataSTA76/Macro/macr_ecla_pg_ops.py deleted file mode 100644 index 8bfada76..00000000 --- a/Aster/Cata/cataSTA76/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/cataSTA76/Macro/macr_fiab_impr_ops.py b/Aster/Cata/cataSTA76/Macro/macr_fiab_impr_ops.py deleted file mode 100644 index 08ac8d10..00000000 --- a/Aster/Cata/cataSTA76/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/cataSTA76/Macro/macr_fiabilite_ops.py b/Aster/Cata/cataSTA76/Macro/macr_fiabilite_ops.py deleted file mode 100644 index 62a10eba..00000000 --- a/Aster/Cata/cataSTA76/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/cataSTA76/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA76/Macro/macr_lign_coupe_ops.py deleted file mode 100644 index 91bbca8d..00000000 --- a/Aster/Cata/cataSTA76/Macro/macr_lign_coupe_ops.py +++ /dev/null @@ -1,174 +0,0 @@ -#@ 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/cataSTA76/Macro/macr_recal_ops.py b/Aster/Cata/cataSTA76/Macro/macr_recal_ops.py deleted file mode 100644 index 180f8459..00000000 --- a/Aster/Cata/cataSTA76/Macro/macr_recal_ops.py +++ /dev/null @@ -1,161 +0,0 @@ -#@ 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/cataSTA76/Macro/macro_matr_ajou_ops.py b/Aster/Cata/cataSTA76/Macro/macro_matr_ajou_ops.py deleted file mode 100644 index 34595923..00000000 --- a/Aster/Cata/cataSTA76/Macro/macro_matr_ajou_ops.py +++ /dev/null @@ -1,260 +0,0 @@ -#@ 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/cataSTA76/Macro/macro_matr_asse_ops.py b/Aster/Cata/cataSTA76/Macro/macro_matr_asse_ops.py deleted file mode 100644 index 063c28a0..00000000 --- a/Aster/Cata/cataSTA76/Macro/macro_matr_asse_ops.py +++ /dev/null @@ -1,153 +0,0 @@ -#@ 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/cataSTA76/Macro/macro_miss_3d_ops.py b/Aster/Cata/cataSTA76/Macro/macro_miss_3d_ops.py deleted file mode 100644 index 042dd411..00000000 --- a/Aster/Cata/cataSTA76/Macro/macro_miss_3d_ops.py +++ /dev/null @@ -1,75 +0,0 @@ -#@ 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/cataSTA76/Macro/macro_mode_meca_ops.py b/Aster/Cata/cataSTA76/Macro/macro_mode_meca_ops.py deleted file mode 100644 index 9134f81b..00000000 --- a/Aster/Cata/cataSTA76/Macro/macro_mode_meca_ops.py +++ /dev/null @@ -1,138 +0,0 @@ -#@ 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/cataSTA76/Macro/macro_proj_base_ops.py b/Aster/Cata/cataSTA76/Macro/macro_proj_base_ops.py deleted file mode 100644 index 1411934f..00000000 --- a/Aster/Cata/cataSTA76/Macro/macro_proj_base_ops.py +++ /dev/null @@ -1,62 +0,0 @@ -#@ 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/cataSTA76/Macro/reca_algo.py b/Aster/Cata/cataSTA76/Macro/reca_algo.py deleted file mode 100644 index 7854c628..00000000 --- a/Aster/Cata/cataSTA76/Macro/reca_algo.py +++ /dev/null @@ -1,267 +0,0 @@ -#@ 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/cataSTA76/Macro/reca_interp.py b/Aster/Cata/cataSTA76/Macro/reca_interp.py deleted file mode 100644 index 00ad62d2..00000000 --- a/Aster/Cata/cataSTA76/Macro/reca_interp.py +++ /dev/null @@ -1,180 +0,0 @@ -#@ 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/cataSTA76/Macro/reca_message.py b/Aster/Cata/cataSTA76/Macro/reca_message.py deleted file mode 100644 index 0691b785..00000000 --- a/Aster/Cata/cataSTA76/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/cataSTA76/Macro/recal.py b/Aster/Cata/cataSTA76/Macro/recal.py deleted file mode 100644 index 23781944..00000000 --- a/Aster/Cata/cataSTA76/Macro/recal.py +++ /dev/null @@ -1,379 +0,0 @@ -#@ 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/cataSTA76/Macro/stanley_ops.py b/Aster/Cata/cataSTA76/Macro/stanley_ops.py deleted file mode 100644 index 1e4c9031..00000000 --- a/Aster/Cata/cataSTA76/Macro/stanley_ops.py +++ /dev/null @@ -1,75 +0,0 @@ -#@ 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/cataSTA76/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA76/Macro/test_fichier_ops.py deleted file mode 100644 index e5107f5c..00000000 --- a/Aster/Cata/cataSTA76/Macro/test_fichier_ops.py +++ /dev/null @@ -1,279 +0,0 @@ -#@ 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/cataSTA76/__init__.py b/Aster/Cata/cataSTA76/__init__.py deleted file mode 100644 index 7218d945..00000000 --- a/Aster/Cata/cataSTA76/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -import os,sys -import prefs -import sys -rep_macro = os.path.join(prefs.repIni,'Cata/cataSTA76') -sys.path.insert(0,rep_macro) -from cata import * diff --git a/Aster/Cata/cataSTA76/cata.py b/Aster/Cata/cataSTA76/cata.py deleted file mode 100644 index 5f078b7c..00000000 --- a/Aster/Cata/cataSTA76/cata.py +++ /dev/null @@ -1,21831 +0,0 @@ -#& 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: V6_main $" -__Id__="$Id: cata.py,v 1.2 2006-06-20 17:39:00 cchris 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/cataSTA76/ops.py b/Aster/Cata/cataSTA76/ops.py deleted file mode 100644 index 50a805dd..00000000 --- a/Aster/Cata/cataSTA76/ops.py +++ /dev/null @@ -1,438 +0,0 @@ -#@ 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/cataSTA8/Macro/__init__.py b/Aster/Cata/cataSTA8/Macro/__init__.py deleted file mode 100644 index 4aebb58b..00000000 --- a/Aster/Cata/cataSTA8/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/cataSTA8/Macro/ajout_quad_gmsh.py b/Aster/Cata/cataSTA8/Macro/ajout_quad_gmsh.py deleted file mode 100644 index e0d64393..00000000 --- a/Aster/Cata/cataSTA8/Macro/ajout_quad_gmsh.py +++ /dev/null @@ -1,252 +0,0 @@ -#@ 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/cataSTA8/Macro/calc_fonction_ops.py b/Aster/Cata/cataSTA8/Macro/calc_fonction_ops.py deleted file mode 100644 index ec198736..00000000 --- a/Aster/Cata/cataSTA8/Macro/calc_fonction_ops.py +++ /dev/null @@ -1,410 +0,0 @@ -#@ MODIF calc_fonction_ops Macro DATE 03/10/2007 AUTEUR SALMONA L.SALMONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import copy -import traceback -from math import pi - - -# ----------------------------------------------------------------------------- -def tocomplex(arg): - if arg[0]=='RI' : return complex(arg[1],arg[2]) - if arg[0]=='MP' : return complex(arg[1]*cos(arg[2]),arg[1]*sin(arg[2])) - - -# ----------------------------------------------------------------------------- -def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP, - SPEC_OSCI,ABS,COMB,COMB_C,COMPOSE,EXTRACTION, - ENVELOPPE,ASSE,CORR_ACCE,PUISSANCE,INVERSE, - NOM_PARA,NOM_RESU,INTERPOL,PROL_DROITE, - PROL_GAUCHE,NOM_PARA_FONC,INTERPOL_FONC,PROL_DROITE_FONC, - PROL_GAUCHE_FONC,INFO,**args): - """ - Ecriture de la macro CALC_FONCTION - """ - ier=0 - from Utilitai.t_fonction import t_fonction, t_fonction_c, t_nappe, homo_support_nappe, \ - FonctionError, ParametreError, InterpolationError, ProlongementError - from Utilitai import liss_enveloppe - from Accas import _F - from Cata.cata import nappe_sdaster,fonction_sdaster,fonction_c - from Utilitai.Utmess import UTMESS - from Numeric import alltrue,less,array,reshape,cos,sin,exp,sqrt - from Numeric import choose,zeros,Float - import aster_fonctions - EnumTypes = (list, tuple) - - ### On importe les definitions des commandes a utiliser dans la macro - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - IMPR_FONCTION = self.get_cmd('IMPR_FONCTION') - DEFI_NAPPE = self.get_cmd('DEFI_NAPPE') - - ### Comptage commandes + déclaration concept sortant - self.set_icmd(1) - self.DeclareOut('C_out',self.sd) - - # éléments de contexte - ctxt = Context() - ### l'ensemble est dans un try/except pour recuperer les erreurs du module t_fonction - try: - ### - if (INTEGRE != None): - __ff=INTEGRE['FONCTION'].convert() - ctxt.f = __ff.nom - if INTEGRE['METHODE']=='TRAPEZE' : - __ex=__ff.trapeze(INTEGRE['COEF']) - elif INTEGRE['METHODE']=='SIMPSON' : - __ex=__ff.simpson(INTEGRE['COEF']) - ### - if (DERIVE != None): - __ff=DERIVE['FONCTION'].convert() - ctxt.f = __ff.nom - __ex=__ff.derive() - ### - if (INVERSE != None): - __ff=INVERSE['FONCTION'].convert() - ctxt.f = __ff.nom - __ex=__ff.inverse() - ### - if (ABS != None): - __ff=ABS['FONCTION'].convert() - ctxt.f = __ff.nom - __ex=__ff.abs() - ### - if (COMPOSE != None): - __ff=COMPOSE['FONC_RESU'].convert() - __fg=COMPOSE['FONC_PARA'].convert() - ctxt.f = [__ff.nom, __fg.nom] - __ex=__ff[__fg] - ### - if (ASSE != None): - __f0=ASSE['FONCTION'][0].convert() - __f1=ASSE['FONCTION'][1].convert() - ctxt.f = [__f0.nom, __f1.nom] - __ex=__f0.cat(__f1,ASSE['SURCHARGE']) - ### - if (COMB != None): - list_fonc=[] - if isinstance(self.sd,nappe_sdaster): - for mcfact in COMB : - list_fonc.append(mcfact['FONCTION'].convert()) - ctxt.f = [f.nom for f in list_fonc] - list_fonc = homo_support_nappe(list_fonc) - elif isinstance(self.sd,fonction_sdaster): - for mcfact in COMB : - __ex=mcfact['FONCTION'].convert() - list_fonc.append(__ex) - - __ex = 0. - for item, comb in zip(list_fonc, COMB): - ctxt.f = item.nom - __ex = item * comb['COEF'] + __ex - # on prend les paramètres de la 1ère fonction - __ex.para = copy.copy(list_fonc[0].para) - ### - if (COMB_C != None): - list_fonc=[] - if isinstance(self.sd,nappe_sdaster): - for mcfact in COMB_C: - list_fonc.append(mcfact['FONCTION'].convert()) - ctxt.f = [f.nom for f in list_fonc] - list_fonc = homo_support_nappe(list_fonc) - elif isinstance(self.sd,fonction_sdaster) or isinstance(self.sd,fonction_c): - for mcfact in COMB_C : - __ex=mcfact['FONCTION'].convert(arg='complex') - list_fonc.append(__ex) - - __ex = 0. - for item, comb in zip(list_fonc, COMB_C): - if comb['COEF_R'] != None: - coef = complex(comb['COEF_R']) - elif comb['COEF_C'] != None: - if type(comb['COEF_C']) in EnumTypes: - coef = tocomplex(comb['COEF_C']) - else: - coef = comb['COEF_C'] - ctxt.f = item.nom - __ex = item * coef + __ex - # on prend les paramètres de la 1ère fonction - __ex.para = copy.copy(list_fonc[0].para) - - ### mot clé LIST_PARA uniquement présent si COMB ou COMB_C - if (COMB != None) or (COMB_C != None) : - if (args['LIST_PARA'] != None) : - __ex=__ex.evalfonc(args['LIST_PARA'].Valeurs()) - ### - if (PUISSANCE != None): - __ff=PUISSANCE['FONCTION'].convert() - ctxt.f = __ff.nom - __ex=__ff - for i in range(PUISSANCE['EXPOSANT']-1): - __ex=__ex*__ff - ### - if (EXTRACTION != None): - if EXTRACTION['PARTIE']=='REEL': - __ex=EXTRACTION['FONCTION'].convert(arg='real') - if EXTRACTION['PARTIE']=='IMAG': - __ex=EXTRACTION['FONCTION'].convert(arg='imag') - if EXTRACTION['PARTIE']=='MODULE': - __ex=EXTRACTION['FONCTION'].convert(arg='modul') - if EXTRACTION['PARTIE']=='PHASE': - __ex=EXTRACTION['FONCTION'].convert(arg='phase') - ### - if (ENVELOPPE != None): - list_fonc=[] - l_env=ENVELOPPE['FONCTION'] - if type(l_env) not in EnumTypes: - l_env=(l_env,) - if isinstance(self.sd,nappe_sdaster): - for f in l_env: - list_fonc.append(f.convert()) - ctxt.f = [f.nom for f in list_fonc] - list_fonc = homo_support_nappe(list_fonc) - vale_para=list_fonc[0].vale_para - para =list_fonc[0].para - l_fonc_f =[] - for i in range(len(vale_para)): - __ff=list_fonc[0].l_fonc[i] - for nap in list_fonc[1:] : - ctxt.f = nap.l_fonc[i].nom - __ff=__ff.enveloppe(nap.l_fonc[i], ENVELOPPE['CRITERE']) - l_fonc_f.append(__ff) - __ex=t_nappe(vale_para,l_fonc_f,para) - elif isinstance(self.sd,fonction_sdaster): - for f in l_env: - list_fonc.append(f.convert()) - __ex=list_fonc[0] - for f in list_fonc[1:]: - ctxt.f = [__ex.nom, f.nom] - __ex = __ex.enveloppe(f, ENVELOPPE['CRITERE']) - ### - if (CORR_ACCE != None): - __ex=CORR_ACCE['FONCTION'].convert() - ctxt.f = __ex.nom - para=copy.copy(__ex.para) - # suppression de la tendance de l accelero - __ex=__ex.suppr_tend() - # calcul de la vitesse - __ex=__ex.trapeze(0.) - # calcul de la tendance de la vitesse : y = a1*x +a0 - __ex=__ex.suppr_tend() - if CORR_ACCE['CORR_DEPL']=='OUI': - # suppression de la tendance deplacement - # calcul du deplacement : integration - __ex=__ex.trapeze(0.) - # calcul de la tendance du déplacement : y = a1*x +a0 - __ex=__ex.suppr_tend() - # regeneration de la vitesse : derivation - __ex=__ex.derive() - # regeneration de l accelero : derivation - __ex=__ex.derive() - __ex.para=para - ### - if (FFT != None): - if isinstance(self.sd,fonction_c): - __ff=FFT['FONCTION'].convert() - ctxt.f = __ff.nom - __ex=__ff.fft(FFT['METHODE']) - if isinstance(self.sd,fonction_sdaster): - __ff=FFT['FONCTION'].convert(arg='complex') - ctxt.f = __ff.nom - __ex=__ff.fft(FFT['METHODE'],FFT['SYME']) - ### - if (SPEC_OSCI != None): - if SPEC_OSCI['AMOR_REDUIT']==None: - l_amor=[0.02, 0.05, 0.1] - UTMESS('I','CALC_FONCTION',' : génération par défaut de 3 amortissements :'+str(l_amor)) - else: - if type(SPEC_OSCI['AMOR_REDUIT']) not in EnumTypes : - l_amor=[SPEC_OSCI['AMOR_REDUIT'],] - else: - l_amor= SPEC_OSCI['AMOR_REDUIT'] - if SPEC_OSCI['FREQ']==None and SPEC_OSCI['LIST_FREQ']==None: - l_freq=[] - for i in range(56): - l_freq.append( 0.2+0.050*i) - for i in range( 8): - l_freq.append( 3.0+0.075*i) - for i in range(14): - l_freq.append( 3.6+0.100*i) - for i in range(24): - l_freq.append( 5.0+0.125*i) - for i in range(28): - l_freq.append( 8.0+0.250*i) - for i in range( 6): - l_freq.append(15.0+0.500*i) - for i in range( 4): - l_freq.append(18.0+1.000*i) - for i in range(10): - l_freq.append(22.0+1.500*i) - texte=[] - for i in range(len(l_freq)/5) : - texte.append(' %f %f %f %f %f' %tuple(l_freq[i*5:i*5+5])) - UTMESS('I','CALC_FONCTION',' : génération par défaut de 150 fréquences :\n'+'\n'.join(texte)) - elif SPEC_OSCI['LIST_FREQ']!=None: - l_freq=SPEC_OSCI['LIST_FREQ'].Valeurs() - elif SPEC_OSCI['FREQ']!=None: - if type(SPEC_OSCI['FREQ']) not in EnumTypes: - l_freq=[SPEC_OSCI['FREQ'],] - else: - l_freq= SPEC_OSCI['FREQ'] - if min(l_freq)<1.E-10 : - UTMESS('S','CALC_FONCTION','Les fréquences doivent etre strictement positives.') - if abs(SPEC_OSCI['NORME'])<1.E-10 : - UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, la norme ne peut etre nulle') - if SPEC_OSCI['NATURE_FONC']!='ACCE' : - UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, le type de la fonction doit etre ACCE') - if SPEC_OSCI['METHODE']!='NIGAM' : - UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, seule la méthode NIGAM est codée') - eps=1.e-6 - for amor in l_amor : - if amor>(1-eps) : - UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, la méthode choisie '\ - 'suppose des amortissements sous-critiques, amor<1.') - - __ff=SPEC_OSCI['FONCTION'].convert() - ctxt.f = __ff.nom - - # appel à SPEC_OSCI - spectr = aster_fonctions.SPEC_OSCI(__ff.vale_x, __ff.vale_y, l_freq, l_amor) - - # construction de la nappe - vale_para = l_amor - para = { 'INTERPOL' : ['LIN','LOG'], - 'NOM_PARA_FONC' : 'FREQ', - 'NOM_PARA' : 'AMOR', - 'PROL_DROITE' : 'EXCLU', - 'PROL_GAUCHE' : 'EXCLU', - 'NOM_RESU' : SPEC_OSCI['NATURE'] } - para_fonc = { 'INTERPOL' : ['LOG','LOG'], - 'NOM_PARA' : 'FREQ', - 'PROL_DROITE' : 'CONSTANT', - 'PROL_GAUCHE' : 'EXCLU', - 'NOM_RESU' : SPEC_OSCI['NATURE'] } - if SPEC_OSCI['NATURE']=='DEPL': - ideb = 0 - elif SPEC_OSCI['NATURE']=='VITE': - ideb = 1 - else: - ideb = 2 - l_fonc = [] - for iamor in range(len(l_amor)) : - l_fonc.append(t_fonction(l_freq,spectr[iamor,ideb,:]/SPEC_OSCI['NORME'],para_fonc)) - __ex=t_nappe(vale_para,l_fonc,para) - ### - if (LISS_ENVELOP!= None): - __ff=LISS_ENVELOP['NAPPE'].convert() - sp_nappe=liss_enveloppe.nappe(listFreq=__ff.l_fonc[0].vale_x, listeTable=[f.vale_y for f in __ff.l_fonc], listAmor=__ff.vale_para, entete="") - sp_lisse=liss_enveloppe.lissage(nappe=sp_nappe,fmin=LISS_ENVELOP['FREQ_MIN'],fmax=LISS_ENVELOP['FREQ_MAX'],elarg=LISS_ENVELOP['ELARG'],tole_liss=LISS_ENVELOP['TOLE_LISS']) - para_fonc=__ff.l_fonc[0].para - l_fonc=[] - for val in sp_lisse.listTable: - l_fonc.append(t_fonction(sp_lisse.listFreq,val,para_fonc)) - __ex=t_nappe(vale_para=sp_lisse.listAmor,l_fonc=l_fonc,para=__ff.para) - - except InterpolationError, msg: - UTMESS('F', 'CALC_FONCTION', 'Un problème d interpolation a été rencontré'+ctxt.f+'Vérifier les valeurs fournies derrière'+ - 'le mot-clé INTERPOL lors de la création de cette(ces) fonction(s). Debug '+str(msg)) - except ParametreError, msg: - UTMESS('F', 'CALC_FONCTION', 'Un problème concernant le nom des abscisses ou ordonnées a été rencontré'+ctxt.f+ - 'Vérifier la valeur fournie derrière les mots-clés NOM_PARA/NOM_RESU lors de la création de cette(ces) fonction(s).'+ - 'Debug : '+str(msg)) - except ProlongementError, msg: - UTMESS('F', 'CALC_FONCTION','Un problème concernant le prolongement de la (des) fonction(s) a été rencontré.'+ctxt.f+ - 'Vérifier la valeur fournie derrière les mots-clés PROL_GAUCHE/PROL_DROITE lors de la création de cette(ces) fonction(s)'+ - 'Debug'+str(msg)) - except FonctionError, msg: - UTMESS('F', 'CALC_FONCTION', 'Une erreur s est produite lors de l opération'+ctxt.f+'Debug :'+str(msg)+ - 'Remontée d erreur (pour aider a l analyse) :'+traceback.format_exc()) - - ### creation de la fonction produite par appel à DEFI_FONCTION - ### on récupère les paramètres issus du calcul de __ex - ### et on les surcharge par ceux imposés par l'utilisateur - - if isinstance(__ex,t_fonction) or isinstance(__ex,t_fonction_c): - para=__ex.para - if NOM_PARA !=None : para['NOM_PARA'] =NOM_PARA - if NOM_RESU !=None : para['NOM_RESU'] =NOM_RESU - if PROL_DROITE!=None : para['PROL_DROITE']=PROL_DROITE - if PROL_GAUCHE!=None : para['PROL_GAUCHE']=PROL_GAUCHE - if INTERPOL !=None : para['INTERPOL'] =INTERPOL - if isinstance(__ex,t_fonction_c): para['VALE_C'] = __ex.tabul() - elif isinstance(__ex,t_fonction) : para['VALE'] = __ex.tabul() - C_out=DEFI_FONCTION(**para) - elif isinstance(__ex,t_nappe): - def_fonc=[] - for f in __ex.l_fonc : - para=f.para - def_fonc.append(_F(VALE =f.tabul(), - INTERPOL =f.para['INTERPOL'], - PROL_DROITE=f.para['PROL_DROITE'], - PROL_GAUCHE=f.para['PROL_GAUCHE'],)) - para=__ex.para - if NOM_PARA !=None : para['NOM_PARA'] =NOM_PARA - if NOM_RESU !=None : para['NOM_RESU'] =NOM_RESU - if PROL_DROITE !=None : para['PROL_DROITE']=PROL_DROITE - if PROL_GAUCHE !=None : para['PROL_GAUCHE']=PROL_GAUCHE - if NOM_PARA_FONC !=None : para['NOM_PARA_FONC'] =INTERPOL - if INTERPOL_FONC !=None : para['INTERPOL'] =INTERPOL - C_out=DEFI_NAPPE(PARA=__ex.vale_para.tolist(),DEFI_FONCTION=def_fonc,**para) - if INFO > 1: - IMPR_FONCTION(FORMAT='TABLEAU', - UNITE=6, - COURBE=_F(FONCTION=C_out),) - return ier - - -# ----------------------------------------------------------------------------- -class Context(object): - """Permet de stocker des éléments de contexte pour aider au - diagnostic lors de l'émission de message. - usage : - context = Context() - context.f = 'nomfon' - print context.f - """ - def __init__(self): - self.__nomf = None - - def get_val(self): - """Retourne le texte formatté. - """ - nomf = self.__nomf - if type(nomf) not in (list, tuple): - nomf = [nomf,] - pluriel = '' - if len(nomf) > 1: - pluriel = 's' - try: - res = """Fonction%(s)s concernée%(s)s : %(nomf)s""" % { - 's' : pluriel, - 'nomf' : ', '.join(nomf), - } - except: - res = 'erreur de programmation !' - return res - - def set_val(self, value): - self.__nomf = value - - def del_val(self): - del self.__nomf - - f = property(get_val, set_val, del_val, "") diff --git a/Aster/Cata/cataSTA8/Macro/calc_precont_ops.py b/Aster/Cata/cataSTA8/Macro/calc_precont_ops.py deleted file mode 100644 index afe030a7..00000000 --- a/Aster/Cata/cataSTA8/Macro/calc_precont_ops.py +++ /dev/null @@ -1,473 +0,0 @@ -#@ MODIF calc_precont_ops Macro DATE 10/10/2006 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -# RESPONSABLE ASSIRE A.ASSIRE - -def calc_precont_ops(self,reuse,MODELE,CHAM_MATER,CARA_ELEM,EXCIT, - CABLE_BP,CABLE_BP_INACTIF, - COMP_INCR,ETAT_INIT,NEWTON,RECH_LINEAIRE, - CONVERGENCE,INCREMENT,SOLVEUR,SOLV_NON_LOCAL, - LAGR_NON_LOCAL,INFO,TITRE,**args): - - - """ - Ecriture de la macro CALC_PRECONT - """ - import copy - import aster - import string - import types - from Accas import _F - from Noyau.N_utils import AsType - from Utilitai.Utmess import UTMESS - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - AFFE_MODELE = self.get_cmd('AFFE_MODELE') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - AFFE_CHAR_MECA = self.get_cmd('AFFE_CHAR_MECA') - DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') - STAT_NON_LINE = self.get_cmd('STAT_NON_LINE') - CALC_NO = self.get_cmd('CALC_NO') - CREA_CHAMP = self.get_cmd('CREA_CHAMP') - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - RECU_TABLE = self.get_cmd('RECU_TABLE') - DEFI_MATERIAU = self.get_cmd('DEFI_MATERIAU') - AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type evol_noli) est nomme RES dans - # le contexte de la macro - - self.DeclareOut('RES',self.sd) - - # ------------------------------------------------------------- - # 1. CREATION DES MOTS-CLES ET CONCEPTS POUR LES STAT_NON_LINE - # ------------------------------------------------------------ - - - # 1.1 Recuperation de la liste d'instants, de l'instant initial et final - # Creation de la nouvelle liste d'instants - # ---------------------------------------------------------- - - dIncrement=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste) - - __prec = dIncrement['PRECISION'] - __L0 = dIncrement['LIST_INST'] - __L1 = __L0.Valeurs() - - # Traitement de l'etat initial - if ETAT_INIT: - dEtatInit=ETAT_INIT[0].cree_dict_valeurs(ETAT_INIT[0].mc_liste) - for i in dEtatInit.keys(): - if dEtatInit[i]==None : del dEtatInit[i] - - __EVINIT = dEtatInit['EVOL_NOLI'] - else : - dEtatInit=None - - # Test de la presence de reuse= - if self.reuse == None: - dReuse=None - else : - dReuse='RES' - - # Teste si INST_INIT est donné ou bien recalcule __TMIN - if dIncrement['INST_INIT'] == None: - if self.reuse == None: - __TMIN = __L1[0] - else: - __dico = __EVINIT.LIST_VARI_ACCES() - __TMIN = __dico['INST'][-1] - else: - __TMIN = dIncrement['INST_INIT'] - - # Teste si INST_FIN est donné ou bien recalcule __TMAX - if dIncrement['INST_FIN'] == None: - __TMAX = __L1[-1] - else: - __TMAX = dIncrement['INST_FIN'] - - # Teste si INST_INIT est bien plus petit que INST_FIN - if __TMAX <= __TMIN: - UTMESS('F','CALC_PRECONT','INST_FIN PLUS PETIT QUE INST_INIT') - - # Cree la liste d'instant __L2 allant de __TMIN a __TMAX et contenant - # un instant supplementaire __TINT - __L2=[] - for m in __L1: - if m>=__TMIN and m<=__TMAX: - __L2.append(m) - - __TINT = (9.*__L2[-1] + __L2[-2])/10. - __L2[-1:-1] = [__TINT] - - # __LST0 est la liste d'instants utilisée pour l'etape 1 - __LST0=DEFI_LIST_REEL( DEBUT = __TMIN, - INTERVALLE = _F(JUSQU_A = __TMAX, NOMBRE = 1),) - - # __LST et __FCT sont utilisés pour les etapes 2 et 3 - __LST=DEFI_LIST_REEL(VALE=__L2,); - __FCT=DEFI_FONCTION(INTERPOL=('LIN','LIN'), - NOM_PARA='INST', - VALE=(__TMIN,0.0,__TINT,1.0,__TMAX,1.0),); - - for i in dIncrement.keys(): - if dIncrement[i]==None : del dIncrement[i] - dIncrement['LIST_INST']= __LST - dIncrement['INST_FIN'] = __TINT - - - - # 1.2 Recuperation des parametres pour STAT_NON_LINE - # ------------------------------------------------------- - - dNewton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste) - for i in dNewton.keys(): - if dNewton[i]==None : del dNewton[i] - - dConvergence=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) - for i in dConvergence.keys(): - if dConvergence[i]==None : del dConvergence[i] - - dSolveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) - for i in dSolveur.keys(): - if dSolveur[i]==None : del dSolveur[i] - - if RECH_LINEAIRE: - dRech_lin=RECH_LINEAIRE[0].cree_dict_valeurs(RECH_LINEAIRE[0].mc_liste) - for i in dRech_lin.keys(): - if dRech_lin[i]==None : del dRech_lin[i] - else : - dRech_lin=None - - if SOLV_NON_LOCAL: - dSolv_nonloc=SOLV_NON_LOCAL[0].cree_dict_valeurs(SOLV_NON_LOCAL[0].mc_liste) - for i in dSolv_nonloc.keys(): - if dSolv_nonloc[i]==None : del dSolv_nonloc[i] - else : - dSolv_nonloc=None - - if LAGR_NON_LOCAL: - dLagr_nonloc=LAGR_NON_LOCAL[0].cree_dict_valeurs(LAGR_NON_LOCAL[0].mc_liste) - for i in dLagr_nonloc.keys(): - if dLagr_nonloc[i]==None : del dLagr_nonloc[i] - else : - dLagr_nonloc=None - - - - # 1.3 Creation des mots-cles pour les 3 AFFE_CHAR_MECA - # Recuperation des cables dans les concepts CABLE_BP - # et CABLE_BP_INACTIF - # ------------------------------------------------------ - if type(CABLE_BP) is not types.NoneType: - if type(CABLE_BP) is not types.TupleType: - CABLE_BP0 = CABLE_BP - CABLE_BP = [] - CABLE_BP.append ( CABLE_BP0 ) - - if type(CABLE_BP_INACTIF) is not types.NoneType: - if type(CABLE_BP_INACTIF) is not types.TupleType: - CABLE_BP_INACTIF0 = CABLE_BP_INACTIF - CABLE_BP_INACTIF = [] - CABLE_BP_INACTIF.append ( CABLE_BP_INACTIF0 ) - - motscles={} - motscles['RELA_CINE_BP']=[] - motscle2={} - motscle2['RELA_CINE_BP']=[] - motscle3={} - motscle3['RELA_CINE_BP']=[] - __GROUP_MA_A=[] - Result = [[None]*1] - for mcabl in CABLE_BP: - # Creation de mots-cles pour les AFFE_CHAR_MECA - motscles['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, - SIGM_BPEL = 'OUI', - RELA_CINE = 'NON',) ) - motscle2['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, - SIGM_BPEL = 'NON', - RELA_CINE = 'OUI',) ) - motscle3['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, - SIGM_BPEL = 'OUI', - RELA_CINE = 'OUI',) ) - - # Creation de __GROUP_MA_A : liste des noms des cables contenus - # dans chaque concept CABLE_BP = cables a activer - __TCAB = RECU_TABLE(CO=mcabl,NOM_TABLE='CABLE_BP'); - __nb = 0 - while 1: - try: - Result[__nb][0] = __TCAB['NOM_CABLE',__nb+1] - __CAB = __TCAB['NOM_CABLE',__nb+1] - if __nb == 0: - __GROUP_MA_A.append(__CAB) - else: - i = 0 - # enlève les doublons - for m in __GROUP_MA_A: - i=i+1 - if __CAB == m: - break - if i == len(__GROUP_MA_A): - __GROUP_MA_A.append(__CAB) - - __nb = __nb + 1 - Result.append([None]*1) - # Si on a lu toutes les valeurs alors on sort de la boucle - except KeyError: - break - - # Creation de __GROUP_MA_I : liste des noms des cables contenus - # dans chaque CABLE_BP_INACTIF - # __GROUP_MA_CABLE = liste des cables actifs et inactifs - Result = [[None]*1] - __GROUP_MA_I=[] - - if CABLE_BP_INACTIF: - for mcabl in CABLE_BP_INACTIF: - __TCA0 = RECU_TABLE(CO=mcabl,NOM_TABLE='CABLE_BP'); - __nb = 0 - while 1: - try: - Result[__nb][0] = __TCA0['NOM_CABLE',__nb+1] - __CA0 = __TCA0['NOM_CABLE',__nb+1] - if __nb == 0: - __GROUP_MA_I.append(__CA0) - else: - i = 0 - # enlève les doublons - for m in __GROUP_MA_I: - i=i+1 - if __CA0 == m: - break - if i == len(__GROUP_MA_I): - __GROUP_MA_I.append(__CA0) - - __nb = __nb + 1 - Result.append([None]*1) - # Si on a lu toutes les valeurs alors on sort de la boucle - except KeyError: - break - motscle6={} - motscle6['RELA_CINE_BP']=[] - for mcabl in CABLE_BP_INACTIF: - # Creation de mots-cles pour les AFFE_CHAR_MECA - motscle6['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl, - SIGM_BPEL = 'NON', - RELA_CINE = 'OUI',) ) - - __GROUP_MA_CABLES = __GROUP_MA_A + __GROUP_MA_I - - - # 1.4 Creation des mots-clés facteurs COMP_INCR - # pour étape 2 (dComp_incr0) et étape 3 (dComp_incr1) - # ------------------------------------------------------ - - dComp_incr=[] - for j in COMP_INCR : - dComp_incr.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dComp_incr[-1].keys(): - if dComp_incr[-1][i]==None : del dComp_incr[-1][i] - - PARM_THETA=0. - for j in range(len(COMP_INCR)) : - if dComp_incr[j]['RELATION'] == 'ELAS': - PARM_THETA=dComp_incr[j]['PARM_THETA'] - - if PARM_THETA == 0: - PARM_THETA=dComp_incr[0]['PARM_THETA'] - - dComp_incr0=copy.copy(dComp_incr) - dComp_incr1=copy.copy(dComp_incr) - - dComp_incr0.append(_F(RELATION='SANS',GROUP_MA=__GROUP_MA_CABLES,) ) - if __GROUP_MA_I: - dComp_incr1.append(_F(RELATION='SANS',GROUP_MA=__GROUP_MA_I,) ) - - - # 1.5 Modele contenant uniquement les cables de precontrainte - # --------------------------------------------------------- - - __MOD = string.ljust(MODELE.nom,8) - __MOD =__MOD+'.MODELE .NOMA ' - __LMAIL = aster.getvectjev(__MOD) - __MAIL = string.strip(__LMAIL[0]) - - objma=self.get_sd_avant_etape(__MAIL,self) - - __M_CA=AFFE_MODELE( MAILLAGE=objma, - AFFE =_F( GROUP_MA = __GROUP_MA_A, - PHENOMENE = 'MECANIQUE', - MODELISATION = 'BARRE') ) - - - # 1.6 Blocage de tous les noeuds des cables actifs - # -------------------------------------------------- - - _B_CA=AFFE_CHAR_MECA(MODELE=__M_CA, - DDL_IMPO= _F( GROUP_MA = __GROUP_MA_A, - DX = 0., - DY = 0., - DZ = 0.),) - - - # 1.7 Chargements concernant les cables - # ------------------------------------- - _C_CN=AFFE_CHAR_MECA(MODELE=__M_CA,**motscles) - _C_CA=AFFE_CHAR_MECA(MODELE=MODELE,**motscle2) - _C_CT=AFFE_CHAR_MECA(MODELE=MODELE,**motscle3) - if CABLE_BP_INACTIF: - _C_CI=AFFE_CHAR_MECA(MODELE=MODELE,**motscle6) - - - - # ------------------------------------------------------------- - # 2. CALCULS - # ------------------------------------------------------------ - - - #------------------------------------------------------------------- - # 2.1 Premiere etape : calcul sur le(s) cable(s) et - # recuperation des _F_CAs aux noeuds - # on travaile entre tmin et tmax - #------------------------------------------------------------------- - - __EV1=STAT_NON_LINE( - MODELE = __M_CA, - CHAM_MATER = CHAM_MATER, - CARA_ELEM = CARA_ELEM, - EXCIT =(_F(CHARGE = _B_CA), - _F(CHARGE = _C_CN),), - COMP_INCR =_F( RELATION = 'ELAS', - DEFORMATION = 'PETIT', - PARM_THETA = PARM_THETA, - TOUT = 'OUI'), - INCREMENT =_F(LIST_INST = __LST0, - PRECISION = __prec), - SOLVEUR = dSolveur, - INFO =INFO, - TITRE = TITRE, ) - - __EV1 = CALC_NO( reuse = __EV1, - RESULTAT = __EV1, - GROUP_MA = __GROUP_MA_A, - OPTION = 'FORC_NODA' ) - - __REA = CREA_CHAMP ( - TYPE_CHAM = 'NOEU_DEPL_R', - OPERATION = 'EXTR', - RESULTAT = __EV1, - NOM_CHAM = 'FORC_NODA', - INST = __TMAX); - - __REAC = CREA_CHAMP (TYPE_CHAM='NOEU_DEPL_R', - OPERATION = 'ASSE', - MODELE = MODELE, - ASSE= _F(GROUP_MA=__GROUP_MA_A, - CHAM_GD=__REA, - COEF_R = -1.), ) - - _F_CA=AFFE_CHAR_MECA(MODELE=__M_CA, - VECT_ASSE = __REAC ) - - - - #----------------------------------------------------------------------- - # 2.2 Deuxieme etape : application de la precontrainte sur le beton - # en desactivant les cables - #----------------------------------------------------------------------- - - # Regeneration des mots-cles EXCIT passés en argument de la macro - dExcit=[] - for j in EXCIT : - dExcit.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dExcit[-1].keys(): - if dExcit[-1][i]==None : del dExcit[-1][i] - - if CABLE_BP_INACTIF: - dExcit.append(_F(CHARGE=_C_CI),) - - # Creation du mots-cle EXCIT pour le STAT_NON_LINE - dExcit1=copy.copy(dExcit) - dExcit1.append(_F(CHARGE=_C_CA),) - dExcit1.append(_F(CHARGE = _F_CA, - FONC_MULT=__FCT ),) - - RES=STAT_NON_LINE( - MODELE =MODELE, - CARA_ELEM =CARA_ELEM, - CHAM_MATER = CHAM_MATER, - COMP_INCR=dComp_incr0, - INCREMENT=dIncrement, - ETAT_INIT = dEtatInit, - NEWTON =dNewton, - CONVERGENCE=dConvergence, - RECH_LINEAIRE = dRech_lin, - SOLVEUR = dSolveur, - SOLV_NON_LOCAL = dSolv_nonloc, - LAGR_NON_LOCAL = dLagr_nonloc, - ARCHIVAGE = _F(INST = __TINT), - INFO =INFO, - TITRE = TITRE, - EXCIT = dExcit1, - ) - - # Recuperation du dernier numero d'ordre pour pouvoir l'écraser dans RES - __dico2 = RES.LIST_VARI_ACCES() - __no = __dico2['NUME_ORDRE'][-1] - - - #----------------------------------------------------------------------- - # 2.2 Troisieme etape : on remet la tension dans les cables - #----------------------------------------------------------------------- - - # Creation du mots-cles EXCIT pour le STAT_NON_LINE - dExcit2=copy.copy(dExcit) - dExcit2.append(_F(CHARGE=_C_CT,) ) - - # Calcul sur un seul pas (de __TINT a __TMAX) - RES=STAT_NON_LINE( reuse = RES, - ETAT_INIT = _F(EVOL_NOLI =RES), - MODELE = MODELE, - CHAM_MATER = CHAM_MATER, - CARA_ELEM = CARA_ELEM, - COMP_INCR=dComp_incr1, - INCREMENT=_F(LIST_INST = __LST, - PRECISION = __prec), - NEWTON =dNewton, - RECH_LINEAIRE = dRech_lin, - CONVERGENCE=dConvergence, - SOLVEUR = dSolveur, - SOLV_NON_LOCAL = dSolv_nonloc, - LAGR_NON_LOCAL = dLagr_nonloc, - ARCHIVAGE = _F(NUME_INIT = __no, - DETR_NUME_SUIV = 'OUI' ), - INFO =INFO, - TITRE = TITRE, - EXCIT =dExcit2, - ) - - return ier - diff --git a/Aster/Cata/cataSTA8/Macro/calc_table_ops.py b/Aster/Cata/cataSTA8/Macro/calc_table_ops.py deleted file mode 100644 index 62fa2294..00000000 --- a/Aster/Cata/cataSTA8/Macro/calc_table_ops.py +++ /dev/null @@ -1,167 +0,0 @@ -#@ MODIF calc_table_ops Macro DATE 04/03/2008 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE MCOURTOI M.COURTOIS -from types import * -EnumTypes = (ListType, TupleType) - -def calc_table_ops(self, TABLE, ACTION, INFO, **args): - """ - Macro CALC_TABLE permettant de faire des opérations sur une table - """ - import aster - - macro = 'CALC_TABLE' - from Accas import _F - from Cata.cata import table_sdaster, table_fonction, table_jeveux - from Utilitai.Utmess import UTMESS - from Utilitai import transpose - from Utilitai.Table import Table, merge - 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 tabout - self.DeclareOut('tabout', self.sd) - if self.sd.__class__ == table_fonction: - typ_tabout = 'TABLE_FONCTION' - else: - typ_tabout = 'TABLE' - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - CREA_TABLE = self.get_cmd('CREA_TABLE') - DETRUIRE = self.get_cmd('DETRUIRE') - - # 0. faut-il utiliser une table dérivée - form_sens='\n... SENSIBILITE AU PARAMETRE %s (SD COMP %s)' - if args['SENSIBILITE']: - ncomp = 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': - # 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] - col = getattr(tab, occ['NOM_PARA']) - tab = getattr(col, occ['CRIT_COMP'])(*opts,**kargs) - # trace l'operation dans le titre - #if FORMAT in ('TABLEAU','ASTER'): - tab.titr += form_filtre % (occ['NOM_PARA'], occ['CRIT_COMP'], \ - ' '.join([str(v) for v in opts])) - - #---------------------------------------------- - # 2. Traitement de EXTR - if occ['OPERATION'] == 'EXTR': - lpar = occ['NOM_PARA'] - if not type(lpar) in EnumTypes: - lpar = [lpar] - for p in lpar: - if not p in tab.para: - UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, TABLE.nom)) - tab = tab[occ['NOM_PARA']] - - #---------------------------------------------- - # 3. Traitement de RENOMME - if occ['OPERATION'] == 'RENOMME': - try: - tab.Renomme(*occ['NOM_PARA']) - except KeyError, msg: - UTMESS('F', macro, msg) - - #---------------------------------------------- - # 4. Traitement du TRI - if occ['OPERATION'] == 'TRI': - tab.sort(CLES=occ['NOM_PARA'], ORDRE=occ['ORDRE']) - - #---------------------------------------------- - # 5. Traitement de COMB - if occ['OPERATION'] == 'COMB': - tab2 = occ['TABLE'].EXTR_TABLE() - opts = [tab, tab2] - if occ.get('NOM_PARA') != None: - lpar = occ['NOM_PARA'] - if not type(lpar) in EnumTypes: - lpar = [lpar] - for p in lpar: - if not p in tab.para: - UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, TABLE.nom)) - if not p in tab2.para: - UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, occ['TABLE'].nom)) - opts.append(lpar) - tab = merge(*opts) - - #---------------------------------------------- - # 6. Traitement de OPER - if occ['OPERATION'] == 'OPER': - # ajout de la colonne dans la table - tab.fromfunction(occ['NOM_PARA'], occ['FORMULE']) - if INFO == 2: - vectval = getattr(tab, occ['NOM_PARA']).values() - aster.affiche('MESSAGE', 'Ajout de la colonne %s : %s' % (occ['NOM_PARA']+repr(vectval))+'\n') - - #---------------------------------------------- - # 99. Création de la table_sdaster résultat - # cas réentrant : il faut détruire l'ancienne table_sdaster - if self.sd.nom == TABLE.nom: - DETRUIRE(CONCEPT=_F(NOM=TABLE.nom,), INFO=1) - - dprod = tab.dict_CREA_TABLE() - if INFO == 2: - echo_mess = [] - echo_mess.append( '@-'*30+'\n' ) - echo_mess.append( tab ) - from pprint import pformat - echo_mess.append( pformat(dprod) ) - echo_mess.append( '@-'*30+'\n' ) - texte_final = ' '.join(echo_mess) - aster.affiche('MESSAGE', texte_final) - - # surcharge par le titre fourni - tit = args['TITRE'] - if tit != None: - if not type(tit) in EnumTypes: - tit = [tit] - dprod['TITRE'] = tuple(['%-80s' % lig for lig in tit]) - # type de la table de sortie à passer à CREA_TABLE - tabout = CREA_TABLE(TYPE_TABLE=typ_tabout, - **dprod) - - return ier diff --git a/Aster/Cata/cataSTA8/Macro/creation_donnees_homard.py b/Aster/Cata/cataSTA8/Macro/creation_donnees_homard.py deleted file mode 100644 index 55cffc89..00000000 --- a/Aster/Cata/cataSTA8/Macro/creation_donnees_homard.py +++ /dev/null @@ -1,541 +0,0 @@ -#@ MODIF creation_donnees_homard Macro DATE 04/04/2007 AUTEUR VIVAN L.VIVAN -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VIVAN L.VIVAN -""" -Cette classe crée le fichier de configuration permettant de lancer HOMARD depuis Code_Aster. -""" -__revision__ = "V1.2" -__all__ = [ ] - -import os -import os.path -from types import ListType, TupleType -EnumTypes = (ListType, TupleType) - -try: - from Utilitai.Utmess import UTMESS -except ImportError: - def UTMESS(code, sprg, texte) : - """Clone de utmess si on ne reussit pas à le charger - """ - fmt = '\n <%s> <%s> %s\n\n' - print fmt % (code, sprg, texte) - -# ------------------------------------------------------------------------------ -class creation_donnees_homard: - """Cette classe crée les données permettant de lancer HOMARD depuis Code_Aster. - Ce sont : - . le fichier de configuration - . le fichier des données dans le cas d'information - - Arguments (stockés en tant qu'attribut) : - . nom_macro : nom de la macro-commande qui appelle : - 'MACR_ADAP_MAIL' pour une adaptation - 'MACR_INFO_MAIL' pour une information sur un maillage - . mots_cles : mots-clés de la macro-commande - . dico_configuration : dictionnaire des options - - Attributs : - . Nom_Fichier_Configuration : nom du fichier de configuration (immuable) - . Nom_Fichier_Donnees : nom du fichier de données (immuable) - . mode_homard : le mode pour filtrer ici ("ADAP" ou "INFO") - . ModeHOMA : le mode pour HOMARD (1 ou 2) - . mode_homard_texte : le mode d'utilisation, en francais ("ADAPTATION" ou "INFORMATION") - . elements_incompatibles : que faire des éléments incompatibles avec HOMARD - """ -# ------------------------------------------------------------------------------ - def __init__(self, nom_macro, mots_cles, dico_configuration ) : - """Construction + valeurs par défaut des attributs - """ -# -# 1. Vérification de la macro qui appelle -# - d_aux = {} - d_aux["MACR_ADAP_MAIL"] = ( "ADAP", 1, "ADAPTATION" ) - d_aux["MACR_INFO_MAIL"] = ( "INFO", 2, "INFORMATION" ) - if d_aux.has_key(nom_macro) : - self.mode_homard = d_aux[nom_macro][0] - self.ModeHOMA = d_aux[nom_macro][1] - self.mode_homard_texte = d_aux[nom_macro][2] - else : - UTMESS("F", nom_macro, "Cette macro commande est inconnue.") -# -# 2. Données générales de cette initialisation -# -#gn for mot_cle in mots_cles.keys() : -#gn print "mots_cles[", mot_cle, "] = ", mots_cles[mot_cle] -#gn for mot_cle in dico_configuration.keys() : -#gn print "dico_configuration[", mot_cle, "] = ", dico_configuration[mot_cle] -# - self.nom_macro = nom_macro - self.mots_cles = mots_cles - self.dico_configuration = dico_configuration -# -# 3. Quel type de traitement des elemenst incompatibles -# - if mots_cles.has_key("ELEMENTS_NON_HOMARD") : - d_aux = {} - d_aux["REFUSER"] = "TOUS" - d_aux["IGNORER"] = "IGNORE_QUAD" - self.elements_incompatibles = d_aux[mots_cles["ELEMENTS_NON_HOMARD"]] - else : - self.elements_incompatibles = None -# -# 4. Attributs immuables -# - self.Nom_Fichier_Configuration = "HOMARD.Configuration" - self.Nom_Fichier_Donnees = "HOMARD.Donnees" -# -# ------------------------------------------------------------------------------ - def int_to_str2 (self, entier) : - """ - Transforme un entier compris entre 0 et 99 en une chaine sur deux caractères - """ -# print "\nArguments a l'entree de", __name__, ":", entier -# - try: - la_chaine = '%02d' % entier - except TypeError: - la_chaine = None -# - return la_chaine -# ------------------------------------------------------------------------------ - def quel_mode (self) : - """Informe sur le mode de lancement de HOMARD - """ -### print self.mode_homard_texte - print "Lancement de creation_donnees_homard en mode", self.mode_homard_texte - return -# ------------------------------------------------------------------------------ - def creation_configuration (self) : - """Crée les données nécessaires à la configuration - """ -# - message_erreur = None -# - while message_erreur is None : -# -# 1. Les chaines liées aux numéros d'itération -# - if self.mode_homard == "ADAP" : - niter = self.dico_configuration["niter"] - self.str_niter = self.int_to_str2 (niter) - self.str_niterp1 = self.int_to_str2 (niter+1) - self.niter_vers_niterp1 = self.str_niter + ".vers." + self.str_niterp1 -# -# 2. La liste standard -# - if self.mode_homard == "INFO" : - aux = "Liste.info" - else : - aux = "Liste." + self.niter_vers_niterp1 - self.ListeStd = aux -# -# 3. Le type de bilan : il faut convertir la donnée textuelle en un entier, -# produit de nombres premiers. -# Si rien n'est demandé, on met 0. -# - aux = 1 - dico_aux = {} - dico_aux["INTERPENETRATION"] = 3 - dico_aux["NOMBRE"] = 7 - dico_aux["QUALITE"] = 5 - dico_aux["CONNEXITE"] = 11 - dico_aux["TAILLE"] = 13 - l_aux = dico_aux.keys() - for choix in l_aux : - if self.mots_cles.has_key(choix) : - if self.mots_cles[choix] == "OUI" : - aux = aux * dico_aux[choix] - if aux == 1 : - aux = 0 - self.TypeBila = aux -# -# 4. Les entrées/sorties au format MED -# - self.CCNoMN__ = self.dico_configuration["NOM_MED_MAILLAGE_N"] - if self.mode_homard == "ADAP" : - self.CCNoMNP1 = self.dico_configuration["NOM_MED_MAILLAGE_NP1"] - if self.dico_configuration.has_key("NOM_MED_MAILLAGE_NP1_ANNEXE") : - self.CCMaiAnn = self.dico_configuration["NOM_MED_MAILLAGE_NP1_ANNEXE"] - else : - self.CCMaiAnn = None -# -# 5. Les entrées/sorties au format HOMARD -# - if self.mode_homard == "ADAP" : - self.fic_homard_niter = "M_" + self.str_niter + ".hom" - self.fic_homard_niterp1 = "M_" + self.str_niterp1 + ".hom" - else : - self.fic_homard_niter = None - self.fic_homard_niterp1 = None -# -# 6.1. Le pilotage de l'adaptation -# - if self.mode_homard == "ADAP" : -# -# 6.1. Le type d'adaptation -# - if self.mots_cles["ADAPTATION"] == "RAFFINEMENT" or self.mots_cles["ADAPTATION"] == "RAFFINEMENT_ZONE" : - self.TypeRaff = "libre" - self.TypeDera = "non" - elif self.mots_cles["ADAPTATION"] == "DERAFFINEMENT" : - self.TypeRaff = "non" - self.TypeDera = "libre" - elif self.mots_cles["ADAPTATION"] == "RAFF_DERA" : - self.TypeRaff = "libre" - self.TypeDera = "libre" - elif self.mots_cles["ADAPTATION"] == "RAFFINEMENT_UNIFORME" : - self.TypeRaff = "uniforme" - self.TypeDera = "non" - elif self.mots_cles["ADAPTATION"] == "DERAFFINEMENT_UNIFORME" : - self.TypeRaff = "non" - self.TypeDera = "uniforme" - elif self.mots_cles["ADAPTATION"] == "RIEN" : - self.TypeRaff = "non" - self.TypeDera = "non" -#gn print "... self.TypeRaff = ",self.TypeRaff -#gn print "... self.TypeDera = ",self.TypeDera -# -# 6.2. L'éventuel seuil de raffinement -# - if self.TypeRaff == "libre" and self.mots_cles["ADAPTATION"] != "RAFFINEMENT_ZONE" : - d_aux = {} - d_aux["CRIT_RAFF_ABS"] = ("SeuilHau", 1) - d_aux["CRIT_RAFF_REL"] = ("SeuilHRe", 100) - d_aux["CRIT_RAFF_PE" ] = ("SeuilHPE", 100) - l_aux = d_aux.keys() - for mot_cle in l_aux : - if self.mots_cles[mot_cle] is not None : - aux = self.mots_cles[mot_cle]*d_aux[mot_cle][1] - self.critere_raffinement = (d_aux[mot_cle][0], aux) - else : - self.critere_raffinement = None -#gn print "... self.critere_raffinement = ", self.critere_raffinement -# -# 6.3. L'éventuel seuil de déraffinement -# - if self.TypeDera == "libre" : - d_aux = {} - d_aux["CRIT_DERA_ABS"] = ("SeuilBas", 1) - d_aux["CRIT_DERA_REL"] = ("SeuilBRe", 100) - d_aux["CRIT_DERA_PE" ] = ("SeuilBPE", 100) - l_aux = d_aux.keys() - for mot_cle in l_aux : - if self.mots_cles[mot_cle] is not None : - aux = self.mots_cles[mot_cle]*d_aux[mot_cle][1] - self.critere_deraffinement = (d_aux[mot_cle][0], aux) - else : - self.critere_deraffinement = None -#gn print "... self.critere_deraffinement = ", self.critere_deraffinement -# -# 6.4. Les niveaux extremes -# - self.niveau = [] - for mot_cle in [ "NIVE_MIN", "NIVE_MAX" ] : - if self.mots_cles.has_key(mot_cle) : - if self.mots_cles[mot_cle] is not None : - if mot_cle == "NIVE_MIN" : - aux = "NiveauMi" - else : - aux = "NiveauMa" - self.niveau.append((aux, self.mots_cles[mot_cle])) - if len(self.niveau) == 2 : -#gn print self.mots_cles["NIVE_MIN"] -#gn print self.mots_cles["NIVE_MAX"] - if self.mots_cles["NIVE_MIN"] >= self.mots_cles["NIVE_MAX"] : - message_erreur = "Le niveau mini ,"+str(self.mots_cles["NIVE_MIN"])+\ - ", doit etre < au niveau maxi, "+str(self.mots_cles["NIVE_MAX"])+"." - break -# -# 6.5. Les éventuelles zones de raffinement -# - if self.dico_configuration.has_key("Zones") : - iaux = 0 - for zone in self.dico_configuration["Zones"] : - iaux = iaux + 1 - s_aux_1 = "Zone numero "+str(iaux)+" : " - s_aux_2 = ", doit etre < au " - if zone.has_key("X_MINI") : - if zone["X_MINI"] > zone["X_MAXI"] : - message_erreur = s_aux_1+"X mini ,"+str(zone["X_MINI"])+s_aux_2+"X maxi, "+str(zone["X_MAXI"])+"." - if zone["Y_MINI"] > zone["Y_MAXI"] : - message_erreur = s_aux_1+"Y mini ,"+str(zone["Y_MINI"])+s_aux_2+"Y maxi, "+str(zone["Y_MAXI"])+"." - if zone.has_key("Z_MINI") : - if zone["Z_MINI"] > zone["Z_MAXI"] : - message_erreur = s_aux_1+"Z mini ,"+str(zone["Z_MINI"])+s_aux_2+"Z maxi, "+str(zone["Z_MAXI"])+"." -# - break -# - if message_erreur is not None : - UTMESS("F", self.nom_macro, message_erreur) -# - return self.fic_homard_niter, self.fic_homard_niterp1 -# ------------------------------------------------------------------------------ - def ouvre_fichier (self, nomfic_local) : - """Ouvre en écriture un fichier après l'avoir éventuellement détruit - """ - codret_partiel = [0] -### print nomfic_local - Rep_Calc_HOMARD_global = self.dico_configuration["Rep_Calc_HOMARD_global"] - nomfic = os.path.join ( Rep_Calc_HOMARD_global , nomfic_local ) -# - if os.path.isfile (nomfic) : - try : - os.remove (nomfic) - except os.error, codret_partiel : - print "Probleme au remove, erreur numéro ", codret_partiel[0], ":", codret_partiel[1] - UTMESS("F", self.nom_macro, "Impossible de tuer le fichier "+nomfic) -# - fichier = open (nomfic,"w") - self.fichier = fichier -# - return fichier, nomfic -# ------------------------------------------------------------------------------ - def ecrire_ligne_configuration_0 (self, commentaire) : - """Ecrit une ligne de commentaires du fichier de configuration - Arguments : - . commentaire : le commentaire à écrire - """ -# - ligne = "#\n" - ligne = ligne + "# " + commentaire + "\n" - ligne = ligne + "#\n" - self.fichier.write(ligne) -# - return -# ------------------------------------------------------------------------------ - def ecrire_ligne_configuration_2 (self, motcle, valeur) : - """Ecrit une ligne du fichier de configuration dans le cas : motcle + valeur - Arguments : - . motcle : le mot-clé HOMARD à écrire - . valeur : la valeur associée - """ -# - ligne = motcle + " " + str(valeur) + "\n" - self.fichier.write(ligne) -# - return -# ------------------------------------------------------------------------------ - def ecrire_ligne_configuration_3 (self, motcle, valeur1, valeur2) : - """Ecrit une ligne du fichier de configuration dans le cas : motcle + valeur1 + valeur2 - Arguments : - . motcle : le mot-clé HOMARD à écrire - . valeur : la valeur associée - """ -# - ligne = motcle + " " + str(valeur1) + " " + str(valeur2) + "\n" - self.fichier.write(ligne) -# - return -# ------------------------------------------------------------------------------ - def ecrire_fichier_configuration (self) : - """Ecrit le fichier de configuration - """ - message_erreur = None -# - while message_erreur is None : -# -# 1. Ouverture du fichier -# - fichier, nomfic_global = self.ouvre_fichier(self.Nom_Fichier_Configuration) -# -# 2. Généralités -# - self.ecrire_ligne_configuration_0("Generalites") - self.ecrire_ligne_configuration_2("ModeHOMA", self.ModeHOMA) - self.ecrire_ligne_configuration_2("ListeStd", self.ListeStd) - self.ecrire_ligne_configuration_2("TypeBila", self.TypeBila) - self.ecrire_ligne_configuration_2("CCAssoci", "MED") - self.ecrire_ligne_configuration_2("NumeIter", self.dico_configuration["niter"]) -# -# 3. Les fichiers externes -# - self.ecrire_ligne_configuration_0("Les fichiers au format MED") - self.ecrire_ligne_configuration_2("CCNoMN__", self.CCNoMN__) - self.ecrire_ligne_configuration_2("CCMaiN__", self.dico_configuration["Fichier_ASTER_vers_HOMARD"]) - if self.mode_homard == "ADAP" : - self.ecrire_ligne_configuration_2("CCNoMNP1", self.CCNoMNP1) - self.ecrire_ligne_configuration_2("CCMaiNP1", self.dico_configuration["Fichier_HOMARD_vers_ASTER"]) -# - self.ecrire_ligne_configuration_0("Le répertoire des fichiers de bilan") - self.ecrire_ligne_configuration_2("RepeInfo", self.dico_configuration["Rep_Calc_HOMARD_global"]) -# -# 4. Les fichiers HOMARD -# - self.ecrire_ligne_configuration_0("Les fichiers au format HOMARD") - if self.mode_homard == "ADAP" : - self.ecrire_ligne_configuration_3("HOMaiN__", "M_"+self.str_niter , self.fic_homard_niter ) - self.ecrire_ligne_configuration_3("HOMaiNP1", "M_"+self.str_niterp1, self.fic_homard_niterp1) - aux = "oui" - else : - aux = "non" - self.ecrire_ligne_configuration_2("EcriFiHO", aux) -# -# 5. Le pilotage de l'adaptation -# - if self.mode_homard == "ADAP" : - self.ecrire_ligne_configuration_0("Le pilotage de l'adaptation") -# -# 5.1. Type d'adaptation -# - self.ecrire_ligne_configuration_2("TypeRaff", self.TypeRaff) - if self.critere_raffinement is not None : - self.ecrire_ligne_configuration_2(self.critere_raffinement[0], self.critere_raffinement[1]) - self.ecrire_ligne_configuration_2("TypeDera", self.TypeDera) - if self.critere_deraffinement is not None : - self.ecrire_ligne_configuration_2(self.critere_deraffinement[0], self.critere_deraffinement[1]) -# -# 5.2. L'eventuel indicateur d'erreur -# - if self.dico_configuration.has_key("Indicateur") : -# - self.ecrire_ligne_configuration_0("L'indicateur d'erreur") - self.ecrire_ligne_configuration_2("CCIndica", self.dico_configuration["Fichier_ASTER_vers_HOMARD"]) - self.ecrire_ligne_configuration_2("CCNoChaI", self.dico_configuration["Indicateur"]["NOM_MED"]) - self.ecrire_ligne_configuration_2("CCCoChaI", self.dico_configuration["Indicateur"]["COMPOSANTE"]) - if self.dico_configuration["Indicateur"].has_key("NUME_ORDRE") : - self.ecrire_ligne_configuration_2("CCNumOrI", self.dico_configuration["Indicateur"]["NUME_ORDRE"]) - self.ecrire_ligne_configuration_2("CCNumPTI", self.dico_configuration["Indicateur"]["NUME_ORDRE"]) - if self.mots_cles.has_key("TYPE_VALEUR_INDICA") : - self.ecrire_ligne_configuration_2("CCTyVaIn", self.mots_cles["TYPE_VALEUR_INDICA"]) -# -# 5.3. Les éventuelles zones de raffinement -# - if self.dico_configuration.has_key("Zones") : - iaux = 0 - for zone in self.dico_configuration["Zones"] : - iaux = iaux + 1 - self.ecrire_ligne_configuration_0("Zone de raffinement numéro "+str(iaux)) - if zone.has_key("X_MINI") : - self.ecrire_ligne_configuration_3("ZoRaXmin", iaux, zone["X_MINI"]) - self.ecrire_ligne_configuration_3("ZoRaXmax", iaux, zone["X_MAXI"]) - self.ecrire_ligne_configuration_3("ZoRaYmin", iaux, zone["Y_MINI"]) - self.ecrire_ligne_configuration_3("ZoRaYmax", iaux, zone["Y_MAXI"]) - if zone.has_key("Z_MINI") : - self.ecrire_ligne_configuration_3("ZoRaZmin", iaux, zone["Z_MINI"]) - self.ecrire_ligne_configuration_3("ZoRaZmax", iaux, zone["Z_MAXI"]) - if zone.has_key("X_CENTRE") : - self.ecrire_ligne_configuration_3("ZoRaXCen", iaux, zone["X_CENTRE"]) - self.ecrire_ligne_configuration_3("ZoRaYCen", iaux, zone["Y_CENTRE"]) - self.ecrire_ligne_configuration_3("ZoRaRayo", iaux, zone["RAYON"]) - if zone.has_key("Z_CENTRE") : - self.ecrire_ligne_configuration_3("ZoRaZCen", iaux, zone["Z_CENTRE"]) -# -# 5.4. Les niveaux extremes -# - for aux in self.niveau : - self.ecrire_ligne_configuration_2(aux[0], aux[1]) -# -# 6. Les éventuels champs à mettre à jour -# - if self.dico_configuration.has_key("Champs") : - self.ecrire_ligne_configuration_0("Champs à mettre à jour") - self.ecrire_ligne_configuration_2("CCSolN__", self.dico_configuration["Fichier_ASTER_vers_HOMARD"]) - self.ecrire_ligne_configuration_2("CCSolNP1", self.dico_configuration["Fichier_HOMARD_vers_ASTER"]) - iaux = 0 - for maj_champ in self.dico_configuration["Champs"] : - iaux = iaux + 1 - self.ecrire_ligne_configuration_0("Mise à jour du champ numéro "+str(iaux)) - self.ecrire_ligne_configuration_3("CCChaNom", iaux, maj_champ["NOM_MED"]) - if maj_champ.has_key("NUME_ORDRE") : - self.ecrire_ligne_configuration_3("CCChaNuO", iaux, maj_champ["NUME_ORDRE"]) - self.ecrire_ligne_configuration_3("CCChaPdT", iaux, maj_champ["NUME_ORDRE"]) - elif maj_champ.has_key("INST") : - self.ecrire_ligne_configuration_3("CCChaIns", iaux, maj_champ["INST"]) -# -# 7. L'éventuel maillage de frontière -# - if self.dico_configuration.has_key("NOM_MED_MAILLAGE_FRONTIERE") : - self.ecrire_ligne_configuration_0("Maillage de frontière") - self.ecrire_ligne_configuration_2("SuivFron", "oui") - self.ecrire_ligne_configuration_2("CCFronti", self.dico_configuration["Fichier_ASTER_vers_HOMARD"]) - self.ecrire_ligne_configuration_2("CCNoMFro", self.dico_configuration["NOM_MED_MAILLAGE_FRONTIERE"]) - if self.mots_cles.has_key("GROUP_MA") : - if self.mots_cles["GROUP_MA"] is not None : - if not type(self.mots_cles["GROUP_MA"]) in EnumTypes : - self.ecrire_ligne_configuration_2("CCGroFro", self.mots_cles["GROUP_MA"]) - else : - for group_ma in self.mots_cles["GROUP_MA"] : - self.ecrire_ligne_configuration_2("CCGroFro", group_ma) -# -# 8. L'éventuel maillage annexe -# - if self.mode_homard == "ADAP" : - if self.CCMaiAnn is not None : - self.ecrire_ligne_configuration_0("Maillage d'autre degré") - self.ecrire_ligne_configuration_2("ModDegre", "oui") - self.ecrire_ligne_configuration_2("CCNoMAnn", self.CCMaiAnn) - self.ecrire_ligne_configuration_2("CCMaiAnn", self.dico_configuration["Fichier_HOMARD_vers_ASTER"]) -# -# 9. Options particulières -# - self.ecrire_ligne_configuration_0("Autres options") - if self.mots_cles.has_key("LANGUE") : - self.ecrire_ligne_configuration_2("Langue", self.mots_cles["LANGUE"]) - self.ecrire_ligne_configuration_2("MessInfo", self.dico_configuration["INFO"]) - if self.dico_configuration["version_perso"] : - VERSION_HOMARD = self.dico_configuration["VERSION_HOMARD"] - self.ecrire_ligne_configuration_2("DicoOSGM", "$HOMARD_USER/"+VERSION_HOMARD+"/CONFIG/typobj.stu") -# -# 10. L'usage des éléments incompatibles avec HOMARD -# - if self.elements_incompatibles is not None : - self.ecrire_ligne_configuration_0("Les éléments incompatibles avec HOMARD") - self.ecrire_ligne_configuration_2("TypeElem", self.elements_incompatibles) -# -# 11. Fermeture du fichier -# - fichier.close() - break -# - if message_erreur is not None : - message_erreur = "Ecriture de "+nomfic_global+". "+message_erreur - UTMESS("F", self.nom_macro, message_erreur) -# - return -# ------------------------------------------------------------------------------ - def ecrire_fichier_donnees (self) : - """Ecrit le fichier des donnees dans le cas d'une demande d'information - """ - message_erreur = None -# - while message_erreur is None : -# -# 1. Ouverture du fichier -# - fichier, nomfic_global = self.ouvre_fichier(self.Nom_Fichier_Donnees) -# -# 2. On ne demande rien pour le moment -# - fichier.write("0\n") - fichier.write("0\n") - fichier.write("0\n") - fichier.write("q\n") -# -# n. Fermeture du fichier -# - fichier.close() - break -# - if message_erreur is not None : - UTMESS("F", self.nom_macro, message_erreur) -# - return nomfic_global diff --git a/Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py b/Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py deleted file mode 100644 index ea466d5a..00000000 --- a/Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py +++ /dev/null @@ -1,306 +0,0 @@ -#@ MODIF defi_cable_bp_ops Macro DATE 04/04/2007 AUTEUR VIVAN 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 ASSIRE A.ASSIRE - -# =========================================================================== -# CORPS DE LA MACRO "DEFI_CABLE_BP" -# ------------------------------------- -# USAGE : -# Entrée : -# - MODELE -# - CABLE -# - CHAM_MATER -# - CARA_ELEM -# - GROUP_MA_BETON -# - DEFI_CABLE -# - TYPE_ANCRAGE -# - TENSION_INIT -# - RECUL_ANCRAGE -# - RELAXATION -# - CONE -# RAYON -# LONGUEUR -# PRESENT OUI ou NON deux fois -# - TITRE -# - INFO 1 / 2 -# -# =========================================================================== - - - -def defi_cable_bp_ops(self,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON, - DEFI_CABLE,TYPE_ANCRAGE,TENSION_INIT,RECUL_ANCRAGE, - RELAXATION,CONE,TITRE,INFO,**args): - - """ - Ecriture de la macro DEFI_CABLE_BP - """ - from Accas import _F - import aster,string, types - from Utilitai.Utmess import UTMESS - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - IMPR_RESU = self.get_cmd('IMPR_RESU') - DEFI_CABLE_OP = self.get_cmd('DEFI_CABLE_OP') - RECU_TABLE = self.get_cmd('RECU_TABLE') - IMPR_TABLE = self.get_cmd('IMPR_TABLE') - IMPR_CO = self.get_cmd('IMPR_CO') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type char_meca) est nomme CHCABLE dans - # le contexte de la macro - - self.DeclareOut('__DC',self.sd) - - # ---------------------------------------------------------------------------- # - # Début de la Macro : - - motscles={} - - # RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "CONE" - - if CONE: - dCONE=CONE[0].cree_dict_valeurs(CONE[0].mc_liste) - for i in dCONE.keys(): - if dCONE[i]==None : del dCONE[i] - - RAYON = dCONE['RAYON'] - LONGUEUR = dCONE['LONGUEUR'] - - motscles['CONE']=[] - motscles['CONE'].append( dCONE ) - - # RECUPERATION DU MAILLAGE A PARTIR DU MODELE - __MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' ) - __MAIL= __MAIL[0].strip() - MAILLAGE = self.get_sd_avant_etape(__MAIL,self) - - # DEFINITION DU NOM DES GROUP_NO - __NOM = 'AN__' - __LGNO = MAILLAGE.LIST_GROUP_NO() - __LGN1 = [] - for i in __LGNO : - __LGN1.append( i[0][:len(__NOM)] ) - - __NB = __LGN1.count(__NOM) - -# FIN RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "CONE" - - - # RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "DEFI_CABLE" - - dDEFI_CABLE=[] - for j in DEFI_CABLE : - dDEFI_CABLE.append(j.cree_dict_valeurs(j.mc_liste)) - for i in dDEFI_CABLE[-1].keys(): - if dDEFI_CABLE[-1][i]==None : del dDEFI_CABLE[-1][i] - - - # BOUCLE SUR LES FACTEURS DU MOT-CLE "DEFI_CABLE" - - motscles['DEFI_CABLE']=[] - - for i in dDEFI_CABLE: - - # CAS OU L'ON A DEFINI LE MOT-CLE "CONE" - if CONE: - - # CREATION DU PREMIER TUNNEL - - if dCONE['PRESENT'][0] == 'OUI': - __NB = __NB + 1 - __NOM1 = __NOM + str( int(__NB) ) - - motscle2={} - motscle2['CREA_GROUP_NO']=[] - - if i.has_key('GROUP_MA') == 1: - __CAB = i['GROUP_MA'] - - if type(GROUP_MA_BETON) in [types.TupleType, types.ListType]: gma = list(GROUP_MA_BETON) - else: gma = [ GROUP_MA_BETON ] - gma.insert(0, __CAB) - - motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': gma, 'GROUP_MA_AXE': __CAB, 'NOM': __NOM1}]} - if i.has_key('MAILLE') == 1: - echo_mess=[] - echo_mess.append( ' \n' ) - echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) - echo_mess.append( ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA \n' ) - echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) - message=string.join(echo_mess) - UTMESS('F',message) - if i.has_key('GROUP_NO_ANCRAGE') == 1: - __PC1 = i['GROUP_NO_ANCRAGE'][0] - motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1 - if i.has_key('NOEUD_ANCRAGE') == 1: - __PC1 = i['NOEUD_ANCRAGE'][0] - motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1 - - DEFI_GROUP( reuse=MAILLAGE, - MAILLAGE=MAILLAGE, - INFO=INFO, - ALARME='NON', - **motscle2 - ) ; - - # CREATION DU DEUXIEME TUNNEL - - if dCONE['PRESENT'][1] == 'OUI': - __NB = __NB + 1 - __NOM2 = __NOM + str( int(__NB) ) - - motscle2={} - motscle2['CREA_GROUP_NO']=[] - - if i.has_key('GROUP_MA') == 1: - __CAB = i['GROUP_MA'] - - if type(GROUP_MA_BETON) in [types.TupleType, types.ListType]: gma = list(GROUP_MA_BETON) - else: gma = [ GROUP_MA_BETON ] - gma.insert(0, __CAB) - - motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': gma, 'GROUP_MA_AXE': __CAB, 'NOM': __NOM2}]} - if i.has_key('MAILLE') == 1: - echo_mess=[] - echo_mess.append( ' \n' ) - echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) - echo_mess.append( ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA \n' ) - echo_mess.append( ' # ---------------------------------------------------------------------------\n' ) - message=string.join(echo_mess) - UTMESS('F',message) - if i.has_key('GROUP_NO_ANCRAGE') == 1: - __PC1 = i['GROUP_NO_ANCRAGE'][1] - motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1 - if i.has_key('NOEUD_ANCRAGE') == 1: - __PC1 = i['NOEUD_ANCRAGE'][1] - motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1 - - DEFI_GROUP( reuse=MAILLAGE, - MAILLAGE=MAILLAGE, - INFO=INFO, - ALARME='NON', - **motscle2 - ) ; - - - # CREATION DES NOUVEAUX FACTEURS DU MOT-CLE "DEFI_CABLE" POUR DEFI_CABLE_BP - - if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'OUI': - if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], - GROUP_NO_FUT=( __NOM1,__NOM2, ), ), ) - if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], - GROUP_NO_FUT=( __NOM1,__NOM2, ), ), ) - - if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'NON': - if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], - GROUP_NO_FUT=( __NOM1, ), ), ) - if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], - GROUP_NO_FUT=( __NOM1, ), ), ) - - if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'OUI': - if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], - GROUP_NO_FUT=( __NOM2, ), ), ) - if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], - GROUP_NO_FUT=( __NOM2, ), ), ) - - if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'NON': - if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), ) - if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), ) - - - # CAS OU L'ON A PAS DEFINI LE MOT-CLE "CONE" - else: - if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), ) - - if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'], - NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), ) - - if i.has_key('MAILLE') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'], - GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), ) - - if i.has_key('MAILLE') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: - motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'], - NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), ) - - -# FIN BOUCLE sur i in DEFI_CABLE - - - # LANCEMENT DE DEFI_CABLE_BP - - if RELAXATION: - dRelaxation=RELAXATION[0].cree_dict_valeurs(RELAXATION[0].mc_liste) - for i in dRelaxation.keys(): - if dRelaxation[i]==None : del dRelaxation[i] - - __DC=DEFI_CABLE_OP(MODELE=MODELE, - CHAM_MATER=CHAM_MATER, - CARA_ELEM=CARA_ELEM, - GROUP_MA_BETON=GROUP_MA_BETON, - TYPE_ANCRAGE=TYPE_ANCRAGE, - TENSION_INIT=TENSION_INIT, - RECUL_ANCRAGE=RECUL_ANCRAGE, - RELAXATION=dRelaxation, - INFO=INFO, - **motscles - ); - - else: - - __DC=DEFI_CABLE_OP(MODELE=MODELE, - CHAM_MATER=CHAM_MATER, - CARA_ELEM=CARA_ELEM, - GROUP_MA_BETON=GROUP_MA_BETON, - TYPE_ANCRAGE=TYPE_ANCRAGE, - TENSION_INIT=TENSION_INIT, - RECUL_ANCRAGE=RECUL_ANCRAGE, - INFO=INFO, - **motscles - ); - -# __TCAB = RECU_TABLE(CO=__DC,NOM_TABLE='CABLE_BP'); -# IMPR_TABLE(TABLE=__TCAB); - - return ier diff --git a/Aster/Cata/cataSTA8/Macro/defi_inte_spec_ops.py b/Aster/Cata/cataSTA8/Macro/defi_inte_spec_ops.py deleted file mode 100644 index 63a04aec..00000000 --- a/Aster/Cata/cataSTA8/Macro/defi_inte_spec_ops.py +++ /dev/null @@ -1,153 +0,0 @@ -#@ MODIF defi_inte_spec_ops Macro DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def tocomplex(arg): - if arg[0]=='RI' : return complex(arg[1],arg[2]) - if arg[0]=='MP' : return complex(arg[1]*cos(arg[2]),arg[1]*sin(arg[2])) - -def defi_inte_spec_ops(self,DIMENSION,PAR_FONCTION,KANAI_TAJIMI, - CONSTANT,TITRE,INFO,**args): -# ------------------------------------------------------------------ -# Définition d'une matrice interspectrale -# à partir de fonctions complexes - - import aster - from types import ListType, TupleType - EnumTypes = (ListType, TupleType) - from Accas import _F - from Utilitai.Utmess import UTMESS - import Numeric - - commande='DEFI_INTE_SPEC' - - ier = 0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type table_sdaster ou dérivé) est tab - self.DeclareOut('tabout', self.sd) - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - CREA_TABLE = self.get_cmd('CREA_TABLE') - CALC_TABLE = self.get_cmd('CALC_TABLE') - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - -#--- Vérifications - - if PAR_FONCTION==None : PAR_FONCTION=[] - if KANAI_TAJIMI==None : KANAI_TAJIMI=[] - if CONSTANT ==None : CONSTANT =[] - - nfntot = len(PAR_FONCTION)+len(KANAI_TAJIMI)+len(CONSTANT) - dimh = (DIMENSION*(DIMENSION+1))/2 - if dimh!=nfntot : - txt = "nombre de fonctions erroné pour une matrice hermitienne" - UTMESS('F',commande, txt) - - l_f=[] - for occ in PAR_FONCTION : l_f.append(('PAR_FONCTION',occ)) - for occ in KANAI_TAJIMI : l_f.append(('KANAI_TAJIMI',occ)) - for occ in CONSTANT : l_f.append(('CONSTANT' ,occ)) - for occ in l_f : - if occ[0]!='PAR_FONCTION' and occ[1]['FREQ_MAX'] 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/cataSTA8/Macro/exec_logiciel_ops.py b/Aster/Cata/cataSTA8/Macro/exec_logiciel_ops.py deleted file mode 100644 index cf768078..00000000 --- a/Aster/Cata/cataSTA8/Macro/exec_logiciel_ops.py +++ /dev/null @@ -1,184 +0,0 @@ -#@ MODIF exec_logiciel_ops Macro DATE 29/08/2006 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import os.path -import traceback -import shutil -from types import ListType, TupleType -EnumTypes = (ListType, TupleType) - -# ------------------------------------------------------------------------------ -def exec_logiciel_ops(self, LOGICIEL, ARGUMENT, MAILLAGE, CODE_RETOUR_MAXI, INFO, **args): - """ - Macro IMPR_FONCTION permettant d'imprimer dans un fichier des fonctions, - colonnes de table... - Erreurs dans IMPR_FONCTION pour ne pas perdre la base. - """ - macro='EXEC_LOGICIEL' - import aster - from Utilitai.Utmess import UTMESS - from Utilitai.System import ExecCommand - from Utilitai.UniteAster import UniteAster - - PRE_GMSH = self.get_cmd("PRE_GMSH") - PRE_GIBI = self.get_cmd("PRE_GIBI") - LIRE_MAILLAGE = self.get_cmd("LIRE_MAILLAGE") - - ier=0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - #---------------------------------------------- - # constantes des modes d'exécution - CMD_EXTERNE = 1 - EXECFILE = 2 - mode_lancement = None - - # paramètres nécessaires pour écrire la ligne de commande - # !! d_para['options'] est une liste !! - d_para = {'prog' : '', 'options' : ''} - - l_args = [] - if ARGUMENT != None: - l_args = ARGUMENT[:] - if type(l_args) not in EnumTypes: - l_args = [l_args,] - - #---------------------------------------------- - # 1. Préparation des données - # 1.1. EXEC_LOGICIEL standard - if MAILLAGE == None: - mode_lancement = CMD_EXTERNE - cmd = '%(prog)s %(options)s' - - # 1.2. Cas "lancement d'un mailleur" - else: - mcf = MAILLAGE[0] - dMCF = mcf.cree_dict_valeurs(mcf.mc_liste) - d_para['fichIN'] = 'fort.%d' % dMCF['UNITE_GEOM'] - d_para['fichOUT'] = 'fort.%d' % dMCF['UNITE'] - - if dMCF['FORMAT'] == 'GMSH': - mode_lancement = CMD_EXTERNE - cmd = '%(prog)s %(options)s -o %(fichOUT)s %(fichIN)s' - d_para['prog'] = os.path.join(aster.repout(), 'gmsh') - d_para['options'] = ('-3',) - - elif dMCF['FORMAT'] == 'GIBI': - mode_lancement = CMD_EXTERNE - cmd = '%(prog)s %(options)s %(fichIN)s %(fichOUT)s' - d_para['prog'] = os.path.join(aster.repout(), 'gibi') - - elif dMCF['FORMAT'] == 'SALOME': - mode_lancement = EXECFILE - if len(l_args) < 1: - UTMESS('F', macro, "FORMAT SALOME, L'ARGUMENT 1 DOIT ETRE " \ - "LE NOM DU FICHIER MED PRODUIT PAR LE SCRIPT PYTHON.") - else: - d_para['fichMED'] = l_args[0] - - else: - UTMESS('F', macro, "ON NE SAIT PAS TRAITER LE FORMAT '%s'" % dMCF['FORMAT']) - - #---------------------------------------------- - # 2. lecture des mots-clés - if LOGICIEL != None: - d_para['prog'] = LOGICIEL - - if len(l_args) > 0: - d_para['options'] = l_args - d_para['options'] = ' '.join(d_para['options']) - - #---------------------------------------------- - # 3. Exécution - # 3a. Lancement d'une commande externe - if mode_lancement == CMD_EXTERNE: - scmd = cmd % d_para - comment = "Lancement de la commande :\n%s" % scmd - iret, output = ExecCommand(scmd, - alt_comment=comment) - # écrire l'output dans le .mess si demandé - if INFO == 2: - aster.affiche('MESSAGE', output) - - if CODE_RETOUR_MAXI >= 0 and iret > CODE_RETOUR_MAXI: - UTMESS('F', macro, 'CODE RETOUR INCORRECT (MAXI %d) : %d' \ - % (CODE_RETOUR_MAXI, iret)) - - #---------------------------------------------- - # 3b. Exécution d'un fichier Python - elif mode_lancement == EXECFILE: - if d_para['prog'] != '': - UTMESS('A', macro, "LE MOT-CLE LOGICIEL N'EST PAS UTILISE AVEC CE FORMAT") - context={} - try: - execfile(d_para['fichIN'], context) - except: - traceback.print_exc() - txt = open(d_para['fichIN'], 'r').read() - UTMESS('F', macro, """ERREURS LORS DE L'EXECUTION DU FICHIER CI-DESSOUS : -<<<<<<<<<<<<<<< DEBUT DU FICHIER >>>>>>>>>>>>>>> -%s -<<<<<<<<<<<<<<< FIN DU FICHIER >>>>>>>>>>>>>>> -""" % txt) - - if not os.path.exists(d_para['fichMED']): - UTMESS('F', macro, "LE FICHIER %s N'EXISTE PAS" % d_para['fichMED']) - else: - # copie fichMED vers fichOUT pour pouvoir le récupérer - shutil.copyfile(d_para['fichMED'], d_para['fichOUT']) - - else: - UTMESS('F', macro, "Mode de lancement inconnu : %s" % mode_lancement) - - #---------------------------------------------- - # 4. Conversion du maillage - if MAILLAGE != None: - UL = UniteAster() - umail = UL.Libre(action='ASSOCIER', - nom='exec_logiciel.%s2mail' % dMCF['FORMAT'].lower()) - - # déclaration du concept maillage en sortie - self.DeclareOut('mail', dMCF['MAILLAGE']) - - lire_mail_opts = {} - if dMCF['FORMAT'] == 'GMSH': - PRE_GMSH(UNITE_GMSH = dMCF['UNITE'], - UNITE_MAILLAGE = umail) - - elif dMCF['FORMAT'] == 'GIBI': - PRE_GIBI(UNITE_GIBI = dMCF['UNITE'], - UNITE_MAILLAGE = umail) - - elif dMCF['FORMAT'] == 'SALOME': - # ici l'unité en entrée de LIRE_MAILLAGE ne correspond pas au .mail - # mais au fichier MED en sortie du execfile. - umail = dMCF['UNITE'] - etat = UL.Etat(umail, etat='O', TYPE='LIBRE', nom=d_para['fichMED']) - lire_mail_opts['FORMAT'] = 'MED' - lire_mail_opts['INFO_MED'] = INFO - - mail = LIRE_MAILLAGE(UNITE = umail, - INFO = INFO, - **lire_mail_opts) - - UL.EtatInit() - return ier - diff --git a/Aster/Cata/cataSTA8/Macro/fiabilite_fichier.py b/Aster/Cata/cataSTA8/Macro/fiabilite_fichier.py deleted file mode 100644 index 1462a5ec..00000000 --- a/Aster/Cata/cataSTA8/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/cataSTA8/Macro/fiabilite_mefisto.py b/Aster/Cata/cataSTA8/Macro/fiabilite_mefisto.py deleted file mode 100644 index b74d7e54..00000000 --- a/Aster/Cata/cataSTA8/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/cataSTA8/Macro/gene_vari_alea_ops.py b/Aster/Cata/cataSTA8/Macro/gene_vari_alea_ops.py deleted file mode 100644 index 829a93e7..00000000 --- a/Aster/Cata/cataSTA8/Macro/gene_vari_alea_ops.py +++ /dev/null @@ -1,109 +0,0 @@ -#@ 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 deleted file mode 100644 index dd50f8eb..00000000 --- a/Aster/Cata/cataSTA8/Macro/impr_fonction_ops.py +++ /dev/null @@ -1,402 +0,0 @@ -#@ MODIF impr_fonction_ops Macro DATE 02/05/2006 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# 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 Cata.cata import nappe_sdaster, fonction_c - 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) - 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))) - - # 0.3. Devra-t-on interpoler globalement ? - # Dans ce cas, linter__ est le LIST_PARA - # ou, à défaut, les abscisses de la première courbe - interp=False - if FORMAT=='TABLEAU': - interp=True - dCi=Courbe[i0] - if dCi.has_key('LIST_PARA'): - linter__=dCi['LIST_PARA'] - else: - obj=None - for typi in unparmi: - if dCi.has_key(typi): - obj=dCi[typi] - break - if obj==None: - UTMESS('S',macro,'incohérence entre le catalogue et la macro.') - if typi=='FONCTION': - if isinstance(obj, nappe_sdaster): - lpar,lval=obj.Valeurs() - linterp=lval[0][0] - else: - linterp=obj.Valeurs()[0] - elif typi=='FONC_X': - lbid,linterp=obj.Valeurs() - elif typi=='ABSCISSE': - linterp=obj - linter__=DEFI_LIST_REEL(VALE=linterp) - if INFO==2: - aster.affiche('MESSAGE', ' Interpolation globale sur la liste :') - aster.affiche('MESSAGE', pprint.pformat(linter__.Valeurs())) - - - #---------------------------------------------- - # 1. Récupération des valeurs des N courbes sous forme - # d'une liste de N listes - #---------------------------------------------- - graph=Graph.Graph() - iocc=-1 - for dCi in Courbe: - iocc+=1 - - # 1.1. Type d'objet à traiter - obj=None - for typi in unparmi: - if dCi.has_key(typi): - obj=dCi[typi] - break - if not dCi.has_key('LEGENDE') and hasattr(obj,'get_name'): - dCi['LEGENDE']=obj.get_name() - if obj==None: - 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 isinstance(obj, nappe_sdaster): - lpar,lval=obj.Valeurs() - dico,ldicf=obj.Parametres() - Leg=dCi['LEGENDE'] - for i in range(len(lpar)): - p=lpar[i] - lx=lval[i][0] - ly=lval[i][1] - # sur quelle liste interpoler chaque fonction - if i==0: - if interp: - li__=linter__ - elif dCi.has_key('LIST_PARA'): - li__=dCi['LIST_PARA'] - else: - li__=DEFI_LIST_REEL(VALE=lx) - # compléter les paramètres d'interpolation - dic=dico.copy() - dic.update(ldicf[i]) - - if (interp or dCi.has_key('LIST_PARA')) and i>0: - ftmp__=CALC_FONC_INTERP( - FONCTION=obj, - VALE_PARA=p, - LIST_PARA_FONC=li__, - **dic - ) - pv,lv2=ftmp__.Valeurs() - lx=lv2[0][0] - ly=lv2[0][1] - # on stocke les données dans le Graph - nomresu=dic['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) - dicC={ - 'Val' : [lx,ly], - 'Lab' : [dic['NOM_PARA_FONC'],nomresu] - } - # ajoute la valeur du paramètre - dCi['LEGENDE'] = '%s %s=%g' % (Leg,dic['NOM_PARA'].strip(),p) - Graph.AjoutParaCourbe(dicC, args=dCi) - graph.AjoutCourbe(**dicC) - DETRUIRE(CONCEPT=_F(NOM=('li__','ftmp__'),),ALARME='NON',INFO=1) - else: - ftmp__=obj - dpar=ftmp__.Parametres() - if interp: - ftmp__=CALC_FONC_INTERP( - FONCTION=obj, - LIST_PARA=linter__, - **dpar - ) - elif dCi.has_key('LIST_PARA'): - ftmp__=CALC_FONC_INTERP( - FONCTION=obj, - LIST_PARA=dCi['LIST_PARA'], - **dpar - ) - lval=list(ftmp__.Valeurs()) - lx=lval[0] - lr=lval[1] - if isinstance(obj, fonction_c) and dCi.get('PARTIE') == 'IMAG': - lr=lval[2] - # on stocke les données dans le Graph - if isinstance(obj, fonction_c) and not dCi.has_key('PARTIE'): - nomresu=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) - dicC={ - 'Val' : lval, - 'Lab' : [dpar['NOM_PARA'],nomresu+'_R',nomresu+'_I'] - } - else: - nomresu=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)) - dicC={ - 'Val' : [lx,lr], - 'Lab' : [dpar['NOM_PARA'],nomresu] - } - Graph.AjoutParaCourbe(dicC, args=dCi) - graph.AjoutCourbe(**dicC) - - # 1.2.2. Mot-clé LIST_RESU - elif typi=='LIST_RESU': - if interp and iocc>0: - 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 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 - 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+'\n' - message=message+graph.__repr__() - message=message+'-'*70+'\n' - aster.affiche('MESSAGE',message) - - #---------------------------------------------- - # 2. Impression du 'tableau' de valeurs - #---------------------------------------------- - - # 2.0. Surcharge des propriétés du graphique et des axes - # (bloc quasiment identique dans Table) - if args['TITRE']!=None: graph.Titre=args['TITRE'] - if args['SOUS_TITRE']!=None: graph.SousTitre=args['SOUS_TITRE'] - if FORMAT in ('XMGRACE','AGRAF'): - if args['BORNE_X']!=None: - graph.Min_X=args['BORNE_X'][0] - graph.Max_X=args['BORNE_X'][1] - if args['BORNE_Y']!=None: - graph.Min_Y=args['BORNE_Y'][0] - graph.Max_Y=args['BORNE_Y'][1] - if args['LEGENDE_X']!=None: graph.Legende_X=args['LEGENDE_X'] - if args['LEGENDE_Y']!=None: graph.Legende_Y=args['LEGENDE_Y'] - if args['ECHELLE_X']!=None: graph.Echelle_X=args['ECHELLE_X'] - if args['ECHELLE_Y']!=None: graph.Echelle_Y=args['ECHELLE_Y'] - if args['GRILLE_X']!=None: graph.Grille_X=args['GRILLE_X'] - if args['GRILLE_Y']!=None: graph.Grille_Y=args['GRILLE_Y'] - - kargs={ - 'FORMAT' : FORMAT, - 'FICHIER' : nomfich, - } - - # 2.1. au format TABLEAU - if FORMAT=='TABLEAU': - # surcharge par les formats de l'utilisateur - kargs['dform']={ - 'csep' : args['SEPARATEUR'], - 'ccom' : args['COMMENTAIRE'], - 'cdeb' : args['DEBUT_LIGNE'], - 'cfin' : args['FIN_LIGNE'] - } - - # 2.2. au format AGRAF - elif FORMAT=='AGRAF': - nomdigr=None - if args['UNITE_DIGR']!=6: - nomdigr=UL.Nom(args['UNITE_DIGR']) - kargs['FICHIER']=[nomfich, nomdigr] - kargs['dform']={ 'formR' : '%12.5E' } - - # 2.3. au format XMGRACE et dérivés - elif FORMAT=='XMGRACE': - kargs['dform']={ 'formR' : '%.8g' } - kargs['PILOTE']=args['PILOTE'] - - # 2.39. Format inconnu - else: - 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/cataSTA8/Macro/impr_oar_ops.py b/Aster/Cata/cataSTA8/Macro/impr_oar_ops.py deleted file mode 100644 index f942f6c1..00000000 --- a/Aster/Cata/cataSTA8/Macro/impr_oar_ops.py +++ /dev/null @@ -1,773 +0,0 @@ -#@ MODIF impr_oar_ops Macro DATE 21/11/2007 AUTEUR MACOCCO K.MACOCCO -# -*- 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. -# ====================================================================== - -# protection pour eficas -try: - import aster - from Utilitai.Utmess import UTMESS - from Utilitai.Table import Table - from Utilitai.partition import MAIL_PY -except: - pass - -def buildTabString(tabLevel): - """ - Construit une chaine de tabulation - """ - chaine = '' - for i in range(0, tabLevel) : - chaine += '\t' - - return chaine - -def getBornes(listIn, valTest) : - """ - Retourne un doublet de valeurs qui correspond aux valeurs de la liste qui encadrent la valeur (valTest) - Si val n'est pas encadrée par des valeurs de la liste, une des valeurs du doublet est None - """ - v1 = None - v2 = None - for val in listIn : - if valTest > val : v1 = val - if valTest < val : v2 = val - - # traitement des cas limites - if valTest == listIn[0] : v1 = listIn[0] - if valTest == listIn[len(listIn)-1] : v2 = listIn[len(listIn)-1] - - return (v1, v2) - -def interpoleLin(listDoublet, X) : - """ - Interpole linéairement entre deux bornes définies par listDoublets[(X0, Y0), (X1, Y1)] la valeur Y en X - """ - X0 = listDoublet[0][0] - Y0 = listDoublet[0][1] - X1 = listDoublet[1][0] - Y1 = listDoublet[1][1] - - return Y0 + (X - X0) * (Y1 - Y0) / (X1 - X0) - -class interpolationError(Exception) : - def __init__(self) : - self.mess = 'Interpolation sur une valeur hors bornes' - self.otherExcept = Exception() - - def getMess(self) : - """ - retourne le message associé à l'erreur - """ - # Analyse les différents cas d'erreurs - if self.otherExcept == IOError : - self.mess += "\nProblème à l'ouverture du fichier\n" - - return self.mess - -class XMLNode : - """ - Classe gérant un noeud de l'arborescence XML - Un noeud possède : - - un nom de balise - - un commentaire (optionnel) - - un ensemble de "paramètres" (optionnels) - - une liste d'élément ou d'autres noeuds (optionnels/possibilité de balises vides) : - - La classe propose : - - une méthode "buildTree" qui parcoure le liste de manière récursive pour - produire l'arborescence XML en vu de son enregistrement ou son impression - - (TO DO) une methode statique "loadTree" qui produit un arbre XML à partir d'un fichier - """ - def __init__(self, nomBalise, valeur = None, commentaire = None, **listOpt) : - self.nomBalise = nomBalise - self.commentaire = commentaire - self.param = listOpt - self.arbre=list() - if valeur != None : self.addValue(valeur) # None n'est pas 0 ! - - def getCommentaire(self) : return self.commentaire - - def setCommentaire(sel, commentaire) : self.commentaire = commentaire - - def getParametres(self) : return self.param - - def setParametres(self, parametres) : self.param = parametres - - def append(self, nodeName, valeur=None, commentaire = None, **listOpt) : - """ - Ajoute un noeud à l'arborescence et retourne une référence sur ce noeud - On peut ajouter directement la valeur, si simple, associée à la balise - """ - node = XMLNode(nodeName, valeur, commentaire) - - self.arbre.append(node) - - return self.arbre[len(self.arbre)-1] - - def addValue(self, valeur): - """ - Ajoute un élément "simple" (nombre, texte) à l'arborescence - """ - self.arbre.append(valeur) - - def buildTree(self, tabLevel=0) : - """ - Construit l'arborescence XML en parcourant récursivement la structure de donnée - et la retourne sous la forme d'une chaine de caractères - - tabLevel permet de gérer l'indentation - """ - # Construction de la chaine de tabulations nécessaire à une bonne lecture du fichier XML - tabString = buildTabString(tabLevel) - - XMLString = '' - - try : - # listOpt contient les paramètres optionnels de la balise - chaine = '' - for v in self.param.keys() : - chaine = chaine + ' ' + v + '=' + self.param[v] - except : pass - - baliseOuverture=tabString + "<" + self.nomBalise + chaine +">\n" - XMLString += baliseOuverture - - if self.commentaire : - XMLString = XMLString + tabString + "\t\n" - - for elem in self.arbre : - try : - XMLString += elem.buildTree(tabLevel+1) - except : # l'élément n'est pas un noeud - XMLString = XMLString + tabString + '\t' + str(elem) + '\n' - - XMLString = XMLString + tabString + "\n" - - return XMLString - - def save(self, fileObj) : - """ - Construit le l'arborescence XML et l'écrit dans un fichier - pointé par le handler passé en paramètres - """ - try : - fileObj.write(self.buildTree()) - except : pass - -class OAR_element : - """ - Classe de base des éléments manipulés par IMPR_OAR - """ - def __init__(self) : - self.nodeComp = None - - def buildTree(self) : pass - - def getNode(self) : - """ - Renvoie le noeud XML construit par buildTree - """ - return self.nodeComp - - -class composant(OAR_element) : - """ - Classe permettant de traiter les composants - - NB : - 1. L utilisateur est suppose faire la meme coupe pour le calcul mecanique et le calcul thermo-mecanique - 2. Dans le cas d'un revetement, l'utilisateur est supposé définir son plan de coupe de telle sorte - que la coupe de la structure et la coupe du revetement se raccordent - """ - def __init__(self, **args) : - self.nodeComp = XMLNode("COMPOSANT") # Racine de l'arborescence composant - - self.diametre = args['DIAMETRE'] - self.origine = args['ORIGINE'] - self.coef_u = args['COEF_U'] - self.angle_c = args['ANGLE_C'] - self.revet = args['REVET'] - - self.lastAbscisse = None # Permet de gerer le recouvrement des points de coupe entre revetement et structure - self.num_char = -1 - self.type_char = '' - self.tabAbscisses = list() - self.tabAbscisses_S = None - self.dictMeca = dict() - self.dictMeca_S = None # Pas créé car optionnel - self.epaisseur = 0.0 - self.epaisseur_R = 0.0 - - # dictionnaire gérant le résultat contraintes en fonction des instants et des abscisses - self.dictInstAbscSig = dict() - self.dictInstAbscSig_S = None # Création si nécessaire - # dictionnaire gérant le résultat température en fonction des instants et des abscisses - self.dictInstAbscTemp = dict() - self.dictInstAbscTemp_S = None # facultatif - self.list_inst = None - self.num_tran = None - - self.noResuMeca = False - self.noResuTher = False - - # 1. resultat mecanique - try : - # On ne construit qu'une table des abscisses et une table des contraintes. - # Le revetement est obligatoirement en interne on commence par lui - para_resu_meca = args['RESU_MECA'] - self.num_char = para_resu_meca['NUM_CHAR'] - self.type_char = para_resu_meca['TYPE'] - - if self.revet == 'OUI' : - # Construction de la table complementaire si revetement - self.dictMeca_S = dict() - self.tabAbscisses_S = list() - self.buildTablesMeca('TABLE_S', para_resu_meca, self.tabAbscisses_S, self.dictMeca_S) - self.epaisseur_R = abs(self.tabAbscisses_S[len(self.tabAbscisses_S)-1] - self.tabAbscisses_S[0]) - - self.buildTablesMeca('TABLE', para_resu_meca, self.tabAbscisses, self.dictMeca, offset=self.epaisseur_R) - - if self.revet == 'OUI' : - self.mergeDictMeca() # merge les tableaux resultats du revetement et de la structure - - # Calcul de l'épaisseur de la coupe. - self.epaisseur = abs(self.tabAbscisses[len(self.tabAbscisses)-1] - self.tabAbscisses[0]) - - except : - self.noResuMeca = True - - # 2. Résultat thermique - try : - para_resu_ther = RESU_THER - self.num_tran = para_resu_ther['NUM_TRAN'] - self.tabAbscisses = list() - self.tabAbscisses_S = None - - listInst = list() - if self.revet == 'OUI' : - # Le revetement est obligatoirement en interne on commence par lui - # 1. Construction champ temperature - self.dictInstAbscTemp_S = dict() - self.buildTemp('TABLE_ST', para_resu_ther, self.dictInstAbscTemp_S) - - # 2. Construction de la "table" des contraintes - self.dictInstAbscSig_S = dict() - self.tabAbscisses_S = list() - self.buildTablesTher('TABLE_S', para_resu_ther, self.tabAbscisses_S, self.dictInstAbscSig_S) - - # 3. calcul de l'épaisseur - self.epaisseur_R = abs(self.tabAbscisses_S[len(self.tabAbscisses_S)-1] - self.tabAbscisses_S[0]) - - # Pour la structure - # 1. Construction champ température - self.buildTemp('TABLE_TEMP', para_resu_ther, self.dictInstAbscTemp, self.epaisseur_R) - - # 2. Construction de la table des contraintes - self.buildTablesTher('TABLE_T', para_resu_ther, self.tabAbscisses, self.dictInstAbscSig, offset=self.epaisseur_R) - - if self.revet == 'OUI' : - self.mergeDictTher() # merge les tableaux resultats du revetement et de la structure - - if not(self.compareListAbscTher()) : - UTMESS('F', 'IMPR_OAR', 'LES COUPES MECANIQUES ET THERMIQUE DOIVENT PARTAGER LES MEMES ABSCISSES') - - try : - self.interpoleInstants() # Interpolation des instants de la table des température sur celle de la table mécanique - except interpolationError, err: - UTMESS('F', 'IMPR_OAR', err.getMess()) - - # 3. Calcul de l'épaisseur de la coupe. - self.epaisseur = abs(self.tabAbscisses[len(self.tabAbscisses)-1] - self.tabAbscisses[0]) - - except : - self.noResuTher = True - - # Construction de l arborescence - self.buildTree() - - - def getAbscisses(self, dicoTable, tableAbsc, offset=0.0) : - """ - Récupère la liste des abscisses - """ - # récupération des abscisses - ABSCISSES = dicoTable['ABSC_CURV'] - - valeurAbsc = 0.0 - for val in ABSCISSES : - valeurAbsc = val + offset - tableAbsc.append(valeurAbsc) - - def buildTablesMeca(self, label, para_resu, tableAbsc, dictMeca, offset=0.0) : - """ - Construction des tableaux mécanique - """ - sigma_xml = ( 'S_RR', 'S_TT', 'S_ZZ', 'S_RT', 'S_TZ', 'S_ZR' ) - - table_meca = para_resu[label].EXTR_TABLE() - - # Utilisation des méthodes de la classe table - dictTable = table_meca.values() - - # récupération des abscisses - self.getAbscisses(dictTable, tableAbsc, offset) - - # Construction de la table mécanique principale - for val in sigma_xml : - dictMeca[val] = list() - - S_XX = dictTable['SIXX'] - S_YY = dictTable['SIYY'] - S_ZZ = dictTable['SIZZ'] - S_XY = dictTable['SIXY'] - S_YZ = dictTable['SIYZ'] - S_XZ = dictTable['SIXZ'] - for v1, v2, v3, v4, v5, v6 in zip(S_XX, S_YY, S_ZZ, S_XY, S_YZ, S_XZ) : - dictMeca['S_RR'].append(v1) - dictMeca['S_TT'].append(v2) - dictMeca['S_ZZ'].append(v3) - dictMeca['S_RT'].append(v4) - dictMeca['S_TZ'].append(v5) - dictMeca['S_ZR'].append(v6) - - def mergeDictMeca(self) : - """ - Merge des résultats mécaniques issus de la structure et du revetement - """ - # Merge des listes d'abscisses - # Le revetement est interieur la derniere abscisse du revetement doit etre egal a la premiere de la structure - if self.tabAbscisses_S[len(self.tabAbscisses_S)-1] != self.tabAbscisses[0] : - UTMESS('F', 'IMPR_OAR', 'LES COUPES DU REVETEMENT ET DE LA STRUCTURE DOIVENT PARTAGER UNE ABSCISSE COMMUNE') - - # On construit une table des abscisses tempopraire - tableAbscTemp = self.tabAbscisses_S - - # On recopie la table des abscisses en sautant le premier - debut = True - for val in self.tabAbscisses : - if debut : - debut = False - continue - tableAbscTemp.append(val) - - self.tabAbscisses = tableAbscTemp - - # On construit des listes de travail intermédiaires que l'on commence par remplir avec les tables "supplémentaires" - dictMecaBis = self.dictMeca_S - - # On recopie les éléments de la structure dans le tableau - debut = True - for v1, v2, v3, v4, v5, v6 in zip(self.dictMeca['S_RR'], self.dictMeca['S_TT'], self.dictMeca['S_ZZ'], self.dictMeca['S_RT'], self.dictMeca['S_TZ'], self.dictMeca['S_ZR']) : - if debut : - debut = False - continue - dictMecaBis['S_RR'].append(v1) - dictMecaBis['S_TT'].append(v2) - dictMecaBis['S_ZZ'].append(v3) - dictMecaBis['S_RT'].append(v4) - dictMecaBis['S_TZ'].append(v5) - dictMecaBis['S_ZR'].append(v6) - - # On restitue ensuite la liste globale dans self.dictMeca - self.dictMeca = dictMecaBis - - - def buildTemp(self, label, para_resu, dictInstAbscTemp, offset=0.0): - """ - Récupération du champ température aux noeuds avec interpolation sur les "instants" du calcul mécanique - """ - table_temp = para_resu[label].EXTR_TABLE() - - # Utilisation des méthodes de la classe table - dictTable = table_temp.values() - - # On construit un dictionnaire associant un "instant" avec un couple ("abscisse", "température") - - # 1. Récupération de la liste des instants - INSTANTS = dictTable['INST'] - for val in INSTANTS : - dictInstAbscTemp[val] = 0 # On crée juste les clés du dictionnaire - - listTables = list() # liste de tables contenant une table pas instant - for inst in dictInstAbscTemp.keys(): - listTables.append(table_temp.INST == inst) - - # 2. Récupération des abscisses - tableAbsc = list() - self.getAbscisses(listTables[0].values(), tableAbsc, offset) - - # 3. Récupération des températures - tableTemp = list() # liste de liste de température (1 par instant) - for tb in listTables : - TEMPERATURE = tb.values()['TEMP'] - tableTemp.append(TEMPERATURE) - - # 4. Construction de dictInstAbscTemp - for i in range(0, len(dictInstAbscTemp.keys())): - listDoublets = list() - for absc, temp in zip(tableAbsc, tableTemp[i]) : - listDoublets.append((absc,temp)) - - inst = dictInstAbscTemp.keys()[i] - dictInstAbscTemp[inst] = listDoublets - - def buildTablesTher(self, label, para_resu, tabAbscisses, dictInstAbscSig, offset=0.0) : - """ - Construction des tableaux thermo-mécanique - listDictTher contient un dictionnaire par numéro d'ordre - """ - table_temp = para_resu[label].EXTR_TABLE() - - # On construit un dictionnaire associant un "instant" avec une liste de couples ("abscisse", liste de "sigma") - - # Utilisation des méthodes de la classe table - dictTable = table_temp.values() - - # On construit un dictionnaire associant un "instant" avec un couple ("abscisse", "température") - - # 1. Récupération de la liste des instants - INSTANTS = dictTable['INST'] - for val in INSTANTS : - dictInstAbscSig[val] = 0 # On crée juste les clés du dictionnaire - - listTables = list() # liste de tables contenant une table pas instant - for inst in dictInstAbscSig.keys(): - listTables.append(table_temp.INST == inst) - - # 2. Récupération des abscisses - self.getAbscisses(listTables[0].values(), tabAbscisses, offset) - - # 3. Récupération des listes de sigma - listListListSigAbscInst = list() # liste des sigma par abscisse par instant - for tbl in listTables: - listListSigAbscInst = list() - - # On crée une table pour chaque instant - S_XX = tbl.values()['SIXX'] - S_YY = tbl.values()['SIYY'] - S_ZZ = tbl.values()['SIZZ'] - S_XY = tbl.values()['SIXY'] - S_YZ = tbl.values()['SIYZ'] - S_XZ = tbl.values()['SIXZ'] - for v1, v2, v3, v4, v5, v6 in zip(S_XX, S_YY, S_ZZ, S_XY, S_YZ, S_XZ) : - listSigAbsc = list() # Liste des sigmas pour une abscisse - listSigAbsc.append(v1) - listSigAbsc.append(v2) - listSigAbsc.append(v3) - listSigAbsc.append(v4) - listSigAbsc.append(v5) - listSigAbsc.append(v6) - - listListSigAbscInst.append(listSigAbsc) - - listListListSigAbscInst.append(listListSigAbscInst) - - # 4. Assemblage du dictionnaire - for i in range(0, len(dictInstAbscSig.keys())) : - listDoublet = list() - for j in range(0, len(tabAbscisses)) : - listDoublet.append((tabAbscisses[j], listListListSigAbscInst[i][j])) - - dictInstAbscSig[dictInstAbscSig.keys()[i]] = listDoublet - - def mergeDictTher(self) : - """ - Merge les resultats issus de la coupe du revetement avec ceux issus de la coupe de la structure - """ - # Merge des listes d'abscisses - # Le revetement est interieur la derniere abscisse du revetement doit etre egal a la premiere de la structure - if self.tabAbscisses_S[len(self.tabAbscisses_S)-1] != self.tabAbscisses[0] : - UTMESS('F', 'IMPR_OAR', 'LES COUPES DU REVETEMENT ET DE LA STRUCTURE DOIVENT PARTAGER UNE ABSCISSE COMMUNE') - - # On construit une table des abscisses tempopraire - tableAbscTemp = self.tabAbscisses_S - - # On recopie la table des abscisses en sautant le premier - debut = True - for val in self.tabAbscisses : - if debut : - debut = False - continue - tableAbscTemp.append(val) - - self.tabAbscisses = tableAbscTemp - - # On construit des listes de travail intermédiaires que l'on commence par remplir avec les tables "supplémentaires" - dictInstAbscSigBis = self.dictInstAbscSig_S - dictInstAbscTempBis = self.dictInstAbscTemp_S - - # On recopie les élément thermiques de la structure principale en sautant la première abscisse de la structure - for key in dictInstAbscTempBis.keys() : # Les dictionnaires partagent les memes instants - debut = True - for valTher in self.dictInstAbscTemp[key] : - if debut : - debut = False - continue - dictInstAbscTempBis[key].append(valTher) - - # On recopie les élément mécaniques de la structure principale en sautant la première abscisse de la structure - for key in dictInstAbscSigBis.keys() : # Les dictionnaires partagent les memes instants - debut = True - for valSig in self.dictInstAbscSig[key] : - if debut : - debut = False - continue - dictInstAbscSigBis[key].append(valSig) - - # On restitue ensuite la liste globale dans self.dictInstAbscSig - self.dictInstAbscSig = dictInstAbscSigBis - self.dictInstAbscTemp = dictInstAbscTempBis - - def compareListAbscTher(self) : - """ - Vérifie que la coupe du champ thermique et la coupe mécanique partagent les memes abscisses - """ - # 1. Récupération des abscisses associées aux températures - listAbsc = list() - lstDoublet = self.dictInstAbscTemp[self.dictInstAbscTemp.keys()[0]] - for val in lstDoublet : - listAbsc.append(val[0]) - - # 2. Comparaison des deux listes - for A1, A2 in zip(self.tabAbscisses, listAbsc) : - if A1 != A2 : return False - - return True - - def interpoleInstants(self) : - """ - Interpole les résultats thermique sur les instants des résultats mécaniques - """ - # 1. récupération des instants des deux tables - listInstTher = self.dictInstAbscTemp.keys() - listInstMeca = self.dictInstAbscSig.keys() - - # 2. calcul de la liste des bornes de la table thermique qui encadrent les résultats mécaniques - dictInstAbscTemp = dict() - listAbscTemp = list() - listBornes = list() - for inst in listInstMeca : - bornes = getBornes(listInstTher, inst) - # Si une des bornes n'est pas définie, on lance une exception - if not(bornes[0]) or not(bornes[1]) : raise interpolationError - - abscTempInf = self.dictInstAbscTemp[bornes[0]] # Liste de doublet (abscisse, temperature) pour la borne inférieure - abscTempSup = self.dictInstAbscTemp[bornes[1]] # Liste de doublet (abscisse, temperature) pour la borne supérieure - - listAbscTemp = list() # liste de couples abscisses/Température - for A1, A2 in zip(abscTempInf, abscTempSup) : # A1 et A2 sont des doublets abscisse/Temperature - temperature = interpoleLin( ((bornes[0], A1[1]), (bornes[1], A2[1])), inst) - listAbscTemp.append((A1[0], temperature)) # on aurait pu tout aussi bien prendre A2[0] (c est pareil ...) - - dictInstAbscTemp[inst] = listAbscTemp - - # remplacement de l'ancienne table par la nouvelle - self.dictInstAbscTemp = dictInstAbscTemp - - def buildTree(self) : - """ - Construction (en mémoire) de l'arborescence du document XML - """ - sigma_xml = ( 'S_RR', 'S_TT', 'S_ZZ', 'S_RT', 'S_TZ', 'S_ZR' ) - - # Création de l'arborescence "géométrie" - nodeGeomComp = self.nodeComp.append("GEOM_COMPO") - nodeGeomComp.append("REVETEMENT", valeur=self.revet) - if self.revet == 'OUI' : - nodeGeomComp.append("EP_REVET", valeur=self.epaisseur_R) - nodeLigneCoupe = nodeGeomComp.append("LIGNE_COUPE") - nodeLigneCoupe.append("EPAISSEUR_EF", valeur=self.epaisseur) - nodeLigneCoupe.append("DIAM_EXT_EF", valeur=self.diametre) - nodeLigneCoupe.append("ORI_ABSC", valeur=self.origine) - - if self.noResuMeca == False : - # Création des abscisses - for val in self.tabAbscisses : - nodeLigneCoupe.append("ABSCISSE", val) - - nodeLigneCoupe.append('PSI', self.angle_c) - - # Création des résultats mécaniques - nodeSigma_u = self.nodeComp.append("SIGMA_UNITE") - nodeSigma_u.append("NUM_MECA", valeur=self.num_char) - nodeSigma_u.append("NOM_MECA", valeur=self.type_char) - nodeSigma_meca = nodeSigma_u.append("SIGMA_MECA") - - for i in range(0, len(self.tabAbscisses)) : - for val in self.dictMeca.keys() : - nodeSigma_meca.append(val, valeur = self.dictMeca[val][i]) - - # Création de l'arborescence "résultat thermo_mécanique" - if self.noResuTher == False : - # Création des abscisses - listDoublet = self.dictInstAbscTemp[self.dictInstAbscTemp.keys()[0]] - for val in listDoublet : - nodeLigneCoupe.append("ABSCISSE", val[0]) - - nodeLigneCoupe.append('PSI', self.angle_c) - - # Création des résultats mécaniques - nodeSigma_ther_c = self.nodeComp.append("SIGMA_THER_C") - nodeSigma_ther_c.append("NUM_TRANSI_THER", valeur=self.num_tran) - - for inst in self.dictInstAbscTemp.keys() : # boucle sur les instants - nodeSigma_ther = nodeSigma_ther_c.append("SIGMA_THER") - nodeSigma_ther.append("INSTANT", valeur=inst) - - # boucle sur les abscisses - for doubletAbscSig, doubletAbscTemp in zip(self.dictInstAbscSig[inst], self.dictInstAbscTemp[inst]) : - nodeSigma_point = nodeSigma_ther.append("SIGMA_POINT") - for val, label in zip(doubletAbscSig[1], sigma_xml) : - nodeSigma_point.append(label, valeur = val) - - nodeSigma_point.append("TEMPERATURE", doubletAbscTemp[1]) - -class tuyauterie(OAR_element) : - """ - Classe permettant de traiter les tuyauteries - """ - def __init__(self, **args) : - self.nodeComp = XMLNode("TUYAUTERIE") - try : - self.para_resu_meca = args['RESU_MECA'] - self.num_char = self.para_resu_meca['NUM_CHAR'] - - #Gestion du maillage - self.maillage = self.para_resu_meca['MAILLAGE'] - mapy = MAIL_PY() - mapy.FromAster(self.maillage) - - self.ma = [val.rstrip() for val in mapy.correspondance_mailles] - self.no = [val.rstrip() for val in mapy.correspondance_noeuds] - - self.dictMailleNoeuds = dict() - for val in self.ma : - self.dictMailleNoeuds[val] = list() - - for i in range(0, len(mapy.co)) : - self.dictMailleNoeuds[self.ma[i]].append(self.no[mapy.co[i][0]]) - self.dictMailleNoeuds[self.ma[i]].append(self.no[mapy.co[i][1]]) - - self.dictNoeudValTorseur = dict() - self.buildTableTorseur() - - except : - UTMESS('F', 'IMPR_OAR', "ERREUR D'ACCES AUX DONNEES") - - # Construction de l arborescence - self.buildTree() - - - def buildTableTorseur(self) : - """ - Construit un dictionnaire associant un noeud à un torseur exprimé sous la forme d'une liste de valeurs - """ - table_temp = self.para_resu_meca['TABLE'].EXTR_TABLE() - - # Utilisation des méthodes de la classe table - dictTable = table_temp.values() - - # 1. Récupération de la liste des noeuds - NOEUDS = dictTable['NOEUD'] - for val in NOEUDS : - self.dictNoeudValTorseur[val.rstrip()] = list() # On crée juste les clés du dictionnaire - - N = dictTable['N'] - VY = dictTable['VY'] - VZ = dictTable['VZ'] - MT = dictTable['MT'] - MFY = dictTable['MFY'] - MFZ = dictTable['MFZ'] - - for no, n, vy, vz, mt, mfy, mfz in zip(NOEUDS, N, VY, VZ, MT, MFY, MFZ): - no = no.rstrip() - self.dictNoeudValTorseur[no].append(n) - self.dictNoeudValTorseur[no].append(vy) - self.dictNoeudValTorseur[no].append(vz) - self.dictNoeudValTorseur[no].append(mt) - self.dictNoeudValTorseur[no].append(mfy) - self.dictNoeudValTorseur[no].append(mfz) - - - def buildTree(self) : - """ - Construction (en mémoire) de l'arborescence du document XML - """ - torseur_XML = ( 'FX', 'FY', 'FZ', 'MX', 'MY', 'MZ' ) - - # Création de l'arborescence "torseur" - nodeTMG = self.nodeComp.append("TORSEUR_MECA-GRP") - nodeTM = nodeTMG.append("TORSEUR_MECA") - nodeTM.append("oar:CHAR-REF", self.num_char) - nodeMTG = nodeTM.append("MAILLE_TORSEUR-GRP") - nodeMT = nodeMTG.append("MAILLE_TORSEUR") - for MA in self.dictMailleNoeuds.keys() : # Boucle sur les mailles - nodeMT.append("oar:MAILLE-REF", MA) - for NO in self.dictMailleNoeuds[MA] : # 2 noeuds - nodeTorseur = nodeMT.append("oar:TORSEUR") - for val, cle in zip(self.dictNoeudValTorseur[NO], torseur_XML) : # 6 valeurs - nodeTorseur.append(cle, val) - - - -def impr_oar_ops(self, TYPE_CALC, **args) : - """ - Macro IMPR_OAR - Ecrit des fichiers au format XML selon la DTD OAR Fichier - - IMPR_OAR va etre utilise en deux fois d abord calcul mecanique, - ensuite calcul thermique ce qui implique qu il ne peut y avoir qu'une seule des deux options a la fois - """ - # La macro compte pour 1 dans la numérotation des commandes - self.set_icmd(1) - - obj = None - - if TYPE_CALC=='COMPOSANT' : - obj = composant(**args) - elif TYPE_CALC=='MEF' : - UTMESS('F', 'IMPR_OAR', 'FONCTION NON IMPLANTEE') - elif TYPE_CALC=='TUYAUTERIE' : - obj = tuyauterie(**args) - else : - UTMESS('F', 'IMPR_OAR', 'Mot clé facteur inconnu') - - # Ecriture dans le fichier - # Récupération de la LU du fichier de sortie - try : - unite = args['UNITE'] - except : - unite = 38 - - try : - ajout=args['AJOUT'] - except : - ajout='NON' - - name = 'fort.'+str(unite) - try : - if ajout=='NON' : # nouveau fichier - fileObj = open(name, 'wt') - else : # extension du fichier existant - fileObj = open(name, 'a+t') - except IOError : - UTMESS('F', 'IMPR_OAR', "Erreur à l'ouverture du fichier") - else : - obj.getNode().save(fileObj) - fileObj.close() diff --git a/Aster/Cata/cataSTA8/Macro/impr_table_ops.py b/Aster/Cata/cataSTA8/Macro/impr_table_ops.py deleted file mode 100644 index 86ed2de6..00000000 --- a/Aster/Cata/cataSTA8/Macro/impr_table_ops.py +++ /dev/null @@ -1,236 +0,0 @@ -#@ MODIF impr_table_ops Macro DATE 07/05/2008 AUTEUR MACOCCO K.MACOCCO -# -*- 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 sets import Set - - -# ------------------------------------------------------------------------------ -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 - from Utilitai.Sensibilite import NomCompose - ier=0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - DETRUIRE = self.get_cmd('DETRUIRE') - RECU_FONCTION = self.get_cmd('RECU_FONCTION') - - #---------------------------------------------- - # 0. Traitement des arguments, initialisations - # unité logique des fichiers réservés - ul_reserve=(8,) - UL = UniteAster() - - # 0.1. Fichier - nomfich=None - if args['UNITE'] and args['UNITE']<>6: - nomfich=UL.Nom(args['UNITE']) - if nomfich and os.path.exists(nomfich) and os.stat(nomfich).st_size<>0: - if FORMAT=='XMGRACE': - UTMESS('A',macro,'Le fichier '+nomfich+' existe déjà, on écrit ' \ - 'à la suite.') - - # 0.2. Création des dictionnaires des FILTRES - Filtre=[] - if args['FILTRE']: - for Fi in args['FILTRE']: - dF = Fi.cree_dict_valeurs(Fi.mc_liste) - for mc in dF.keys(): - if dF[mc]==None: del dF[mc] - Filtre.append(dF) - # format pour l'impression des filtres - form_filtre='\nFILTRE -> NOM_PARA: %-16s CRIT_COMP: %-4s VALE: %s' - - # 0.3. Création de la liste des tables (une seule sans SENSIBILITE) - form_sens='\n... SENSIBILITE AU PARAMETRE %s (SD COMP %s)' - ltab=[] - if args['SENSIBILITE']: - lps=args['SENSIBILITE'] - if not type(lps) in (list, tuple): - 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]) - - 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 (list, tuple): - nom_para=[nom_para,] - - # 0.4.2. Traiter le cas des UL réservées - if args['UNITE'] and args['UNITE'] in ul_reserve: - UL.Etat(args['UNITE'], etat='F') - - #---------------------------------------------- - # Boucle sur les tables - for tab, sdtab in ltab: - - # ----- 1. Infos de base - if INFO==2: - print 'IMPRESSION DE LA TABLE : %s' % sdtab.get_name() - - if args['TITRE']: - tab.titr=args['TITRE'] + '\n' + tab.titr - - # ----- 2. Filtres - for Fi in Filtre: - col = getattr(tab, Fi['NOM_PARA']) - # peu importe le type - opts=[Fi[k] for k in ('VALE','VALE_I','VALE_C','VALE_K') if Fi.has_key(k)] - kargs={} - for k in ('CRITERE','PRECISION'): - if Fi.has_key(k): - kargs[k]=Fi[k] - tab = tab & ( getattr(col, Fi['CRIT_COMP'])(*opts,**kargs) ) - # trace l'operation dans le titre - #if FORMAT in ('TABLEAU','ASTER'): - tab.titr+=form_filtre % (Fi['NOM_PARA'], Fi['CRIT_COMP'], \ - ' '.join([str(v) for v in opts])) - - # ----- 3. Tris - if args['TRI']: - # une seule occurence de TRI - T0=args['TRI'][0] - dT=T0.cree_dict_valeurs(T0.mc_liste) - tab.sort(CLES=dT['NOM_PARA'], ORDRE=dT['ORDRE']) - - # ----- 4. Impression - # vérification des paramètres - for p in nom_para: - if not p in tab.para: - UTMESS('A', 'IMPR_TABLE', 'Paramètre absent de la table : %s' % p) - - # sélection des paramètres et suppression des colonnes vides - timp = tab[nom_para] - timp = timp.SansColonneVide() - - # passage des mots-clés de mise en forme à la méthode Impr - kargs=args.copy() - kargs.update({ - 'FORMAT' : FORMAT, - 'FICHIER' : nomfich, - 'dform' : {}, - }) - # pour l'impression des fonctions - kfonc={ - 'FORMAT' : FORMAT, - 'FICHIER' : nomfich, - } - - # 4.1. au format AGRAF - if FORMAT=='AGRAF': - kargs['dform']={ 'formR' : '%12.5E' } - kfonc['FORMAT']='TABLEAU' - - # 4.2. au format XMGRACE et dérivés - elif FORMAT=='XMGRACE': - kargs['dform']={ 'formR' : '%.8g' } - kargs['PILOTE']=args['PILOTE'] - kfonc['PILOTE']=args['PILOTE'] - - # 4.3. format spécifié dans les arguments - if args['FORMAT_R']: - kargs['dform'].update({ 'formR' : fmtF2PY(args['FORMAT_R']) }) - - # 4.4. regroupement par paramètre : PAGINATION - if args['PAGINATION']: - l_ppag=args['PAGINATION'] - if not type(l_ppag) in (list, tuple): - 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'] == 'OUI': - # cherche parmi les cellules celles qui contiennent un nom de fonction - dfon=[] - for row in timp['FONCTION', 'FONCTION_C']: - for par,cell in row.items(): - if type(cell) in (str, unicode): - if aster.getvectjev(cell.strip().ljust(19)+'.PROL')<>None: - dfon.append(['%-19s' % cell, par]) - # impression des fonctions trouvées - for f,par in dfon: - __fonc=RECU_FONCTION( - TABLE=sdtab, - FILTRE=_F( - NOM_PARA=par, - VALE_K=f, - ), - NOM_PARA_TABL=par, - TITRE = 'Fonction %s' % f, - ) - __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/cataSTA8/Macro/info_fonction_ops.py b/Aster/Cata/cataSTA8/Macro/info_fonction_ops.py deleted file mode 100644 index 0fe9c89e..00000000 --- a/Aster/Cata/cataSTA8/Macro/info_fonction_ops.py +++ /dev/null @@ -1,307 +0,0 @@ -#@ MODIF info_fonction_ops Macro DATE 24/10/2006 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def info_fonction_ops(self,RMS,NOCI_SEISME,MAX,NORME,ECART_TYPE,INFO,**args): - """ - Ecriture de la macro INFO_FONCTION - """ - ier=0 - import string - from Utilitai.t_fonction import t_fonction,t_fonction_c,t_nappe - import math - from Accas import _F - from Utilitai.Utmess import UTMESS - import types - from types import ListType, TupleType - EnumTypes = (ListType, TupleType) - - ### On importe les definitions des commandes a utiliser dans la macro - CREA_TABLE = self.get_cmd('CREA_TABLE') - CALC_TABLE = self.get_cmd('CALC_TABLE') - IMPR_TABLE = self.get_cmd('IMPR_TABLE') - CALC_FONCTION = self.get_cmd('CALC_FONCTION') - - ### Comptage commandes + déclaration concept sortant - self.set_icmd(1) - self.DeclareOut('C_out',self.sd) - - ### type de traitement - - ### - if (MAX != None): - if type(MAX['FONCTION']) not in EnumTypes : l_fonc=[MAX['FONCTION'],] - else : l_fonc=MAX['FONCTION'] - __tmfonc=[None]*3 - k=0 - mfact=[] - ltyfo=[] - lpara=[] - lresu=[] - lfnom=[] - for fonc in l_fonc : - __ff=fonc.convert() - __ex=__ff.extreme() - ltyfo.append(__ff.__class__) - lpara.append(__ff.para['NOM_PARA']) - lresu.append(__ff.para['NOM_RESU']) - lfnom.append(fonc.nom) - n_mini=len(__ex['min']) - n_maxi=len(__ex['max']) - listeMCF=[_F(LISTE_K=[fonc.nom]*(n_mini+n_maxi),PARA='FONCTION'), - _F(LISTE_K=['MINI',]*n_mini+['MAXI',]*n_maxi,PARA='TYPE'),] - n_resu=__ff.para['NOM_RESU'] - if isinstance(__ff,t_nappe) : - listeMCF=listeMCF+[\ - _F(LISTE_R=[i[0] for i in __ex['min']]+[i[0] for i in __ex['max']],PARA=__ff.para['NOM_PARA']),\ - _F(LISTE_R=[i[1] for i in __ex['min']]+[i[1] for i in __ex['max']],PARA=__ff.para['NOM_PARA_FONC']),\ - _F(LISTE_R=[i[2] for i in __ex['min']]+[i[2] for i in __ex['max']],PARA=__ff.para['NOM_RESU'])] - else : - listeMCF=listeMCF+[\ - _F(LISTE_R=[i[0] for i in __ex['min']]+[i[0] for i in __ex['max']],PARA=__ff.para['NOM_PARA']),\ - _F(LISTE_R=[i[1] for i in __ex['min']]+[i[1] for i in __ex['max']],PARA=__ff.para['NOM_RESU'])] - __tmfonc[k]=CREA_TABLE(LISTE=listeMCF) - if k!=0 : - mfact.append(_F(OPERATION = 'COMB',TABLE=__tmfonc[k])) - k=k+1 - ltyfo=dict([(i,0) for i in ltyfo]).keys() - lpara=dict([(i,0) for i in lpara]).keys() - lresu=dict([(i,0) for i in lresu]).keys() - if len(ltyfo)>1 : - UTMESS('F','INFO_FONCTION',''' calcul du MAX, la liste de fonctions\ - n'est pas homogène en type (fonctions et nappes) ''') - if len(lpara)>1 : - UTMESS('F','INFO_FONCTION',''' calcul du MAX, la liste de fonctions\ - n'est pas homogène en label NOM_PARA :'''+' '.join(lpara)) - if len(lresu)>1 : - UTMESS('F','INFO_FONCTION',''' calcul du MAX, la liste de fonctions\ - n'est pas homogène en label NOM_RESU : '''+' '.join(lresu)) - __tab=CALC_TABLE(TABLE = __tmfonc[0], - ACTION = mfact ) - __min=CALC_TABLE(TABLE = __tab, - ACTION = _F(OPERATION = 'FILTRE', - CRIT_COMP = 'MINI', - NOM_PARA = lresu[0] ), ) - __max=CALC_TABLE(TABLE = __tab, - ACTION = _F(OPERATION = 'FILTRE', - CRIT_COMP = 'MAXI', - NOM_PARA = lresu[0] ), ) - print __min.EXTR_TABLE() - print __max.EXTR_TABLE() - C_out=CALC_TABLE(TABLE = __min, - TITRE = 'Calcul des extrema sur fonction '+' '.join(lfnom), - ACTION = _F(OPERATION = 'COMB', - TABLE=__max ), ) - print C_out.EXTR_TABLE() - - ### - if (ECART_TYPE != None): - __ff=ECART_TYPE['FONCTION'].convert() - if ECART_TYPE['INST_INIT']!=None : tini=ECART_TYPE['INST_INIT'] - else : tini=__ff.vale_x[0] - if ECART_TYPE['INST_FIN' ]!=None : tfin=ECART_TYPE['INST_FIN' ] - else : tfin=__ff.vale_x[-1] - __ff=__ff.cut(tini,__ff.vale_x[-1],ECART_TYPE['PRECISION'],ECART_TYPE['CRITERE']) - __ff=__ff.cut(__ff.vale_x[0],tfin,ECART_TYPE['PRECISION'],ECART_TYPE['CRITERE']) - if ECART_TYPE['METHODE' ]=='SIMPSON' : __ex=__ff.simpson(0.) - if ECART_TYPE['METHODE' ]=='TRAPEZE' : __ex=__ff.trapeze(0.) - fmoy=__ex.vale_y[-1]/(__ff.vale_x[-1]-__ff.vale_x[0]) - __ff=__ff+(-1*fmoy) - __ff=__ff*__ff - if ECART_TYPE['METHODE' ]=='SIMPSON' : __ez=__ff.simpson(0.) - if ECART_TYPE['METHODE' ]=='TRAPEZE' : __ez=__ff.trapeze(0.) - sigma=math.sqrt(__ez.vale_y[-1]/(__ff.vale_x[-1]-__ff.vale_x[0])) - C_out=CREA_TABLE(LISTE=(_F(LISTE_K=ECART_TYPE['FONCTION'].nom,PARA='FONCTION'), - _F(LISTE_K=ECART_TYPE['METHODE'] ,PARA='METHODE'), - _F(LISTE_R=fmoy ,PARA='MOYENNE'), - _F(LISTE_R=sigma ,PARA='ECART_TYPE'), - _F(LISTE_R=tini ,PARA='INST_INIT'), - _F(LISTE_R=tfin ,PARA='INST_FIN'),) - ) - - ### - if (RMS != None): - RMS =list(RMS) - sigm =[] - tmpi =[] - tmpf =[] - nomf =[] - meth =[] - for i_rms in RMS : - __ff=i_rms['FONCTION'].convert() - if i_rms['INST_INIT']!=None : tini=i_rms['INST_INIT'] - else : tini=__ff.vale_x[0] - if i_rms['INST_FIN' ]!=None : tfin=i_rms['INST_FIN' ] - else : tfin=__ff.vale_x[-1] - __ff=__ff.cut(tini,__ff.vale_x[-1],i_rms['PRECISION'],i_rms['CRITERE']) - __ff=__ff.cut(__ff.vale_x[0],tfin,i_rms['PRECISION'],i_rms['CRITERE']) - __ff=__ff*__ff - if i_rms['METHODE' ]=='SIMPSON' : __ez=__ff.simpson(0.) - if i_rms['METHODE' ]=='TRAPEZE' : - __ez=__ff.trapeze(0.) - sigm.append(math.sqrt(__ez.vale_y[-1]/(__ff.vale_x[-1]-__ff.vale_x[0]))) - tmpi.append(tini) - tmpf.append(tfin) - nomf.append(i_rms['FONCTION'].nom) - meth.append(i_rms['METHODE']) - C_out=CREA_TABLE(LISTE=(_F(LISTE_K=nomf ,PARA='FONCTION'), - _F(LISTE_K=meth ,PARA='METHODE'), - _F(LISTE_R=tmpi ,PARA='INST_INIT'), - _F(LISTE_R=tmpf ,PARA='INST_FIN'), - _F(LISTE_R=sigm ,PARA='RMS'), ) - ) - - ### - if (NORME != None): - __ff=NORME['FONCTION'].convert() - norme=[] - for __fi in __ff.l_fonc : - norme.append(__fi.normel2()) - nom=[NORME['FONCTION'].nom,]*len(norme) - C_out=CREA_TABLE(LISTE=(_F(LISTE_R=norme ,PARA='NORME'), - _F(LISTE_K=nom ,PARA='FONCTION'), ) - ) - - ### - if (NOCI_SEISME != None): - l_table=[] - if NOCI_SEISME['SPEC_OSCI'] !=None : - ### cas intensité spectrale d'une nappe de SRO - ### la seule option licite est INTE_SPEC - UTMESS('I','INFO_FONCTION',''' : intensite spectrale, avant de calculer l'\ -intensite spectrale, il est prudent de verifier la norme de la nappe sur laquelle \ -porte le calcul, ceci peut etre une source d erreurs.''') - amor=NOCI_SEISME['AMOR_REDUIT'] - fini=NOCI_SEISME['FREQ_INIT' ] - ffin=NOCI_SEISME['FREQ_FIN' ] - __sp =NOCI_SEISME['SPEC_OSCI'].convert() - vale_x=__sp.l_fonc[0].vale_x - vale_y=[__sp(amor,f) for f in vale_x] - para =__sp.l_fonc[0].para - __srov=t_fonction(vale_x,vale_y,para) - if NOCI_SEISME['NATURE']=='DEPL' : - __srov.vale_y=(__srov.vale_y/__srov.vale_x)*2.*math.pi - elif NOCI_SEISME['NATURE']=='VITE' : - __srov.vale_y=__srov.vale_y/__srov.vale_x/__srov.vale_x - elif NOCI_SEISME['NATURE']=='ACCE' : - __srov.vale_y=__srov.vale_y/__srov.vale_x/__srov.vale_x - __srov.vale_y=__srov.vale_y/__srov.vale_x/2./math.pi - __srov=__srov.cut(fini,ffin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) - insp=__srov.trapeze(0.).vale_y[-1] - l_table.append(_F(LISTE_R=fini ,PARA='FREQ_INIT' )) - l_table.append(_F(LISTE_R=ffin ,PARA='FREQ_FIN' )) - l_table.append(_F(LISTE_R=amor ,PARA='AMOR_REDUIT')) - l_table.append(_F(LISTE_R=insp ,PARA='INTE_SPECT' )) - if NOCI_SEISME['FONCTION'] !=None : - ### cas fonction - l_table.append(_F(LISTE_K=NOCI_SEISME['FONCTION'].nom,PARA='FONCTION')) - __ac=NOCI_SEISME['FONCTION'].convert() - option= NOCI_SEISME['OPTION'] - if NOCI_SEISME['INST_INIT']!=None : tdeb=NOCI_SEISME['INST_INIT'] - else : tdeb=__ac.vale_x[0] - if NOCI_SEISME['INST_FIN' ]!=None : tfin=NOCI_SEISME['INST_FIN' ] - else : tfin=__ac.vale_x[-1] - # calcul de la vitesse : - __vi=__ac.trapeze(NOCI_SEISME['COEF']) - # calcul du déplacement : - __de=__vi.trapeze(NOCI_SEISME['COEF']) - # calcul de |acceleration| : - __aa=__ac.abs() - # calcul de integrale(|acceleration|) : - ### on "coupe" la fonction entre tdeb et tfin - __ac=__ac.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) - __vi=__vi.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) - __de=__de.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) - __aa=__aa.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) - if NOCI_SEISME['FREQ' ]!=None : l_freq=NOCI_SEISME['FREQ'] - elif NOCI_SEISME['LIST_FREQ']!=None : l_freq=NOCI_SEISME['LIST_FREQ'].Valeurs() - else : - # fréquences par défaut - l_freq=[] - for i in range(56) : l_freq.append( 0.2+0.050*i) - for i in range( 8) : l_freq.append( 3.0+0.075*i) - for i in range(14) : l_freq.append( 3.6+0.100*i) - for i in range(24) : l_freq.append( 5.0+0.125*i) - for i in range(28) : l_freq.append( 8.0+0.250*i) - for i in range( 6) : l_freq.append(15.0+0.500*i) - for i in range( 4) : l_freq.append(18.0+1.000*i) - for i in range(10) : l_freq.append(22.0+1.500*i) - if option in('TOUT','MAXI','ACCE_SUR_VITE') : - # calcul du max des valeurs absolues - maxa_ac=__ac.abs().extreme()['max'][0][1] - maxa_vi=__vi.abs().extreme()['max'][0][1] - maxa_de=__de.abs().extreme()['max'][0][1] - l_table.append(_F(LISTE_R=maxa_ac,PARA='ACCE_MAX')) - l_table.append(_F(LISTE_R=maxa_vi,PARA='VITE_MAX')) - l_table.append(_F(LISTE_R=maxa_de,PARA='DEPL_MAX')) - l_table.append(_F(LISTE_R=maxa_ac/maxa_vi,PARA='ACCE_SUR_VITE')) - if option in('TOUT','INTE_ARIAS') : - __a2=__ac*__ac - inte_arias=__a2.trapeze(0.).vale_y[-1] - inte_arias=inte_arias*math.pi/NOCI_SEISME['PESANTEUR']/2. - l_table.append(_F(LISTE_R=inte_arias,PARA='INTE_ARIAS')) - if option in('TOUT','POUV_DEST') : - __v2=__vi*__vi - pouv_dest=__v2.trapeze(0.).vale_y[-1] - pouv_dest=pouv_dest*(math.pi)**3/NOCI_SEISME['PESANTEUR']/2. - l_table.append(_F(LISTE_R=pouv_dest,PARA='POUV_DEST')) - if option in('TOUT','VITE_ABSO_CUMU') : - __vc=__aa.trapeze(0.) - vite_abso=__vc.vale_y[-1] - l_table.append(_F(LISTE_R=vite_abso,PARA='VITE_ABSO_CUMU')) - if option in('TOUT','INTE_SPEC') : - amor=NOCI_SEISME['AMOR_REDUIT'] - fini=NOCI_SEISME['FREQ_INIT' ] - ffin=NOCI_SEISME['FREQ_FIN' ] - __so= CALC_FONCTION(SPEC_OSCI=_F( - NATURE ='VITE', - NATURE_FONC='ACCE', - FONCTION =NOCI_SEISME['FONCTION'], - METHODE ='NIGAM', - NORME =NOCI_SEISME['NORME'], - FREQ =l_freq, - AMOR_REDUIT=(amor,) - ), ) - __srov=__so.convert().l_fonc[0] - __srov=__srov.cut(fini,ffin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE']) - __srov.vale_y=__srov.vale_y/__srov.vale_x/__srov.vale_x - insp=__srov.trapeze(0.).vale_y[-1] - l_table.append(_F(LISTE_R=fini ,PARA='FREQ_INIT' )) - l_table.append(_F(LISTE_R=ffin ,PARA='FREQ_FIN' )) - l_table.append(_F(LISTE_R=amor ,PARA='AMOR_REDUIT')) - l_table.append(_F(LISTE_R=insp ,PARA='INTE_SPECT' )) - if option in('TOUT','DUREE_PHAS_FORT') : - __a2=__ac*__ac - __i2=__a2.trapeze(0.) - arias = __i2.vale_y[-1]*math.pi/NOCI_SEISME['PESANTEUR']/2. - valinf = arias * NOCI_SEISME['BORNE_INF'] - valsup = arias * NOCI_SEISME['BORNE_SUP'] - for i in range(len(__i2.vale_x)) : - ariask = __i2.vale_y[i]*math.pi/NOCI_SEISME['PESANTEUR']/2. - if ariask>=valinf : break - for j in range(len(__i2.vale_x)-1,-1,-1) : - ariask = __i2.vale_y[j]*math.pi/NOCI_SEISME['PESANTEUR']/2. - if ariask<=valsup : break - dphfor = __i2.vale_x[j] - __i2.vale_x[i] - l_table.append(_F(LISTE_R=dphfor,PARA='DUREE_PHAS_FORT')) - C_out=CREA_TABLE(LISTE=l_table) - - if INFO > 1: - IMPR_TABLE(UNITE=6, - TABLE=C_out) - return ier diff --git a/Aster/Cata/cataSTA8/Macro/lire_fonction_ops.py b/Aster/Cata/cataSTA8/Macro/lire_fonction_ops.py deleted file mode 100644 index 748774ea..00000000 --- a/Aster/Cata/cataSTA8/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/cataSTA8/Macro/lire_inte_spec_ops.py b/Aster/Cata/cataSTA8/Macro/lire_inte_spec_ops.py deleted file mode 100644 index e4f1188d..00000000 --- a/Aster/Cata/cataSTA8/Macro/lire_inte_spec_ops.py +++ /dev/null @@ -1,117 +0,0 @@ -#@ MODIF lire_inte_spec_ops Macro DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def lire_inte_spec_ops(self,UNITE,FORMAT,NOM_PARA,NOM_RESU,INTERPOL, - PROL_DROITE,PROL_GAUCHE,TITRE,INFO,**args): - ier=0 - - from Accas import _F - import os - from math import cos,sin - from Utilitai.Utmess import UTMESS - from Utilitai.UniteAster import UniteAster - # On importe les definitions des commandes a utiliser dans la macro - DEFI_FONCTION =self.get_cmd('DEFI_FONCTION') - CREA_TABLE =self.get_cmd('CREA_TABLE') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - nompro='LIRE_INTE_SPEC' - - # Lecture de la fonction dans un fichier d unité logique UNITE - UL = UniteAster() - nomfich=UL.Nom(UNITE) - if not os.path.isfile(nomfich): - UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich) - file=open(nomfich,'r') - texte=file.read() - file.close() - - list_fonc=texte.split('FONCTION_C') - entete=list_fonc.pop(0) - try : - entete=entete[entete.index('DIM'):] - dim=int(entete[entete.index('=')+1:entete.index('\n')]) - except ValueError : - UTMESS('F', nompro, "la dimension DIM n est pas précisée dans le fichier lu") - - if len(list_fonc)!=(dim*(dim+1)/2): - UTMESS('F', nompro, "nombre de fonctions incorrect") - - nume_i=[] - nume_j=[] - l_fonc=[] - for i in range(dim*(dim+1)/2): - numi=list_fonc[i][list_fonc[i].index('I =')+3:] - numi=numi[:numi.index('\n')] - nume_i.append(int(numi)) - numj=list_fonc[i][list_fonc[i].index('J =')+3:] - numj=numj[:numj.index('\n')] - nume_j.append(int(numj)) - try : - vale_fonc=list_fonc[i][list_fonc[i].index('VALEUR =\n')+9:list_fonc[i].index('FINSF\n')] - vale_fonc=vale_fonc.replace('\n',' ') - vale_fonc=map(float,vale_fonc.split()) - except ValueError : - UTMESS('F', nompro, "erreur dans les données de fonctions") - - liste=[] - if FORMAT=='REEL_IMAG': - liste=vale_fonc - elif FORMAT=='MODULE_PHASE': - for i in range(len(vale_fonc)/3) : - module=vale_fonc[3*i+1] - phase =vale_fonc[3*i+2] - liste=liste+[vale_fonc[3*i],module*cos(phase),module*sin(phase)] - - # création de la fonction ASTER : - _fonc=DEFI_FONCTION( NOM_PARA =NOM_PARA, - NOM_RESU =NOM_RESU, - PROL_DROITE=PROL_DROITE, - PROL_GAUCHE=PROL_GAUCHE, - INTERPOL =INTERPOL, - INFO =INFO, - TITRE =TITRE, - VALE_C =liste,) - l_fonc.append(_fonc.nom) - - nume_ib=[] - nume_jb=[] - for i in range(dim): - for j in range(i,dim): - nume_ib.append(i+1) - nume_jb.append(j+1) - if nume_i!=nume_ib or nume_j!=nume_jb : - UTMESS('F', nompro, "erreur dans les indices") - mcfact=[] - mcfact.append(_F(PARA='NOM_CHAM' ,LISTE_K=(NOM_RESU),NUME_LIGN=(1,))) - mcfact.append(_F(PARA='OPTION' ,LISTE_K=('TOUT',) ,NUME_LIGN=(1,))) - mcfact.append(_F(PARA='DIMENSION' ,LISTE_I=(dim,) ,NUME_LIGN=(1,))) - mcfact.append(_F(PARA='NUME_ORDRE_I',LISTE_I=nume_i ,NUME_LIGN=range(2,len(nume_i)+2))) - mcfact.append(_F(PARA='NUME_ORDRE_J',LISTE_I=nume_j ,NUME_LIGN=range(2,len(nume_j)+2))) - mcfact.append(_F(PARA='FONCTION_C' ,LISTE_K=l_fonc ,NUME_LIGN=range(2,len(list_fonc)+2))) - self.DeclareOut('tab_inte',self.sd) - tab_inte=CREA_TABLE(LISTE=mcfact, - TITRE=TITRE, - TYPE_TABLE='TABLE_FONCTION') - - # remet UNITE dans son état initial - UL.EtatInit() - return ier diff --git a/Aster/Cata/cataSTA8/Macro/lire_table_ops.py b/Aster/Cata/cataSTA8/Macro/lire_table_ops.py deleted file mode 100644 index af24a012..00000000 --- a/Aster/Cata/cataSTA8/Macro/lire_table_ops.py +++ /dev/null @@ -1,152 +0,0 @@ -#@ MODIF lire_table_ops Macro DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import os -import re - -# ------------------------------------------------------------------------------ -def msplit(chaine, separ): - """Equivalent de chaine.split(separ) en acceptant une ou plusieurs - occurrences du séparateur. - """ - return re.split('%s+' % re.escape(separ), chaine.strip(separ)) - -# ------------------------------------------------------------------------------ -def lecture_table(texte, nume, separ): - """Méthode de construction de l'objet Table à partir d'un texte d'une table - au format ASTER. - """ - from Utilitai.transpose import transpose - from Utilitai.Table import Table - - tab_lue = {} - nume_lign = [] - idt_deb = '#DEBUT_TABLE\n' - idt_fin = '#FIN_TABLE\n' - idt_tit = '#TITRE' - id_vide = '-' - - # expression régulière pour découper les N tables du fichier - exp = re.compile(re.escape(idt_deb) + '(.*?)' + re.escape(idt_fin), - re.MULTILINE | re.DOTALL) - l_txt = exp.findall(texte) - nbbloc = len(l_txt) - if nume > nbbloc: - message = """NUME_TABLE=%d incorrect : il n'y a que %d blocs de tables""" \ - """ dans le fichier""" % (nume, nbbloc) - return 1, message, None - txttab = l_txt[nume - 1] - - # expression régulière pour extraire le titre - exp = re.compile(re.escape(idt_tit) + '(.*)$', re.MULTILINE) - titre_tab = os.linesep.join([s.strip(separ) for s in exp.findall(txttab)]) - - # restent dans la table les lignes non vides qui ne sont pas des titres - txttab = [line for line in txttab.splitlines() \ - if line.strip(separ) != '' and not line.startswith(idt_tit)] - - # ligne des paramètres et des types - list_para = msplit(txttab.pop(0), separ) - list_type = msplit(txttab.pop(0), separ) - nb_para = len(list_type) - - # format de lecture - fmt = { - 'I' : '([0-9\-\+]+)', - 'R' : '([0-9\.,\-\+eEdD]+)', - 'K' : '(.{%(len)s})' - } - lfmt = ('%s+' % re.escape(separ)).join( - [fmt[typ[0]] % { 'len' : typ[1:] } for typ in list_type] - ) - - # construction des lignes de la Table - l_rows = [] - for i, line in enumerate(txttab): - mat = re.search(lfmt, line) - if mat is None or nb_para != len(mat.groups()): - message = """Nombre de champs incorrect ligne %d. -Il y a %d paramètres""" % (i + 1, nb_para) - if hasattr(mat, 'groups'): - message += """, on a lu %d champs.""" % len(mat.groups()) - return 1, message, None - dico = {} - for para, typ, ch in zip(list_para, list_type, mat.groups()): - ch = ch.strip() - if ch != id_vide: - if typ == 'I': - val = int(ch) - elif typ == 'R': - val = float(ch) - else: - val = ch - dico[para] = val - l_rows.append(dico) - - tab = Table(l_rows, list_para, list_type, titre_tab) - return 0, '', tab - - -# ------------------------------------------------------------------------------ -def lire_table_ops(self, **args): - """Méthode corps de la macro LIRE_TABLE - """ - from Utilitai.Utmess import UTMESS - from Utilitai.UniteAster import UniteAster - - ier = 0 - nompro = 'LIRE_TABLE' - ### On importe les definitions des commandes a utiliser dans la macro - CREA_TABLE = self.get_cmd('CREA_TABLE') - UNITE = self['UNITE'] - FORMAT = self['FORMAT'] - NUME_TABLE = self['NUME_TABLE'] - SEPARATEUR = self['SEPARATEUR'] - PARA = self['PARA'] - TITRE = self['TITRE'] - - ### La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - ### Lecture de la table dans un fichier d unité logique UNITE - UL = UniteAster() - nomfich=UL.Nom(UNITE) - if not os.path.isfile(nomfich): - UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich) - - texte = open(nomfich,'r').read() - # remet UNITE dans son état initial - UL.EtatInit() - - ### mise en forme de la liste de valeurs suivant le format choisi : - # pour le moment uniquement ASTER - if FORMAT=='ASTER': - ier, message, tab_lue = lecture_table(texte, NUME_TABLE, SEPARATEUR) - if ier != 0 : - UTMESS('F', nompro, message) - else: - pass - - ### création de la table ASTER : - self.DeclareOut('ut_tab', self.sd) - motscles = tab_lue.dict_CREA_TABLE() - ut_tab=CREA_TABLE(**motscles) - - return ier diff --git a/Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py b/Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py deleted file mode 100644 index feb09b5e..00000000 --- a/Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py +++ /dev/null @@ -1,848 +0,0 @@ -#@ MODIF macr_adap_mail_ops Macro DATE 04/04/2007 AUTEUR VIVAN 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 -# -""" -Traitement des macros MACR_ADAP_MAIL/MACR_INFO_MAIL -""" -__revision__ = "V1.1" -# -def macr_adap_mail_ops ( self, - INFO, VERSION_HOMARD, MAILLAGE_FRONTIERE, - **args): - """ - Traitement des macros MACR_ADAP_MAIL/MACR_INFO_MAIL - """ -# -# 1. args est le dictionnaire des arguments -# args.keys() est la liste des mots-clés -# args.keys()[0] est la premiere valeur de cette liste -# args.keys()[1:] est la liste des valeurs suivantes dans cette liste -# args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante. -# -### print args -### print args.keys() -### if len (args.keys())>0 : print args.keys()[0] -### print args["MAILLAGE"] -# -# 2. Les caractéristiques d'un passage sont conservées dans un dictionnaire. Il y a autant de -# dictionnaires que de sollicitations pour une série d'adaptation. L'ensemble de ces dictionnaires -# est conservé dans la liste Liste_Passages. Cette liste est nécessairement globale pour pouvoir -# la retrouver à chaque nouveau passage. -# Description du dictionnaire de passages : -# dico["Maillage_0"] = o ; string ; nom du concept du maillage initial de la série d'adaptation -# dico["Maillage_NP1"] = o ; string ; nom du concept du dernier maillage adapté -# dico["Rep_Calc_HOMARD_global"] = o ; string ; Nom global du répertoire de calcul pour HOMARD -# dico["Rep_Calc_HOMARD_local"] = o ; string ; Nom local du répertoire de calcul pour HOMARD -# depuis le répertoire de calcul pour ASTER -# dico["niter"] = o ; entier ; numéro d'itération -# -# 3. Les caractéristiques d'un maillage sont conservées dans un dictionnaire. Il y a autant de -# dictionnaires que de maillages manipulés. L'ensemble de ces dictionnaires est conservé -# dans la liste liste_maillages. -# Description du dictionnaire de maillages : -# dico["Type_Maillage"] = o ; string ; "MAILLAGE_N", "MAILLAGE_NP1", "MAILLAGE_NP1_ANNEXE" ou "MAILLAGE_FRONTIERE" -# dico["Nom_ASTER"] = o ; concept ASTER associé -# dico["Action"] = o ; string ; "A_ecrire" ou "A_lire" -# dico["NOM_MED"] = o ; string ; Nom MED du maillage -# -# 4. Les caractéristiques d'un champ sont conservées dans un dictionnaire. Il y a autant de -# dictionnaires que de champs manipulés. L'ensemble de ces dictionnaires est conservé -# dans la liste liste_champs. -# Description du dictionnaire de champs : -# dico["Type_Champ"] = o ; string ; "INDICATEUR" ou "CHAMP_MAJ" -# dico["RESULTAT"] = f ; concept ASTER du résutat associé -# dico["NOM_CHAM"] = f ; string ; Nom ASTER du champ -# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associée -# dico["COMPOSANTE"] = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur) -# dico["NUME_ORDRE"] = f ; entier ; Numéro d'ordre du champ -# dico["INST"] = f ; entier ; Instant du champ -# dico["PRECISION"] = f ; entier ; Précision sur l'instant du champ -# dico["CRITERE"] = f ; entier ; Critère de précision sur l'instant du champ -# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpolé sur le nouveau maillage -# dico["NOM_MED"] = o ; string ; Nom MED du champ -# dico["SENSIBILITE"] = f ; string ; Nom du paramètre sensible associé -# - from Accas import _F - from Macro import creation_donnees_homard - from Utilitai.Utmess import UTMESS - import aster - import string - import os - import shutil -# - global Liste_Passages -# -#==================================================================== -# 1. Préalables -#==================================================================== -# -# 1.1. ==> La macro compte pour 1 dans la numerotation des commandes -# - self.set_icmd(1) -# -# 1.2. ==> Numéro du passage dans cette macro -# - try : - self.jdc.indice_macro_homard = self.jdc.indice_macro_homard + 1 - except : - self.jdc.indice_macro_homard = 1 - Liste_Passages = [] - numero_passage_fonction = self.jdc.indice_macro_homard -### print "numero_passage_fonction = ",numero_passage_fonction -# -# 1.3. ==> On importe les definitions des commandes a utiliser dans la macro -# - DEFI_FICHIER = self.get_cmd("DEFI_FICHIER") - IMPR_RESU = self.get_cmd("IMPR_RESU") - EXEC_LOGICIEL = self.get_cmd("EXEC_LOGICIEL") - LIRE_MAILLAGE = self.get_cmd("LIRE_MAILLAGE") - LIRE_CHAMP = self.get_cmd("LIRE_CHAMP") -# -# 1.4. ==> Le nom du programme HOMARD à lancer -# - repertoire_outils = aster.repout() - homard = repertoire_outils + "homard" -# -# 1.5. ==> Initialisations -# - codret_partiel = [0] - Rep_Calc_ASTER = os.getcwd() -# - liste_maillages = [] - liste_champs = [] - liste_zones = [] - dico_indi = {} -# - LISTE_ADAPTATION_LIBRE = ("RAFF_DERA" , "RAFFINEMENT" , "DERAFFINEMENT") -# -#==================================================================== -# 2. Décodage des arguments de la macro-commande -#==================================================================== -# 2.1. ==> Données de pilotage de l'adaptation -# - if ( self.nom == "MACR_ADAP_MAIL" ) : -# - mode_homard = "ADAP" -# -# 2.1.1. ==> Les concepts "maillage" -# -#gn print "\n.. Debut de 2.1.1" -# for mot_cle in ["MAILLAGE_N" , "MAILLAGE_NP1"] : - for mot_cle in ["MAILLAGE_N" , "MAILLAGE_NP1" , "MAILLAGE_NP1_ANNEXE"] : -#gn print "\nmot_cle = ",mot_cle - dico = {} - dico["Type_Maillage"] = mot_cle - if ( args[mot_cle] != None ) : -#gn print "==> args[",mot_cle,"] = ",args[mot_cle] - dico["Nom_ASTER"] = args[mot_cle] - if ( mot_cle == "MAILLAGE_N" ) : - dico["Action"] = "A_ecrire" - else : - dico["Action"] = "A_lire" - else : - dico["Action"] = "Rien" -#gn print "dico = ",dico - liste_maillages.append(dico) -# -# 2.1.2. ==> L'éventuel indicateur d'erreur -# -#gn print "\n.. Debut de 2.1.2" -#gn print "args = ", args - if args["ADAPTATION"] in LISTE_ADAPTATION_LIBRE : - dico = {} - dico["Type_Champ"] = "INDICATEUR" - if ( args["RESULTAT_N"] != None ) : - lresu = 1 - dico["RESULTAT"] = args["RESULTAT_N"] - noresu = dico["RESULTAT"].nom - dico["NOM_CHAM"] = args["INDICATEUR"] - nomsym = dico["NOM_CHAM"] - if ( args["NUME_ORDRE"] != None ) : - dico["NUME_ORDRE"] = args["NUME_ORDRE"] - if ( args["INST"] != None ) : - dico["INST"] = args["INST"] - for cle in [ "PRECISION", "CRITERE" ] : - if ( args[cle] != None ) : - dico[cle] = args[cle] - if ( args["SENSIBILITE"] != None ) : - dico["SENSIBILITE"] = args["SENSIBILITE"] - else : - lresu = 0 - dico["CHAM_GD"] = args["CHAM_GD"] - noresu = dico["CHAM_GD"].nom - nomsym = " " -#gn print "dico = ", dico -# - if dico.has_key("SENSIBILITE") : - nopase = dico["SENSIBILITE"].nom - else : - nopase = " " -#gn print "Avant appel a aster.mdnoch, lresu = ",lresu,", noresu =", noresu ,", nomsym = ", nomsym ,", nopase = ", nopase - dico["NOM_MED"] = aster.mdnoch ( lresu, noresu, nomsym, nopase ) -#gn print "==> dico[\"NOM_MED\"] = ", dico["NOM_MED"] - dico["COMPOSANTE"] = args["NOM_CMP_INDICA"] - liste_champs.append(dico) - dico_indi = dico -### print dico -# -# 2.1.3. ==> Les champs à mettre à jour -# -#gn print "\n.. Debut de 2.1.3." -# - if args.has_key("MAJ_CHAM") : -# - if args["MAJ_CHAM"] is None : - les_champs = [] - else : - les_champs = args["MAJ_CHAM"] -# - for maj_cham in les_champs : -#gn print maj_cham -#gn print type(maj_cham) -# - dico = {} - dico["Type_Champ"] = "CHAMP_MAJ" - liste_aux = [ "CHAM_MAJ", "TYPE_CHAM" ] - if ( maj_cham["RESULTAT"] != None ) : - lresu = 1 - liste_aux.append("RESULTAT") - liste_aux.append("NOM_CHAM") - if ( maj_cham["NUME_ORDRE"] != None ) : - dico["NUME_ORDRE"] = maj_cham["NUME_ORDRE"] - elif ( maj_cham["INST"] != None ) : - dico["INST"] = maj_cham["INST"] - for cle in [ "PRECISION", "CRITERE" ] : - if ( maj_cham[cle] != None ) : - dico[cle] = maj_cham[cle] - noresu = maj_cham["RESULTAT"].nom - nomsym = maj_cham["NOM_CHAM"] - if ( maj_cham["SENSIBILITE"] != None ) : - dico["SENSIBILITE"] = maj_cham["SENSIBILITE"] - else : - lresu = 0 - liste_aux.append("CHAM_GD") - noresu = maj_cham["CHAM_GD"].nom - nomsym = " " - for cle in liste_aux : - dico[cle] = maj_cham[cle] -#gn print "dico = ", dico -# - if dico.has_key("SENSIBILITE") : - nopase = dico["SENSIBILITE"].nom - else : - nopase = " " -#gn print "Avant appel a aster.mdnoch, lresu = ",lresu,", noresu =", noresu ,", nomsym = ", nomsym ,", nopase = ", nopase - dico["NOM_MED"] = aster.mdnoch ( lresu, noresu, nomsym, nopase ) -#gn print "==> dico[\"NOM_MED\"] = ", dico["NOM_MED"] -# -### print dico - liste_champs.append(dico) -# -# 2.1.4. ==> Les zones de raffinement -# -### print "\n.. Debut de 2.1.4." -# - if args.has_key("ZONE") : -# - if args["ZONE"] is None : - les_zones = [] - else : - les_zones = args["ZONE"] -# - for zone in les_zones : -### print zone -### print type(zone) - dico = {} - for aux in ['X_MINI', 'X_MAXI', 'Y_MINI', 'Y_MAXI', 'Z_MINI', 'Z_MAXI', 'X_CENTRE', 'Y_CENTRE', 'Z_CENTRE', 'RAYON'] : - if ( zone[aux] != None ) : - dico[aux] = zone[aux] -### print dico - liste_zones.append(dico) -# -### print liste_zones -# -# 2.2. ==> Données de pilotage de l'information -# - else : -# - mode_homard = "INFO" -# - dico = {} - dico["Type_Maillage"] = "MAILLAGE_N" - dico["Nom_ASTER"] = args["MAILLAGE"] - dico["Action"] = "A_ecrire" - liste_maillages.append(dico) -# -# 2.3. ==> Suivi de frontière -# -#gn print "\n.. Debut de 2.3." -# - if ( MAILLAGE_FRONTIERE != None ) : -# - dico = {} - dico["Type_Maillage"] = "MAILLAGE_FRONTIERE" - dico["Nom_ASTER"] = MAILLAGE_FRONTIERE - dico["Action"] = "A_ecrire" - liste_maillages.append(dico) -# -# 2.4. ==> Le numéro de version de HOMARD -# Remarque : dans la donnée de la version de HOMARD, il faut remplacer -# le _ de la donnee par un ., qui est interdit dans la -# syntaxe du langage de commandes ASTER -# Remarque : il faut remplacer le N majuscule de la donnee par -# un n minuscule, qui est interdit dans la syntaxe du langage -# de commandes ASTER -# -#gn print "\n.. Debut de 2.4. avec VERSION_HOMARD = ", VERSION_HOMARD - VERSION_HOMARD = string.replace(VERSION_HOMARD,"_" , ".") - VERSION_HOMARD = string.replace(VERSION_HOMARD,"N" , "n") -# - if ( VERSION_HOMARD[-6:]==".PERSO" ): - VERSION_HOMARD = VERSION_HOMARD[:-6] - version_perso = 1 - else : - version_perso = 0 -#gn print ".... VERSION_HOMARD = ", VERSION_HOMARD -#gn print ".... version_perso = ", version_perso -# -#==================================================================== -# 3. Préparation du lancement des commandes -#==================================================================== -# -# 3.1. ==> . Elaboration des noms MED des concepts de maillage -# . Memorisation des noms ASTER du maillage en entrée et en sortie (sous forme string) -# -# On crée une nouvelle liste des dictionnaires décrivant les maillages -# et à la fin on écrase l'ancienne liste par cette nouvelle. -# -#gn print "\n.. Debut de 3.1." -# - Nom_Concept_Maillage_NP1_ANNEXE = None - l_aux = [] - for dico in liste_maillages : -#gn print "\ndico avant = ",dico - if ( dico["Action"] != "Rien" ) : - dico["NOM_MED"] = aster.mdnoma(dico["Nom_ASTER"].nom) - l_aux.append(dico) - if ( dico["Type_Maillage"] == "MAILLAGE_N" ) : - Nom_Concept_Maillage_N = dico["Nom_ASTER"].nom - elif ( dico["Type_Maillage"] == "MAILLAGE_NP1" ) : - Nom_Concept_Maillage_NP1 = dico["Nom_ASTER"].nom - elif ( dico["Type_Maillage"] == "MAILLAGE_NP1_ANNEXE" ) : - Nom_Concept_Maillage_NP1_ANNEXE = dico["Nom_ASTER"].nom -#gn print "\ndico apres = ",dico - liste_maillages = l_aux -# -# 3.2. ==> Recherche du numéro d'itération et du répertoire de travail -# -# 3.2.1. ==> Par défaut : -# . le numéro d'itération est nul -# . le nom du répertoire de lancement de HOMARD est construit sur le nom -# du maillage en entrée et le numéro de passage dans la fonction -# -#gn print "\.. Debut de 3.2.1." -# - niter = 0 - Nom_Rep_local = Nom_Concept_Maillage_N + "_" + mode_homard + "_" + str(numero_passage_fonction) - Rep_Calc_HOMARD_local = os.path.join(".", Nom_Rep_local) - Rep_Calc_HOMARD_global = os.path.join(Rep_Calc_ASTER, Nom_Rep_local) -### print "Rep_Calc_HOMARD_local = ", Rep_Calc_HOMARD_local -### print "Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global -# -# 3.2.2. ==> En adaptation : il faut repartir du répertoire de l'itération précédente -# -#gn print "\.. Debut de 3.2.2." -# - if ( mode_homard == "ADAP" ) : -# -# 3.2.2.1. ==> On recherche si dans les passages déjà effectués, il en existe un -# dont le maillage d'arrivée était l'actuel maillage d'entrée. Si c'est -# le cas, cela veut dire que l'adaptation en cours est la suite d'une -# précédente. On doit donc utiliser le meme répertoire. Le numéro -# d'itération est celui de l'adaptation précédente augmenté de 1. -# -#gn print "\.. Debut de 3.2.2.1." -# - for dico in Liste_Passages : - if ( dico["Maillage_NP1"] == Nom_Concept_Maillage_N ) : - niter = dico["niter"] + 1 - Rep_Calc_HOMARD_local = dico["Rep_Calc_HOMARD_local"] - Rep_Calc_HOMARD_global = dico["Rep_Calc_HOMARD_global"] -# -# 3.2.2.2. ==> Memorisation de ce passage -# -#gn print "\.. Debut de 3.2.2.2." -# -# 3.2.2.2.1. ==> Enregistrement d'un nouveau cas de figure -# - if ( niter == 0 ) : - dico = {} - dico["Maillage_0"] = Nom_Concept_Maillage_N - dico["Maillage_NP1"] = Nom_Concept_Maillage_NP1 - dico["Maillage_NP1_ANNEXE"] = Nom_Concept_Maillage_NP1_ANNEXE - dico["Rep_Calc_HOMARD_local"] = Rep_Calc_HOMARD_local - dico["Rep_Calc_HOMARD_global"] = Rep_Calc_HOMARD_global - dico["niter"] = niter - Liste_Passages.append(dico) -# -# 3.2.2.2.2. ==> Modification du cas en cours -# - else : - l_aux = [] - for dico in Liste_Passages : - if ( dico["Maillage_NP1"] == Nom_Concept_Maillage_N ) : - dico["Maillage_NP1"] = Nom_Concept_Maillage_NP1 - dico["Maillage_NP1_ANNEXE"] = Nom_Concept_Maillage_NP1_ANNEXE - dico["niter"] = niter - l_aux.append(dico) - Liste_Passages = l_aux -# -### print "niter = ", niter, ", Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global -# -# 3.2.3. Création du répertoire pour homard -# attention : on ne fait cette creation qu'une seule fois par cas -# d'adaptation ou d'information -# -#gn print "\.. Debut de 3.2.3." -# - if ( niter == 0 ) : -# - try : - os.mkdir(Rep_Calc_HOMARD_global) - except os.error,codret_partiel : - self.cr.warn("Code d'erreur de mkdir : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) - UTMESS("F", self.nom, "Impossible de créer le répertoire de travail pour HOMARD : "+Rep_Calc_HOMARD_global) -# -#==================================================================== -# 4. Ecriture des commandes de creation des donnees MED -#==================================================================== -# -#gn print "\.. Debut de 4." -# -# On doit écrire : le maillage, -# le champ d'indicateur d'erreur -# les champs à convertir -# Remarque : on met tout dans le meme fichier -# -# Chacune de ces écritures est optionnelle selon le contexte. -# - if ( INFO > 1 ) : - infomail = "OUI" - else : - infomail = "NON" -# -# 4.1. ==> Noms des fichiers d'ASTER vers HOMARD et éventuellement de HOMARD vers ASTER -# Remarque : aujourd'hui, les écritures ou les lectures au format MED se font obligatoirement sur -# un fichier de nom fort.n, placé dans le répertoire de calcul -## -# 4.1.1. ==> D'ASTER vers HOMARD -# - unite_fichier_aster_vers_homard = 1787 + 2*numero_passage_fonction - fichier_aster_vers_homard = os.path.join(Rep_Calc_ASTER,"fort." + str(unite_fichier_aster_vers_homard)) -### print "fichier_aster_vers_homard = ",fichier_aster_vers_homard -# -# 4.1.2. ==> De HOMARD vers ASTER -# - if ( mode_homard == "ADAP" ) : - unite_fichier_homard_vers_aster = unite_fichier_aster_vers_homard + 1 - fichier_homard_vers_aster = os.path.join(Rep_Calc_ASTER,"fort." + str(unite_fichier_homard_vers_aster)) -### print "fichier_homard_vers_aster = ",fichier_homard_vers_aster -# -# 4.2. La définition du fichier de ASTER vers HOMARD -# - DEFI_FICHIER ( ACTION= "ASSOCIER", - UNITE = unite_fichier_aster_vers_homard, - TYPE = "LIBRE", - INFO = INFO ) -# -# 4.3. Le(s) maillage(s) -# Le maillage de calcul et l'éventuel maillage de la frontiere sont écrits -# dans le meme fichier MED -# En fait, on pourrait s'en passer au dela de la 1ère itération -# car HOMARD a mémorisé. Mais dès que l'on écrit un champ, -# les conventions MED imposent la présence du maillage dans le fichier. -# Donc on va toujours écrire. -# - for dico in liste_maillages : - if ( dico["Action"] == "A_ecrire" ) : - motscsi = {} - motscsi["MAILLAGE"] = dico["Nom_ASTER"] - motscfa = {} - motscfa["RESU"] = _F( INFO_MAILLAGE=infomail, - **motscsi ) -# - IMPR_RESU ( INFO = INFO, - FORMAT ='MED', UNITE = unite_fichier_aster_vers_homard, - **motscfa ) -# -# 4.4. Le(s) champ(s) -# Attention : il se peut que l'on demande la mise à jour du champ qui a servi comme -# indicateur d'erreur. Si c'est le cas, il ne faut pas demander son -# impression sinon il y a plantage d'IMPR_RESU qui ne sait pas substituer -# deux champs. D'ailleurs, c'est plus économique ainsi ! -# Remarque : pour l'adaptation, on ne demande a priori qu'une composante du champ d'indicateur. -# s'il y a demande de mise à jour, toutes les composantes sont concernées. Il faut -# donc dans ce cas imprimer le champ total. -# dico["Type_Champ"] = o ; string ; "INDICATEUR" ou "CHAMP_MAJ" -# dico["RESULTAT"] = f ; concept ASTER du résutat associé -# dico["NOM_CHAM"] = f ; string ; Nom ASTER du champ -# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associée -# dico["COMPOSANTE"] = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur) -# dico["NUME_ORDRE"] = f ; entier ; Numéro d'ordre du champ -# dico["INST"] = f ; entier ; Instant du champ -# dico["PRECISION"] = f ; entier ; Précision sur l'instant du champ -# dico["CRITERE"] = f ; entier ; Critère de précision sur l'instant du champ -# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpolé sur le nouveau maillage -# dico["NOM_MED"] = o ; string ; Nom MED du champ -# dico["SENSIBILITE"] = f ; string ; Nom du paramètre sensible associé -# -# 4.4.1. Recherche d'un doublon éventuel sur le champ d'indicateur d'erreur -# -#gn print "dico_indi = ",dico_indi - if len(dico_indi) > 0 : - indic_est_deja_imprime = 0 - if dico_indi.has_key("RESULTAT") : - liste_aux = [ "RESULTAT", "NOM_CHAM" ] - else : - liste_aux = [ "CHAM_GD" ] - else : - indic_est_deja_imprime = 1 - liste_aux = [ ] -#gn print ".. Au debut de la boucle, liste_aux = ",liste_aux -#gn print ".. Au debut de la boucle, indic_est_deja_imprime = ",indic_est_deja_imprime -# - liste_champs_imprime = [] - for dico in liste_champs : -### print "\n.... dico = ",dico -# Pour un champ à mettre à jour, on a toujours impression - if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : - liste_champs_imprime.append(dico) -# Si le champ d'indicateur n'a toujours pas été repéré comme champ à mettre à jour : - if not indic_est_deja_imprime : -# Est-ce le meme champ ? - on_a_le_champ = 1 - for cle in liste_aux : - if ( dico.has_key(cle) ) : -### print "...... dico_indi[cle] = ",dico_indi[cle] -### print "...... dico[cle] = ",dico[cle] - if ( dico_indi[cle] != dico[cle] ) : - on_a_le_champ = 0 - break - else : - on_a_le_champ = 0 - break -# Si oui, est-ce un champ sensible ou non ? - if on_a_le_champ : - cle = "SENSIBILITE" - if dico.has_key(cle) : - if ( dico[cle] != None ) : - if dico_indi.has_key(cle) : - if ( dico_indi[cle] != dico[cle] ) : - on_a_le_champ = 0 - break - else : - on_a_le_champ = 0 - break -# Si oui, est-ce au meme moment ? (remarque : si rien n'est désigné, c'est qu'il n'y a qu'un -# seul instant ... donc c'est le meme ! En revanche, on ne sait pas comparer une donnée -# en numéro d'ordre et une donnée en instant. On croise les doigts.) - if on_a_le_champ : - for cle in [ "NUME_ORDRE", "INST" ] : - if dico.has_key(cle) : - if ( dico[cle] != None ) : - if dico_indi.has_key(cle) : - if ( dico_indi[cle] != dico[cle] ) : - on_a_le_champ = 0 - break - if on_a_le_champ : - indic_est_deja_imprime = 1 -### print "\n\nFin de la boucle .. indic_est_deja_imprime = ",indic_est_deja_imprime -# Si le champ d'indicateur n'a pas été repéré comme champ à mettre à jour, il faut -# l'inclure dans les champs à imprimer - if not indic_est_deja_imprime : - liste_champs_imprime.append(dico_indi) -# -# 4.4.2. Impressions après le filtrage précédent -#gn print "\n.... Debut de 4.2.4.2." -# - for dico in liste_champs_imprime : - motscsi = {} - for cle in [ "RESULTAT", "NOM_CHAM", "CHAM_GD", "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] : - if dico.has_key(cle) : - if ( dico[cle] != None ) : - motscsi[cle] = dico[cle] - if dico.has_key("COMPOSANTE") : - motscsi["NOM_CMP"] = dico["COMPOSANTE"] - if dico.has_key("SENSIBILITE") : - motscsi["SENSIBILITE"] = dico["SENSIBILITE"] - motscfa = {} - motscfa["RESU"] = _F( INFO_MAILLAGE=infomail, - **motscsi - ) -#gn print ".. motscfa = ",motscfa -# - IMPR_RESU ( INFO = INFO, - FORMAT ='MED', UNITE = unite_fichier_aster_vers_homard, - **motscfa ) -# -#==================================================================== -# 5. ==> Création des fichiers de données pour HOMARD -#==================================================================== -# -#gn print "\.. Debut de 5." -# - dico_configuration = {} -# -# 5.1. ==> Les généralités -# - dico_configuration["INFO"] = INFO -# - dico_configuration["Rep_Calc_HOMARD_global"] = Rep_Calc_HOMARD_global - dico_configuration["VERSION_HOMARD"] = VERSION_HOMARD - dico_configuration["version_perso"] = version_perso -# - dico_configuration["niter"] = niter - dico_configuration["Fichier_ASTER_vers_HOMARD"] = fichier_aster_vers_homard - if ( mode_homard == "ADAP" ) : - dico_configuration["Fichier_HOMARD_vers_ASTER"] = fichier_homard_vers_aster -# -# 5.2. ==> Les noms med des maillages -# - for dico in liste_maillages : -#gn print "Nom MED de " + dico["Type_Maillage"] + " = " + dico["NOM_MED"] - dico_configuration[ "NOM_MED_"+dico["Type_Maillage"] ] = dico["NOM_MED"] -#gn print dico_configuration -# -# 5.3. ==> Les caracteristiques de l'éventuel indicateur d'erreur -# - for dico in liste_champs : - dico_aux = {} - if ( dico["Type_Champ"] == "INDICATEUR" ) : - liste_aux = [ "NOM_MED", "COMPOSANTE" ] - if dico.has_key("NUME_ORDRE") : - liste_aux.append("NUME_ORDRE") - for cle in liste_aux : - if ( dico[cle] != None ) : - dico_aux[cle] = dico[cle] - dico_configuration["Indicateur"] = dico_aux -#gn if dico_configuration.has_key("Indicateur") : -#gn print "dico_configuration[Indicateur] = ", dico_configuration["Indicateur"] -# -# 5.4. ==> Les zones de raffinement -# - prem = 1 - for dico in liste_zones : - if prem : - l_aux = [dico] - prem = 0 - else : - l_aux = dico_configuration["Zones"] - l_aux.append(dico) - dico_configuration["Zones"] = l_aux -### if dico_configuration.has_key("Zones") : -### print "dico_configuration[Zones] = ", dico_configuration["Zones"] -# -# 5.5. ==> La mise à jour de champs -# - prem = 1 - for dico in liste_champs : - dico_aux = {} - if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : - liste_aux = [ "NOM_MED", "COMPOSANTE" ] - if dico.has_key("NUME_ORDRE") : - liste_aux.append("NUME_ORDRE") - else : - for cle in [ "RESULTAT", "NOM_CHAM", "INST", "PRECISION", "CRITERE" ] : - liste_aux.append(cle) - for cle in liste_aux : - if dico.has_key(cle) : - if ( dico[cle] != None ) : - dico_aux[cle] = dico[cle] -#gn print dico_aux - if prem : - l_aux = [dico_aux] - prem = 0 - else : - l_aux = dico_configuration["Champs"] - l_aux.append(dico_aux) - dico_configuration["Champs"] = l_aux -#gn if dico_configuration.has_key("Champs") : -#gn print "dico_configuration[Champs] = ", dico_configuration["Champs"] -# -# 5.6. ==> Appel de la fonction de création -# - donnees_homard = creation_donnees_homard.creation_donnees_homard ( self.nom, args, dico_configuration ) - if ( INFO > 1 ) : - donnees_homard.quel_mode ( ) - fic_homard_niter, fic_homard_niterp1 = donnees_homard.creation_configuration ( ) - donnees_homard.ecrire_fichier_configuration ( ) - if ( mode_homard == "INFO" ) : - Nom_Fichier_Donnees = donnees_homard.ecrire_fichier_donnees ( ) - else : - Nom_Fichier_Donnees = "0" -# -# 5.7. ==> Impression eventuelle des fichiers créés -# -#gn print "Répertoire ",Rep_Calc_HOMARD_global -#gn os.system("ls -la "+Rep_Calc_HOMARD_global) - if ( INFO > 1 ) : - l_aux = ["HOMARD.Donnees" , "HOMARD.Configuration"] - else : - l_aux = [ ] - for nomfic in l_aux : - fic = os.path.join(Rep_Calc_HOMARD_global, nomfic) - if os.path.isfile (fic) : - print "\n\n==============================================================" - print "Contenu de", nomfic - fichier = open (fic,"r") - les_lignes = fichier.readlines() - fichier.close() - for ligne in les_lignes : - print ligne[:-1] - print "==============================================================\n" -#gn if ( mode_homard == "ADAP" ) : -#gn if args.has_key("MAJ_CHAM") : -#gn if args["MAJ_CHAM"] is not None : -#gn os.system("sleep 1000") -# -#==================================================================== -# 6. Ecriture de la commande d'exécution de homard -#==================================================================== -# -# -#gn print "\.. Debut de 6." -#gn fichier_aster_vers_homard_2 = os.path.join("/tmp" , "fort." + str(unite_fichier_aster_vers_homard)) -#gn shutil.copyfile(fichier_aster_vers_homard, fichier_aster_vers_homard_2) -# - EXEC_LOGICIEL ( ARGUMENT = (Rep_Calc_HOMARD_global, # nom du repertoire - VERSION_HOMARD, # version de homard - str(INFO), # niveau d information - Nom_Fichier_Donnees, # fichier de données HOMARD - str(version_perso), # version personnelle de homard ? - ), - LOGICIEL = homard - ) -# os.system("sleep 3600") -# - #gn if ( mode_homard == "ADAP" ) : -#gn fichier_homard_vers_aster_2 = os.path.join("/tmp" , "fort." + str(unite_fichier_homard_vers_aster)) -#gn shutil.copyfile(fichier_homard_vers_aster, fichier_homard_vers_aster_2) -#gn fichier_homard_vers_aster_2_1 = os.path.join("/tmp" , "fort." + str(unite_fichier_homard_vers_aster)+".1") -#gn os.system("/local00/Logiciels/med-2.3.1/Linux/bin/mdump "+fichier_homard_vers_aster_2+">"+fichier_homard_vers_aster_2_1+""+fichier_homard_vers_aster_2_2+" Ecriture de la commande de lecture des resultats med -# Remarque : -# La fonction self.DeclareOut(a,b) fonctionne ainsi : -# a est une chaine de caracteres -# b est la variable déclarée dans la commande -# le but est de associer le contenu de b à la variable locale qui sera désignée par a -# Exemple : -# self.DeclareOut("maillage_a_lire",args["MAILLAGE_NP1"]) -# ==> la variable maillage_a_lire est identifiée à l'argument "MAILLAGE_NP1" -#==================================================================== -# - if ( mode_homard == "ADAP" ) : -# -# 7.1. ==> Le maillage -# -#gn print "args = ",args - for dico in liste_maillages : -#gn print dico - if ( dico["Action"] == "A_lire" ) : - self.DeclareOut("maillage_a_lire", dico["Nom_ASTER"]) - maillage_a_lire = LIRE_MAILLAGE ( UNITE = unite_fichier_homard_vers_aster, - FORMAT = "MED", - NOM_MED = dico["NOM_MED"], - VERI_MAIL = _F(VERIF="NON"), INFO_MED = INFO, INFO = INFO ) -#gn print "MAILLAGE = ",maillage_a_lire -#gn print "NOM_MED = ",dico["NOM_MED"] - if ( dico["Type_Maillage"] == "MAILLAGE_NP1" ) : - maillage_np1 = maillage_a_lire - maillage_np1_nom_med = dico["NOM_MED"] -# -# 7.2. ==> Les champs -#gn os.system("sleep 100") -# - for dico in liste_champs : - if ( dico["Type_Champ"] == "CHAMP_MAJ" ) : -#gn print dico - self.DeclareOut("champ_maj", dico["CHAM_MAJ"]) - motscsi = {} - for cle in [ "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] : - if dico.has_key(cle) : - if ( dico[cle] != None ) : - motscsi[cle] = dico[cle] - if dico.has_key("NUME_ORDRE") : - motscsi["NUME_PT"] = dico["NUME_ORDRE"] -#gn print "MAILLAGE = ",maillage_np1 -#gn print "NOM_MAIL_MED = ",maillage_np1_nom_med -#gn print "NOM_MED = ",dico["NOM_MED"] -#gn print "TYPE_CHAM =", dico["TYPE_CHAM"] - champ_maj = LIRE_CHAMP ( UNITE = unite_fichier_homard_vers_aster, FORMAT = "MED", - MAILLAGE = maillage_np1, NOM_MAIL_MED=maillage_np1_nom_med, - NOM_MED = dico["NOM_MED"], NOM_CMP_IDEM = "OUI", TYPE_CHAM = dico["TYPE_CHAM"], - INFO = INFO, **motscsi ) -# -#==================================================================== -# 8. Menage des fichiers devenus inutiles -# On doit imperativement garder le dernier fichier homard produit -# En mode d'information, on garde également les fichiers textes -#==================================================================== -# - liste_aux = [fichier_aster_vers_homard] - liste_aux_bis = os.listdir(Rep_Calc_HOMARD_global) - for fic in liste_aux_bis : - fic_total = os.path.join(Rep_Calc_HOMARD_global, fic) - liste_aux.append(fic_total) - liste_aux_bis = [] - if ( mode_homard == "ADAP" ) : - liste_aux.append(fichier_homard_vers_aster) - fic = os.path.join(Rep_Calc_HOMARD_global, fic_homard_niterp1) - liste_aux_bis.append(fic) -# - for fic in liste_aux : - if fic not in liste_aux_bis : - if ( INFO > 1 ) : - print "Destruction du fichier ", fic - if os.path.isfile(fic) : - try : - os.remove(fic) - except os.error,codret_partiel : - self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1]) - UTMESS("F", self.nom, "Impossible de détruire le fichier : "+fic) -#gn print "Répertoire ",Rep_Calc_HOMARD_global -#gn os.system("ls -la "+Rep_Calc_HOMARD_global) -#gn print "Répertoire ",Rep_Calc_ASTER -#gn os.system("ls -la "+Rep_Calc_ASTER) -#gn print os.listdir(Rep_Calc_HOMARD_global) -#gn print "glop :", Rep_Calc_HOMARD_global -# -#==================================================================== -# C'est fini ! -#==================================================================== -# -#gn if ( mode_homard == "ADAP" ) : -#gn os.system("sleep 1") -# - return diff --git a/Aster/Cata/cataSTA8/Macro/macr_ascouf_calc_ops.py b/Aster/Cata/cataSTA8/Macro/macr_ascouf_calc_ops.py deleted file mode 100644 index 91874f1f..00000000 --- a/Aster/Cata/cataSTA8/Macro/macr_ascouf_calc_ops.py +++ /dev/null @@ -1,681 +0,0 @@ -#@ MODIF macr_ascouf_calc_ops Macro DATE 05/09/2007 AUTEUR SALMONA L.SALMONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM, - FOND_FISS,CHARGE,RESU_THER,AFFE_MATERIAU, - PRES_REP,ECHANGE,TORS_P1,COMP_INCR,COMP_ELAS, - SOLVEUR,CONVERGENCE,NEWTON,RECH_LINEAIRE, - INCREMENT,THETA_3D,IMPR_TABLE,IMPRESSION,INFO,TITRE ,**args): - """ - Ecriture de la macro MACR_ASCOUF_CALC - """ - from Accas import _F - import types - import math - import aster - from math import pi,sin,cos,sqrt,atan2 - from Utilitai.Utmess import UTMESS - ier=0 -# On recopie les mots cles affe_materiau et impr_table pour les proteger - mc_AFFE_MATERIAU=AFFE_MATERIAU - mc_IMPR_TABLE =IMPR_TABLE - # On importe les definitions des commandes a utiliser dans la macro - AFFE_MODELE =self.get_cmd('AFFE_MODELE' ) - AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU' ) - AFFE_CARA_ELEM =self.get_cmd('AFFE_CARA_ELEM' ) - AFFE_CHAR_THER_F =self.get_cmd('AFFE_CHAR_THER_F') - THER_LINEAIRE =self.get_cmd('THER_LINEAIRE' ) - AFFE_CHAR_MECA =self.get_cmd('AFFE_CHAR_MECA' ) - STAT_NON_LINE =self.get_cmd('STAT_NON_LINE' ) - CALC_ELEM =self.get_cmd('CALC_ELEM' ) - IMPR_RESU =self.get_cmd('IMPR_RESU' ) - IMPR_TABLE =self.get_cmd('IMPR_TABLE' ) - DEFI_FOND_FISS =self.get_cmd('DEFI_FOND_FISS' ) - CALC_THETA =self.get_cmd('CALC_THETA' ) - CALC_G =self.get_cmd('CALC_G' ) - POST_RCCM =self.get_cmd('POST_RCCM' ) - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T' ) - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) -#------------------------------------------------------------------ -# DATA - GRMAIL = ('COUDE','PEAUINT','PEAUEXT','EXTUBE','CLGV','FACE1','FACE2') -#------------------------------------------------------------------ -# - if CL_BOL_P2_GV!=None : - if TYPE_MAILLAGE=='SOUS_EPAIS_COUDE' : - message= ' la condition aux limites sur bol a section conique \n' - message=message+' est ignoree pour un coude avec sous-epaisseurs \n' - UTMESS('A', "MACR_ASCOUF_CALC", message) - elif (TYPE_MAILLAGE[:4]!='FISS') and (CL_BOL_P2_GV['AZIMUT']!=None) : - UTMESS('E', "MACR_ASCOUF_CALC", "mot-cle AZIMUT non autorise dans le cas d un coude sain") -# - if mc_IMPR_TABLE!=None : - FLAG = 0 - if (mc_IMPR_TABLE['NOM_PARA']==None) and (mc_IMPR_TABLE['POSI_ANGUL']==None) and (mc_IMPR_TABLE['POSI_CURV_LONGI']==None) : - UTMESS('E', "MACR_ASCOUF_CALC", "POSI_ANGUL POSI_CURV_LONGI est obligatoire") - return ier - if (mc_IMPR_TABLE['NOM_PARA']!=None) : - impr_table_nom_para= mc_IMPR_TABLE['NOM_PARA'] - for impt in impr_table_nom_para : - if impt in ('SI_LONG','SI_CIRC','SI_RADI') : - FLAG = 1 - if (((impt['ANGLE']==None) and (impt['POSI_ANGUL']==None) and (impt['R_CINTR' ]==None)) or - ((impt['ANGLE']==None) and (impt['R_CINTR' ]==None) and (impt['POSI_CURV_LONGI']==None)) ) : - UTMESS('E', "MACR_ASCOUF_CALC", "il faut renseigner : ANGLE, R_CINTR et POSI_ANGUL ou ANGLE, R_CINTR et POSI_CURV_LONGI") - if (mc_IMPR_TABLE['NOM_PARA']==None) : FLAG = 1 - if not FLAG : UTMESS('A', "MACR_ASCOUF_CALC","ANGL_COUDE et ANGL_SOUS_EPAI sont inutiles dans ce cas") -# -#------------------------------------------------------------------ -# -# --- commande AFFE_MODELE --- -# - self.DeclareOut('modele',MODELE) - mcfact=[] - if (PRES_REP!=None) and (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[:4]=='FISS') : - mcfact.append(_F(GROUP_MA=GRMAIL ,PHENOMENE='MECANIQUE',MODELISATION='3D' )) - else: - mcfact.append(_F(GROUP_MA=GRMAIL[:5] ,PHENOMENE='MECANIQUE',MODELISATION='3D' )) - if TORS_P1!=None : - mcfact.append(_F(GROUP_MA='P1' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) - if CL_BOL_P2_GV==None : - mcfact.append(_F(GROUP_MA='P2' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR')) - modele = AFFE_MODELE( MAILLAGE = MAILLAGE , - AFFE = mcfact ) - if ECHANGE!=None : # modele thermique - __modthe = AFFE_MODELE( MAILLAGE = MAILLAGE , - AFFE = _F(TOUT ='OUI', - PHENOMENE ='THERMIQUE', - MODELISATION='3D' ) ) -#------------------------------------------------------------------ -# -# --- commande AFFE_MATERIAU --- -# - 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']!='NON' : - 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,AZIMC - -# ------------------------------------------------------------------------------ -def ASCTCI(MCL_SOUS_EPAIS,RM): - """ - MACR_ASCOUF_MAIL ASCTCI - APPELEE DANS : ASCSYM et ASCPRE - CALCUL TABLEAU TRIE DES ABSCISSES DES CENTRES DE SOUS-EPAISSEURS - - ------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- - - RM = RAYON MOYEN DU COUDE - - -----------------DONNEES RENVOYEES----------------------- - - IABSC1 = CORRESPONDANCE ABSC. CURVI. CIRCONF. SOUS-EP. I - IABSC2 = CORRESPONDANCE ABSC. GAUCHE ET DROITE CIRCONF. SOUS-EP. I - COORXD = ABSC. DU BORD DROIT DE LA SOUS-EP I - COORXG = ABSC. DU BORD GAUCHE DE LA SOUS-EP I - - """ -# -# --- tri du tableau des abscisses curvilignes circonf. plaque -# - echo_mess=['MACR_ASCOUF_MAIL ASCTCI \n',] - TAMPON = [] - COORXG = [] - COORYG = [] - i=0 - for ssep in MCL_SOUS_EPAIS : - i=i+1 - if (ssep.ISCP>2.*pi*RM) or (ssep.ISCP<0.) : - texte_final=string.join(echo_mess) - aster.affiche("MESSAGE",texte_final) - message= ' valeur hors domaine \n' - message=message+ ' SOUS-EPAISSEUR NUMERO :%d'%MCL_SOUS_EPAIS.index(ssep) - message=message+ ' ABSC. CURV. CIRCONF. :%.2f \n'%ssep.ISCP - message=message+ ' BORD PLAQUE :%.2f \n'%(2.*pi*RM) - UTMESS('F', "MACR_ASCOUF_MAIL", message) - TAMPON.append((ssep.ISCP,i)) - TAMPON.sort() - IABSC1=[] - for j in range(i): - IABSC1.append(TAMPON[j][1]) - echo_mess.append( ' \n') - echo_mess.append( 'TRI DES CENTRES ABSC. CURV. CIRCONF. :\n ') - echo_mess.append( '------------------------------------\n') - i=0 - for ssep in TAMPON : - i=i+1 - echo_mess.append( '%d) SOUS-EP NO %d <> XC = %.2f \n'%(i,ssep[1],ssep[0]) ) -# -# --- calcul des abcisses droites et gauches des sous-epaisseurs -# - COORXD=[] - COORXG=[] - for bid in TAMPON : - XG=bid[0]-MCL_SOUS_EPAIS[bid[1]-1].ICIRP/2. - if XG<0. : XG=XG+2.*pi*RM - COORXG.append(XG) - XD=bid[0]+MCL_SOUS_EPAIS[bid[1]-1].ICIRP/2. - if XD>2.*pi*RM : XD=XD-2.*pi*RM - COORXD.append(XD) -# -# --- tri des bornes d'intervalles en abscisse -# - TAMPON = [] - for j in range(len(MCL_SOUS_EPAIS)): - TAMPON.append((COORXG[j],2*j+1)) - TAMPON.append((COORXD[j],2*j+2)) - TAMPON.sort() - IABSC2=[] - for j in range(2*len(MCL_SOUS_EPAIS)): - IABSC2.append(TAMPON[j][1]) - echo_mess.append( '\n') - echo_mess.append( 'TRI DES INTERVALLES G ET D ABSC. CURV. CIRCONF. :\n') - echo_mess.append( '-----------------------------------------------\n' ) - for j in range(2*len(MCL_SOUS_EPAIS)): - if fmod(IABSC2[j],2): - echo_mess.append( '%d) SOUS-EP NO %d <> XG = %.2f \n'%(j+1,IABSC1[IABSC2[j]/2],TAMPON[j][0])) - else: - echo_mess.append( '%d) SOUS-EP NO %d <> XD = %.2f \n'%(j+1,IABSC1[IABSC2[j]/2-1],TAMPON[j][0])) -# - texte_final=string.join(echo_mess) - aster.affiche('MESSAGE',texte_final) - return TAMPON,IABSC1,IABSC2,COORXD,COORXG - -# ------------------------------------------------------------------------------ -def ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM): - """ - MACR_ASCOUF_MAIL ASCTLO - APPELEE DANS : ASCSYM et ASCPRE - CALCUL TABLEAU TRIE DES ORDONNEES DES CENTRES DE SOUS-EPAISSEURS - - ------------DONNEES FOURNIES PAR L UTILISATEUR-------------------- - - RC = RAYON MOYEN DU COUDE - ALPHA = ANGLE DU COUDE - LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT - LTCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES - - -----------------DONNEES RENVOYEES----------------------- - - IORDO1 = CORRESPONDANCE ORDO. CURVI. LONGIT. SOUS-EP. I - IORDO2 = CORRESPONDANCE ORDO. GAUCHE ET DROITE LONGIT. SOUS-EP. I - COORYI = ORDONNEE. DU BORD INTERIEUR DE LA SOUS-EP I - COORYS = ORDONNEE. DU BORD SUPERIEUR DE LA SOUS-EP I - - """ -# -# tri du tableau des abscisses curvilignes axiales plaque -# - echo_mess=['MACR_ASCOUF_MAIL ASCTLO \n',] - ALPHAR = 2.*ALPHA*pi/360. - TAMPON = [] - i=0 - for ssep in MCL_SOUS_EPAIS : - i=i+1 - if (ssep.ISLP>ALPHAR*RC) or (ssep.ISLP<0.) : - texte_final=string.join(echo_mess) - aster.affiche("MESSAGE",texte_final) - message= ' valeur hors domaine \n' - message=message+ ' SOUS-EPAISSEUR NUMERO :%d \n'%MCL_SOUS_EPAIS.index(ssep) - message=message+ ' ABSC. CURV. LONGIT. :%.2f \n'%ssep.ISLP - message=message+ ' BORDS PLAQUE :%.2f \n'%(ALPHAR*RC) - UTMESS('F', "MACR_ASCOUF_MAIL", message) - TAMPON.append((ssep.ISLP,i)) - TAMPON.sort() - IORDO1=[] - for j in range(i): - IORDO1.append(TAMPON[j][1]) - echo_mess.append( '\n') - echo_mess.append( 'TRI DES CENTRES ABSC. CURV. LONGIT. : \n') - echo_mess.append( '------------------------------------ \n') - i=0 - for ssep in TAMPON : - i=i+1 - echo_mess.append( '%d) SOUS-EP NO %d <> YC = %.2f \n'%(i,ssep[1],ssep[0])) -# -# calcul des abscisses sup. et inf. des sous-ep. -# - COORYI=[] - COORYS=[] - EPS=0.000000000001 - for bid in TAMPON : - i=i+1 - YI=bid[0]-MCL_SOUS_EPAIS[bid[1]-1].ILONP/2. - YS=bid[0]+MCL_SOUS_EPAIS[bid[1]-1].ILONP/2. - if fabs(bid[0])(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 + open(os.path.join(loc_datg, 'ascouf_fiss_v4.datg'), 'r').read() - fdgib=open(nomFichierDATG,'w') - fdgib.write(texte) - fdgib.close() - -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL write_file_dgib_ASCSQO -# -# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE -# "PLAQUE SOUS-EPAISSEUR" -# -#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- -# -# RM = RAYON MOYEN DU COUDE -# RC = RAYON DE CINTRAGE DU COUDE -# ALPHA = ANGLE DU COUDE -# NBTRAN = NOMBRE DE TRANSITION D'EPAISSEUR (0, 1 OU 2) -# EP1 = EPAISSEUR DU COUDE (COTE EMBOUT 1 SI TRANSITION) -# EP2 = EPAISSEUR DU COUDE (COTE EMBOUT 2 SI TRANSITION) -# EPI = EPAISSEUR DU COUDE INTERMEDIAIRE SI TRANSITION A 2 PENTES -# TETA1 = ANGLE DE LA PREMIERE TRANSITION D'EPAISSEUR EVENTUELLE -# TETA2 = ANGLE DE LA DEUXIEME TRANSITION D'EPAISSEUR EVENTUELLE -# LTRAN = LONGUEUR ENTRE FIN DE L'EMBOUT 1 ET DEBUT DE TRANSITION -# LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT -# LCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES -# GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE) -# SYME = "QUART" DE STRUCTURE, "DEMI" STRUCTURE OU BIEN "ENTIER" -# NBEP = NOMBRE D'ELEMENTS DANS LE COUDE -# NLX = NOMBRE D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR -# NLY = NOMBRE D'ELEMENTS LONGI DE LA SOUS-EPAISSEUR -# SUREP = SUR EPAISSEUR - -# ------------------------------------------------------------------------------ -def write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2, - EPI,TETA1,MCL_SOUS_EPAIS,TETA2,LTRAN,LTCHAR,LTCLIM,GEOM, - SYME,NBEP,NLX,NLY,NIVMAG,SUREP,AZIMC,loc_datg) : - - ssep= MCL_SOUS_EPAIS[0] - print 'AZIMC', AZIMC; - POIVIR = ' ;\n' - texte=' nivmag = '+str(NIVMAG) +POIVIR - texte=texte+' option dime 3 elem '+TYPELE+' nive nivmag echo 0'+POIVIR - texte=texte+'*\n' - texte=texte+'coory = table '+POIVIR - texte=texte+'coorz = table '+POIVIR - texte=texte+'prof = table '+POIVIR - texte=texte+'posit = table '+POIVIR - texte=texte+'axisym = table '+POIVIR - texte=texte+'axecir = table '+POIVIR - texte=texte+'axelon = table '+POIVIR - texte=texte+'sousep = table '+POIVIR - texte=texte+'coorzc = table '+POIVIR - texte=texte+'axelonc = table '+POIVIR - texte=texte+'*\n' - texte=texte+'* DEBUT PARAMETRES UTILISATEUR\n' - texte=texte+'*\n' - texte=texte+'* parametres generaux\n' - texte=texte+'*\n' - texte=texte+' pirad = '+str(pi) +POIVIR - texte=texte+' rm = '+str(RM) +POIVIR - texte=texte+' rc = '+str(RC) +POIVIR - texte=texte+' alpha = '+str(ALPHA) +POIVIR - texte=texte+' lt1 = '+str(LTCHAR) +POIVIR - texte=texte+' lt2 = '+str(LTCLIM) +POIVIR - texte=texte+' nbtranep = '+str(NBTRAN) +POIVIR - texte=texte+' ep1 = '+str(EP1) +POIVIR - texte=texte+' ep2 = '+str(EP2) +POIVIR - texte=texte+' epI = '+str(EPI) +POIVIR - texte=texte+' teta1 = '+str(TETA1) +POIVIR - texte=texte+' teta2 = '+str(TETA2) +POIVIR - texte=texte+' ltran = '+repr(LTRAN) +POIVIR - texte=texte+' surep = '+str(SUREP) +POIVIR - if GEOM == 'COUDE': - texte=texte+" zcoude = 'oui' "+POIVIR - else: - texte=texte+" zcoude = 'non' "+POIVIR - if SYME == 'ENTIER': - texte=texte+" zsyme = 'entier' "+POIVIR - elif SYME == 'QUART': - texte=texte+" zsyme = 'quart' "+POIVIR - else: - texte=texte+" zsyme = 'demi' "+POIVIR - if TYPELE == 'CU20': - texte=texte+" zquad = 'oui' "+POIVIR - else: - texte=texte+" zquad = 'non' "+POIVIR - SCP=pi*RM - texte=texte+' nxep = '+str(NBEP) +POIVIR - texte=texte+'*\n' - texte=texte+'* Caracteristiques de la sous-epaisseur\n' - texte=texte+'*\n' - texte=texte+' azimc = '+str(AZIMC) +POIVIR - texte=texte+' tysep = '+str(ssep.ICIRP) +POIVIR - texte=texte+' tzsep = '+str(ssep.ILONP) +POIVIR - texte=texte+' prof . 1 = '+str(ssep['PROFONDEUR']) +POIVIR - texte=texte+' ycsep = '+str(SCP-pi*RM) +POIVIR - texte=texte+' theta = '+str(ssep.IPHIC) +POIVIR - texte=texte+' zcsep = '+repr(ssep.ISLP) +POIVIR - - texte=texte+" posit . 1 = '"+str(ssep['SOUS_EPAIS'].lower())+"'"+POIVIR - texte=texte+' nby = '+str(int(NLX[0])) +POIVIR - texte=texte+' nbz = '+str(int(NLY[0])) +POIVIR - texte=texte+' nbxse = '+str(ssep['NB_ELEM_RADI']) +POIVIR - texte=texte+' axelonc . 1 = '+str(ssep['AXE_LONGI'])+POIVIR - if ssep['POSI_CURV_LONGI']!=None: - texte=texte+' coorzc . 1 = '+repr(ssep['POSI_CURV_LONGI'])+POIVIR - else: - DZC=ssep.BETA*pi*(RC+(RM+EP1/2.)*cos(pi/2.))/180. - texte=texte+' coorzc . 1 = '+repr(DZC)+POIVIR - if ssep['TYPE']=='AXIS': - texte=texte+" zaxis = 'oui' "+POIVIR - else: - texte=texte+" zaxis = 'non' "+POIVIR - if ssep['EMPREINTE'] == 'OUI': - texte=texte+" sousep . 1 = 'oui'"+POIVIR - else: - texte=texte+" sousep . 1 = 'non'"+POIVIR - texte=texte+'*\n' - texte=texte+'* FIN PARAMETRES UTILISATEUR \n' - texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mono_v1.datg'), 'r').read() - fdgib=open(nomFichierDATG,'w') - fdgib.write(texte) - fdgib.close() -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL write_subpart_file_pgib_POST -# -# APPELEE DANS : write_file_pgib_ASCSQ2 , write_file_pgib_ASCSD2 -# DEFINIE UNE CHAINE DE CARACTERES UTILISEE LORS DE L'ECRITURE DU -# FICHIER GIBI DE POST-TRAITEMENTS -# -#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- -# -# NLX = NOMBRE D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR -# NLY = NOMBRE D'ELEMENTS LONGI DE LA SOUS-EPAISSEUR -# -#-----------------DONNEE RENVOYEE PAR ASTER-------------------- -# -# texte = chaine de caracteres contenant des instructions gibi -# de post-traitements -# -# ------------------------------------------------------------------------------ -def write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY): - CAR3 = ('fdro','exdr','extr','exga','fgau','inga','intr','indr') - - POIVIR = ' ;\n' - texte='* DEBUT POINTS DE POST-TRAITEMENT\n' - texte=texte+'*\n' - issep=0 - for ssep in MCL_SOUS_EPAIS: - issep=issep+1 - texte=texte+'*\n' - texte=texte+'* sous-epaisseur No '+str( issep)+'\n' - texte=texte+'*\n' - if ssep['TYPE'] == 'ELLI': - texte=texte+'*\n' - texte=texte+'* plans circonf longi et colonne centrale \n' - texte=texte+'*\n' - texte=texte+'pcirc'+str( issep)+' = circo .'+str(issep).rjust(4)+POIVIR - texte=texte+'plong'+str( issep)+' = longi .'+str(issep).rjust(4)+POIVIR - texte=texte+'pcent'+str( issep)+' = centr .'+str(issep).rjust(4)+POIVIR - texte=texte+'*\n' - texte=texte+'* ligaments tous les 45 degres a epaisseur minimale \n' - texte=texte+'*\n' - texte=texte+'isep = '+str( issep)+POIVIR - for k in range(8): - texte=texte+'ilig = '+str(k+1)+POIVIR - texte=texte+'rlig = ilig/10. + isep'+POIVIR - texte=texte+str(CAR3[k])+str( issep)+' = lig45 . rlig'+POIVIR - if ssep['TYPE'] == 'ELLI': - texte=texte+'*\n' - texte=texte+"* ligaments circonferentiels a l'epaisseur minimale\n" - texte=texte+'*\n' - texte=texte+'isep = '+str(issep)+POIVIR - for k in range(2*NLX[issep-1]+1): - texte=texte+'ilig = '+str(k+1)+POIVIR - texte=texte+'rlig = ilig/100. + isep'+POIVIR - texte=texte+'cir'+str(issep)+'_'+str(k+1)+' = ligcir . rlig'+POIVIR - texte=texte+'*\n' - texte=texte+"* ligaments longitudinaux a l'epaisseur minimale\n" - texte=texte+'* \n' - for k in range(2*NLY[issep-1]+1): - texte=texte+'ilig = '+str(k+1)+POIVIR - texte=texte+'rlig = ilig/100. + isep'+POIVIR - texte=texte+'lon'+str(issep)+'_'+str(k+1)+' = liglon . rlig'+POIVIR - texte=texte+'* FIN POINTS DE POST-TRAITEMENT\n' - return texte - -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL write_file_pgib_ASCSQ2 -# -# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE -# "PLAQUE SOUS-EPAISSEURS" -# IL S'AGIT DE LA DEUXIEME PARTIE ( APRES LES DONNEES UTILISATEUR ) -# -# -#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- -# -# NLX = NOMBRE TOTAL D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR K -# NLY = NOMBRE TOTAL D'ELEMENTS LONGIT. DE LA SOUS-EPAISSEUR K - -# ------------------------------------------------------------------------------ -def write_file_pgib_ASCSQ2(MCL_SOUS_EPAIS,NLX,NLY): - POIVIR = ' ;\n' - texte=write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY) - texte=texte+'*\n' - texte=texte+'p1 = 0. 0. (-1.*lt1)'+POIVIR - texte=texte+'p2 = 0. 0. (coor 3 bou3)'+POIVIR - texte=texte+'ma = coude et p1 et p2'+POIVIR - texte=texte+"opti sauv form 'fort.8'"+POIVIR - texte=texte+'sort ma'+POIVIR - texte=texte+'sauv form ma'+POIVIR - texte=texte+'fin'+POIVIR - fpgib=open('fort.71','w') - fpgib.write(texte) - fpgib.close() - -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL write_file_pgib_ASCSP1 -# -# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE -# "PLAQUE SOUS-EPAISSEURS" -# IL S'AGIT DE LA PREMIERE PARTIE ( AVANT LES DONNEES UTILISATEUR ) -# -# -# ------------------------------------------------------------------------------ -def write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg): - - POIVIR = ' ;\n' - texte=' nivmag = '+str(NIVMAG)+POIVIR - texte=texte+' option dime 3 elem '+TYPELE+' nive nivmag echo 0 '+POIVIR - texte=texte+'*\n' - texte=texte+'bg = table '+POIVIR - texte=texte+'bd = table '+POIVIR - texte=texte+'bi = table '+POIVIR - texte=texte+'bs = table '+POIVIR - texte=texte+'indbg = table '+POIVIR - texte=texte+'indbd = table '+POIVIR - texte=texte+'indbi = table '+POIVIR - texte=texte+'indbs = table '+POIVIR - texte=texte+'axecir = table '+POIVIR - texte=texte+'axelon = table '+POIVIR - texte=texte+'axelonc = table '+POIVIR - texte=texte+'coorzc = table '+POIVIR - texte=texte+'prof = table '+POIVIR - texte=texte+'posit = table '+POIVIR - texte=texte+'coory = table '+POIVIR - texte=texte+'coorz = table '+POIVIR - texte=texte+'deny = table '+POIVIR - texte=texte+'nbely = table '+POIVIR - texte=texte+'denz = table '+POIVIR - texte=texte+'nbelz = table '+POIVIR - texte=texte+'axisym = table '+POIVIR - texte=texte+'sousep = table '+POIVIR - texte=texte+'* \n' - texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mult_v1.datg'), 'r').read() - fdgib=open(nomFichierDATG,'w') - fdgib.write(texte) - fdgib.close() - -################################################################################ -################################################################################ -################################################################################ -# MACR_ASCOUF_MAIL write_file_pgib_ASCSDO -# -# ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE -# "PLAQUE SOUS-EPAISSEURS" -# -#-----------------DONNEES FOURNIES PAR L'UTILISATEUR-------------------- -# -# RM = RAYON MOYEN DU COUDE -# RC = RAYON DE CINTRAGE DU COUDE -# ALPHA = ANGLE DU COUDE -# EP = EPAISSEUR DU COUDE -# LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT -# LCLIM = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES -# GEOM = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE) -# SYME = QUART DE STRUCTURE SI 'OUI' -# INDBG = INDICATEUR BORD GAUCHE DE LA ZONE CIRCONF J -# INDBD = INDICATEUR BORD DROIT DE LA ZONE CIRCONF J -# BG = ABSCISSE DU BORD GAUCHE DE LA ZONE CIRCONF J -# BD = ABSCISSE DU BORD DROIT DE LA ZONE CIRCONF J -# BI = ORDONNEE DU BORD INFERIEUR DE LA ZONE LONGI J -# BS = ORDONNEE DU BORD SUPERIEUR DE LA ZONE LONGI J -# INDBI = INDICATEUR BORD INFERIEUR DE LA ZONE LONGI J -# INDBS = INDICATEUR BORD SUPERIEUR DE LA ZONE LONGI J -# INDSEX = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE CIRCONF J -# INDSEY = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE LONGI J -# DNX = DENSITE ET NOMBRE D'ELEMENTS CIRCONF. DE LA ZONE J -# DNY = DENSITE ET NOMBRE D'ELEMENTS LONGIT. DE LA ZONE J -# NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES -# NZONEY = NOMBRE DE ZONES LONGITUDINALES -# -# ------------------------------------------------------------------------------ -def write_file_pgib_ASCSDO(RM,RC,ALPHA,EP,LTCLIM,LTCHAR,NBEP,SUREP, - NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS, - DNX,DNY,MCL_SOUS_EPAIS,GEOM,SYME): - - POIVIR = ' ;\n' - NY=20 - DELTAY=2.*pi*RM/NY - - def nint(x): - if 0(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,AZIMC= ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP1,GEOM,SYME) - for ssep in MCL_SOUS_EPAIS: - ssep.IDENL = ssep.ILONP/ssep['NB_ELEM_LONGI']*180./(pi*RC) - ssep.IDENC = ssep.ICIRP/ssep['NB_ELEM_CIRC']*180./(pi*RM) - if SYME=='QUART' : -# quart de structure - ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY\ - = ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM) - else : -# demi-structure ou entiere - ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY\ - = ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM) -# -# - loc_gibi=aster.repout() - logiel = EXEC_MAILLAGE['LOGICIEL' ] - UNITD = EXEC_MAILLAGE['UNITE_DATG'] - UNITP = EXEC_MAILLAGE['UNITE_MGIB'] - if logiel=='GIBI98' : logiel = loc_gibi+'gibi98' - elif logiel=='GIBI2000': logiel = loc_gibi+'gibi2000' - - else : - UTMESS('F', "MACR_ASCOUF_MAIL", "seuls gibi98 et gibi2000 sont appelables") -# -# --- ecriture sur le fichier .datg de la procedure --- -# -# Nom du fichier de commandes pour GIBI - nomFichierDATG = 'fort.'+str(UNITD) -# Nom du fichier de maillage GIBI - nomFichierGIBI = 'fort.'+str(UNITP) - loc_datg = aster.repdex() -# - if FISS_COUDE!=None: -# procedure coude fissure (MOT-CLE FISS_COUDE) - write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1, - TETA2,LTRAN,SUREP,LTCHAR,LTCLIM,TYPBOL,AXEAP,AXECP,NT,NS,NC,SFP, - ORIEN,AZIM,RC0,RC2,RC3,POSIT,EPSI,NIVMAG,SYME,loc_datg) - elif MCL_SOUS_EPAIS!=None : - if SOUS_EPAIS_MULTI==None : -# procedure coude sous-ep.: (MOT-CLE SOUS_EPAIS_COUDE) - write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2, - EPI,TETA1,MCL_SOUS_EPAIS,TETA2,LTRAN,LTCHAR,LTCLIM,GEOM, - SYME,NBEP,NLX,NLY,NIVMAG,SUREP,AZIMC,loc_datg) - write_file_pgib_ASCSQ2(MCL_SOUS_EPAIS,NLX,NLY) - else: -# procedure coude sous-ep.:(MOT-CLE SOUS_EPAIS_MULTI) - write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg) - write_file_pgib_ASCSDO(RM,RC,ALPHA,EP1,LTCLIM,LTCHAR,NBEP,SUREP, - NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS, - DNX,DNY,MCL_SOUS_EPAIS,GEOM,SYME) - write_file_pgib_ASCSP2(MCL_SOUS_EPAIS,NLX,NLY) - else: -# procedure coude regle - write_file_dgib_ASCRDO(nomFichierDATG,TYPELE,NIVMAG,TYPBOL,ALPHA,RC,RM,EP1,SUREP, - LTCLIM,LTCHAR,NBEP,loc_datg) - - -# GIBI - DEFI_FICHIER(ACTION='LIBERER',UNITE=19) - DEFI_FICHIER(ACTION='LIBERER',UNITE=20) - EXEC_LOGICIEL( LOGICIEL = logiel , - ARGUMENT = (nomFichierDATG, - nomFichierGIBI), ) -# PRE_GIBI - PRE_GIBI() - -# LIRE_MAILLAGE - __nomres=LIRE_MAILLAGE(INFO=INFO) - -# DEFI_GROUP 1 - - motscles={} - l_CREA_GROUP_NO=[] - l_CREA_GROUP_NO.append('BORD1') - l_CREA_GROUP_NO.append('CLGV') - l_CREA_GROUP_NO.append('BORD2') - l_CREA_GROUP_NO.append('PEAUINT') - l_CREA_GROUP_NO.append('PEAUEXT') - -# cas des fissures axisymetriques - if FISS_COUDE!=None: - if FISS_COUDE['AXIS']=='OUI': - motscles['CREA_GROUP_MA']=[] - motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS', - NOM = 'MAIL_ORI', - POSITION = 'INIT' , ),) - -# conversion des groupes de mailles en groupes du bloc fissure - if FISS_COUDE!=None: - if SYME == 'ENTIER': - l_CREA_GROUP_NO.append('NOLIG1') - l_CREA_GROUP_NO.append('FACE1') - l_CREA_GROUP_NO.append('NOLIG2') - l_CREA_GROUP_NO.append('FACE2') - l_CREA_GROUP_NO.append('FONDFISS') - - motscles['CREA_GROUP_NO']=[] - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=tuple(l_CREA_GROUP_NO))) - -# conversion des groupes de mailles en groupes de noeuds pour les -# ligaments des sous-ep. - if MCL_SOUS_EPAIS!=None: - issep=0 - for ssep in MCL_SOUS_EPAIS: - issep=issep+1 - if ssep['TYPE']=='ELLI': - for k in range(2*NLX[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='CIR'+chtmp - ch2='ICI'+chtmp - motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, - GROUP_MA = ch1,),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'IPCEN'+str(issep), - GROUP_MA = 'PCENT'+str(issep),),) - for k in range(2*NLY[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='LON'+chtmp - ch2='ILO'+chtmp - motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, - GROUP_MA = ch1,),) - for k in range(2*NLX[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='ICI'+chtmp - ch2='OCI'+chtmp - ch3='ECI'+chtmp - motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, - INTERSEC = ('PEAUEXT',ch1),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = ch3, - INTERSEC = ('PEAUINT',ch1),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'OPCEN'+str(issep), - INTERSEC = ('PEAUEXT','IPCEN'+str(issep),),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'EPCEN'+str(issep), - INTERSEC = ('PEAUINT','IPCEN'+str(issep),),),) - for k in range(2*NLY[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='ILO'+chtmp - ch2='OLO'+chtmp - ch3='ELO'+chtmp - motscles['CREA_GROUP_NO'].append(_F(NOM = ch2, - INTERSEC = ('PEAUEXT',ch1),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = ch3, - INTERSEC = ('PEAUINT',ch1),),) - for k in range(2*NLX[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='CIR'+chtmp - ch2='ICI'+chtmp - ch3='OCI'+chtmp - ch4='ECI'+chtmp - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = ch1, - GROUP_NO = ch2, - GROUP_NO_ORIG = ch3, - GROUP_NO_EXTR = ch4, - PRECISION = PRECIS, - CRITERE = CRITER,),) - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = 'PCENT'+str(issep), - GROUP_NO = 'IPCEN'+str(issep), - GROUP_NO_ORIG = 'OPCEN'+str(issep), - GROUP_NO_EXTR = 'EPCEN'+str(issep), - PRECISION = PRECIS, - CRITERE = CRITER,),) - for k in range(2*NLY[issep-1]+1): - chtmp=str(issep)+'_'+str(k+1) - ch1='LON'+chtmp - ch2='ILO'+chtmp - ch3='OLO'+chtmp - ch4='ELO'+chtmp - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = ch1, - GROUP_NO = ch2, - GROUP_NO_ORIG = ch3, - GROUP_NO_EXTR = ch4, - PRECISION = PRECIS, - CRITERE = CRITER,),) -# 1/ noms intermediaires des groupes de noeuds representant les ligaments -# des sections: TU,MI,GV et sous-ep. - for k in range(8): - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR3[k]+str(issep), - GROUP_MA = CAR6[k]+str(issep),),) - - for k in range(3): - if SYME == 'ENTIER' or k!=2: - for j in range(8): - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR3[j]+SECT[k], - GROUP_MA = CAR6[j]+SECT[k],),) - -# 2/ determination et nommage des noeuds origine et extremite des groupes de noeuds -# representant les ligaments de la ou des sections: sous-ep. - issep=0 - for ssep in MCL_SOUS_EPAIS: - issep=issep+1 - for k in range(8): - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR4[k]+str(issep), - INTERSEC = ('PEAUEXT',CAR3[k]+str(issep),),),) - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR5[k]+str(issep), - INTERSEC = ('PEAUINT',CAR3[k]+str(issep),),),) -# 3/ nommage final des groupes de noeuds representant les ligaments -# de la ou des sections: sous-ep. - for k in range(8): - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = CAR6[k]+str(issep), - GROUP_NO = CAR3[k]+str(issep), - GROUP_NO_ORIG = CAR4[k]+str(issep), - GROUP_NO_EXTR = CAR5[k]+str(issep), - PRECISION = PRECIS, - CRITERE = CRITER,),) - -# 4/ determination et nommage des noeuds origine et extremite des groupes de noeuds -# representant les ligaments des sections: TU,MI,GV - for k in range(3): - if SYME == 'ENTIER' or k!=2: - for j in range(8): - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR4[j]+SECT[k], - INTERSEC = ('PEAUEXT',CAR3[j]+SECT[k],),),) - motscles['CREA_GROUP_NO'].append(_F( NOM = CAR5[j]+SECT[k], - INTERSEC = ('PEAUINT',CAR3[j]+SECT[k],),),) -# 5/ nommage final des groupes de noeuds representant les ligaments des sections: TU,MI,GV - for j in range(8): - motscles['CREA_GROUP_NO'].append(_F(OPTION = 'SEGM_DROI_ORDO', - NOM = CAR6[j]+SECT[k], - GROUP_NO = CAR3[j]+SECT[k], - GROUP_NO_ORIG = CAR4[j]+SECT[k], - GROUP_NO_EXTR = CAR5[j]+SECT[k], - PRECISION = PRECIS, - CRITERE = CRITER,),) - - - __nomres=DEFI_GROUP(reuse =__nomres, - MAILLAGE=__nomres, - **motscles ) -# -# DEFI_GROUP 2 - if FISS_COUDE!=None: -# creation des groupes petit axe et grand axe fissure par -# intersection de groupes existants - motscles={} - motscles['CREA_GROUP_NO']=[] - l_peau=[] - l_intersec=[] - if POSIT == 'DEB_INT': - l_peau.append('PEAUINT') - else: - l_peau.append('PEAUEXT') - - if SYME == 'ENTIER' : - l_intersec.append('FACE1') - motscles['CREA_GROUP_NO'].append(_F(NOM = 'P_AXE_1', - INTERSEC = ('NOLIG1','FACE1'),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'G_AXE_1', - INTERSEC = tuple(l_peau+l_intersec),),) - l_intersec=[] - l_intersec.append('FACE2') - motscles['CREA_GROUP_NO'].append(_F(NOM = 'P_AXE_2', - INTERSEC = ('NOLIG2','FACE2'),),) - motscles['CREA_GROUP_NO'].append(_F(NOM = 'G_AXE_2', - INTERSEC = tuple(l_peau+l_intersec),),) - - __nomres=DEFI_GROUP(reuse =__nomres, - MAILLAGE=__nomres, - **motscles ) - -# MODI_MAILLAGE 1 - motscles={} - if GEOM == 'COUDE': - motscles['TUBE_COUDE']=[] - motscles['TUBE_COUDE'].append(_F(ANGLE=ALPHA, - R_CINTR=RC, - L_TUBE_P1=LTCHAR),) - motscles['PLAQ_TUBE']=[] - D_PLAQ_TUBE={} - D_PLAQ_TUBE['DEXT']=DEXT - D_PLAQ_TUBE['EPAIS']=EP1 - D_PLAQ_TUBE['L_TUBE_P1']=LTCHAR - if SYME == 'QUART' : D_PLAQ_TUBE['COUTURE']='NON' - if FISS_COUDE!=None: - D_PLAQ_TUBE['AZIMUT']=AZIM - elif SOUS_EPAIS_COUDE!=None : - D_PLAQ_TUBE['AZIMUT']=MCL_SOUS_EPAIS[0].IPHIC - else:pass - motscles['PLAQ_TUBE'].append(_F(**D_PLAQ_TUBE),) - __nomres=MODI_MAILLAGE( reuse =__nomres, - MAILLAGE=__nomres, - **motscles ) - -# MODI_MAILLAGE 2 - motscles={} - motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXTUBE'),) - if FISS_COUDE!=None: - if FISS_COUDE['FISSURE'] == 'DEB_INIT': - motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXTUBE','FACE1','FACE2'),) - __nomres=MODI_MAILLAGE(reuse =__nomres, - MAILLAGE=__nomres, - **motscles) - -# CREA_MAILLAGE - self.DeclareOut('nomre2',self.sd) - motscles={} - motscles['CREA_POI1']=[] - motscles['CREA_POI1'].append(_F(NOM_GROUP_MA='P1', - GROUP_NO='P1'),) - if TYPBOL == None : - motscles['CREA_POI1'].append(_F(NOM_GROUP_MA='P2', - GROUP_NO='P2'),) - nomre2=CREA_MAILLAGE( MAILLAGE=__nomres, - **motscles) - - -# IMPRESSSION - if IMPRESSION!=None: - if IMPRESSION.__class__.__name__ !='MCList' : IMPRESSION =[IMPRESSION,] - for impr in IMPRESSION : -# - motscles={} - if impr['FORMAT']=='IDEAS' : motscles['VERSION'] =impr['VERSION'] - if impr['FORMAT']=='CASTEM' : motscles['NIVE_GIBI'] =impr['NIVE_GIBI'] - if impr['UNITE']!=None : motscles['UNITE'] =impr['UNITE'] - impr_resu = _F( MAILLAGE = nomre2,) -# - IMPR_RESU( RESU = impr_resu, - FORMAT= impr['FORMAT'],**motscles) - - - - return ier - - diff --git a/Aster/Cata/cataSTA8/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA8/Macro/macr_aspic_calc_ops.py deleted file mode 100644 index 9229d58a..00000000 --- a/Aster/Cata/cataSTA8/Macro/macr_aspic_calc_ops.py +++ /dev/null @@ -1,797 +0,0 @@ -#@ MODIF macr_aspic_calc_ops Macro DATE 03/10/2007 AUTEUR SALMONA L.SALMONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM, - FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,AFFE_MATERIAU,EQUILIBRE, - PRES_REP,ECHANGE,TORS_CORP,TORS_TUBU,COMP_INCR,COMP_ELAS, - THETA_3D,OPTION,SOLVEUR,CONVERGENCE,NEWTON,RECH_LINEAIRE, - INCREMENT,PAS_AZIMUT,IMPRESSION,INFO,TITRE,BORNES ,**args): - """ - Ecriture de la macro MACR_ASPIC_CALC - """ - from Accas import _F - import types - from Utilitai.Utmess import UTMESS - ier=0 -#------------------------------------------------------------------ - # On recopie le mot cle affe_materiau pour le proteger - mc_AFFE_MATERIAU=AFFE_MATERIAU -#------------------------------------------------------------------ - # On importe les definitions des commandes a utiliser dans la macro - AFFE_MODELE =self.get_cmd('AFFE_MODELE' ) - AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU' ) - AFFE_CARA_ELEM =self.get_cmd('AFFE_CARA_ELEM' ) - AFFE_CHAR_THER_F =self.get_cmd('AFFE_CHAR_THER_F') - THER_LINEAIRE =self.get_cmd('THER_LINEAIRE' ) - AFFE_CHAR_MECA =self.get_cmd('AFFE_CHAR_MECA' ) - STAT_NON_LINE =self.get_cmd('STAT_NON_LINE' ) - CALC_ELEM =self.get_cmd('CALC_ELEM' ) - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T' ) - IMPR_TABLE =self.get_cmd('IMPR_TABLE' ) - POST_RCCM =self.get_cmd('POST_RCCM' ) - DEFI_FOND_FISS =self.get_cmd('DEFI_FOND_FISS' ) - CALC_THETA =self.get_cmd('CALC_THETA' ) - CALC_G =self.get_cmd('CALC_G' ) - IMPR_RESU =self.get_cmd('IMPR_RESU' ) - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - -#------------------------------------------------------------------ -# data - GRMAIL= ('EQUERRE','PEAUINT','EXCORP1','EXCORP2','EXTUBU','LEVRTUBU','LEVRCORP') - NOMNOE= ('P1_CORP','P2_CORP','P_TUBU ') - IMPRT1= ('NUME_ORDRE','INTITULE','RESU' ,'NOM_CHAM', - 'ABSC_CURV' ,'COOR_X' ,'COOR_Y','COOR_Z' , - 'SIXX' ,'SIXY' ,'SIXZ' ) - IMPRT2= ('NUME_ORDRE','INTITULE','RESU' ,'NOM_CHAM', - 'ABSC_CURV' ,'COOR_X' ,'COOR_Y','COOR_Z' , - 'SIYY' ,'SIXY' ,'SIYZ' ) - IMPRT3= ('NUME_ORDRE','INTITULE','RESU' ,'NOM_CHAM', - 'ABSC_CURV' ,'COOR_X' ,'COOR_Y','COOR_Z' , - 'TEMP' ) - APPRES= ('PEAUINT ','LEVRTUBU','LEVRCORP') -#------------------------------------------------------------------ -# - i=0 - for mate in mc_AFFE_MATERIAU: - if mate['RCCM']=='OUI' : - i=i+1 - MRCCM=mate['MATER'] - if i>1 : - UTMESS('E', "MACR_ASPIC_CALC", "vous affectez plus d un materiau contenant l option rccm") -# - if (TYPE_MAILLAGE[:4]=='SAIN') and (TUBULURE==None) : - UTMESS('E', "MACR_ASPIC_CALC", "pour les piquages sains, TUBULURE doit etre renseigne") -# - if EQUILIBRE['NOEUD'] not in ('P1_CORP','P2_CORP') : - UTMESS('E', "MACR_ASPIC_CALC", "EQUILIBRE[NOEUD] : on attend P1_CORP ou P2_CORP") -# - if PRES_REP['EFFE_FOND']=='OUI' : - if PRES_REP['NOEUD']==None : - UTMESS('E', "MACR_ASPIC_CALC", "il faut preciser un noeud pour EFFE_FOND") - if PRES_REP['NOEUD'] not in ('P1_CORP','P2_CORP') : - UTMESS('E', "MACR_ASPIC_CALC", "PRES_REP[NOEUD] : on attend P1_CORP ou P2_CORP") - if PRES_REP['NOEUD']==EQUILIBRE['NOEUD'] : - UTMESS('E', "MACR_ASPIC_CALC", "on ne peut appliquer un EFFE_FOND sur PRES_REP[NOEUD] car ce noeud est bloque") -# - if TORS_CORP!=None : - for tors in TORS_CORP : - if tors['NOEUD'] not in ('P1_CORP','P2_CORP') : - UTMESS('E', "MACR_ASPIC_CALC", "TORS_CORP[NOEUD] : on attend P1_CORP ou P2_CORP") - if tors['NOEUD']==EQUILIBRE['NOEUD'] : - UTMESS('E', "MACR_ASPIC_CALC", "on ne peut appliquer un torseur sur TORS_CORP[NOEUD] car ce noeud est bloque") -# - if (TYPE_MAILLAGE[:4]=='SAIN') and (THETA_3D!=None) : - UTMESS('E', "MACR_ASPIC_CALC", "si TYPE_MAILLAGE SAIN : mecanique de la rupture impossible") -# - if OPTION in ('CALC_G_MAX','CALC_G_MAX_LOCAL') : - if BORNES==None : - UTMESS('E', "MACR_ASPIC_CALC", "mot-clef 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' ]=='OUI' : - 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 (3D GLOBAL) --- -# - montit = 'G_THETA AVEC R_INF = '+str(tht3d['R_INF'])+' ET R_SUP = '+str(tht3d['R_SUP']) - motscles={} - if COMP_ELAS!=None: motscles['COMP_ELAS']= _F(TOUT = 'OUI', - RELATION = COMP_ELAS['RELATION'],) - if COMP_INCR!=None: motscles['COMP_INCR']= _F(RELATION = COMP_INCR['RELATION'],) - __gtheta = CALC_G ( THETA = _F(THETA=__theta), - OPTION = 'CALC_G_GLOB', - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - TITRE = montit,**motscles) - IMPR_TABLE(TABLE = __gtheta, ) -# -# recherche du g max -# - if OPTION=='CALC_G_MAX' : - if BORNES!=None: - mcfact=[] - for born in BORNES : - mcfact.append(_F( NUME_ORDRE = born['NUME_ORDRE'] , - VALE_MIN = born['VALE_MIN' ] , - VALE_MAX = born['VALE_MAX' ] ) ) - __gbil = CALC_G( THETA = _F(THETA=__theta), - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - COMP_ELAS = _F(TOUT = 'OUI', - RELATION = COMP_ELAS['RELATION'],), - TITRE = montit, - OPTION = 'G_MAX_GLOB', - BORNES = mcfact,) - IMPR_TABLE(TABLE = __gbil, ) -# -# --- commande CALC_G (3D LOCAL) --- -# - montit = 'G_LOCAL AVEC R_INF = '+str(tht3d['R_INF'])+' ET R_SUP = '+str(tht3d['R_SUP']) - motscles={} - if COMP_ELAS!=None: motscles['COMP_ELAS' ]= _F(TOUT = 'OUI', - RELATION = COMP_ELAS['RELATION'],) - if FERME: - motscles['LISSAGE']=_F(LISSAGE_THETA= 'LAGRANGE', - LISSAGE_G= 'LAGRANGE',) - __glocal = CALC_G( THETA=_F( FOND_FISS = fond3d[j], - R_INF = tht3d['R_INF'], - R_SUP = tht3d['R_SUP'],), - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - TITRE = montit,**motscles) - IMPR_TABLE(TABLE = __glocal, ) -# -# recherche du g max local -# - if OPTION=='CALC_G_MAX_LOCAL' : - if BORNES!=None: - motscles={} - mcfact=[] - if FERME: - motscles['LISSAGE']=_F(LISSAGE_THETA= 'LAGRANGE', - LISSAGE_G= 'LAGRANGE',) - for born in BORNES : - mcfact.append(_F( NUME_ORDRE = born['NUME_ORDRE'] , - VALE_MIN = born['VALE_MIN' ] , - VALE_MAX = born['VALE_MAX' ] ) ) - motscles['BORNES']=mcfact - __glbil = CALC_G( THETA=_F( FOND_FISS = fond3d[j], - R_INF = tht3d['R_INF'], - R_SUP = tht3d['R_SUP'],), - RESULTAT = nomres, - TOUT_ORDRE = 'OUI', - COMP_ELAS = _F(TOUT = 'OUI', - RELATION = COMP_ELAS['RELATION'],), - TITRE = montit, - OPTION = 'G_MAX',**motscles) - IMPR_TABLE(TABLE = __glbil, ) -# -# --- commande IMPR_RESU --- -# - if IMPRESSION!=None: - mcfresu =[] - motscles={} - motsclei={} - if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : - ncham =[] - if IMPRESSION['NOM_CHAM']!=None : - if type(IMPRESSION['NOM_CHAM']) in (types.TupleType,types.ListType) : ncham= IMPRESSION['NOM_CHAM'] - else : ncham=[IMPRESSION['NOM_CHAM'],] - if len(ncham)==3 : motscles['NOM_CHAM' ]=('DEPL','EQUI_ELNO_SIGM') - elif (len(ncham)==1) and (ncham[0][:4]!='TEMP') : - motscles['NOM_CHAM' ]= ncham[0] - elif (len(ncham)==2) and (ncham[0][:4]!='TEMP') and (ncham[1][:4]!='TEMP') : - motscles['NOM_CHAM' ]=(ncham[0],ncham[1]) - elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[1] - elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0] - if IMPRESSION['TOUT_ORDRE']!=None : - motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] - elif IMPRESSION['NUME_ORDRE']!=None : - motscles['NUME_ORDRE']= IMPRESSION['NUME_ORDRE'] - elif IMPRESSION['INST']!=None : - motscles['INST' ]= IMPRESSION['INST'] - if IMPRESSION['FORMAT']=='IDEAS' : - motsclei['VERSION' ]= IMPRESSION['VERSION'] - if IMPRESSION['FORMAT']=='CASTEM' : - motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] - mcfresu.append(_F(MAILLAGE=MAILLAGE,RESULTAT=nomres,**motscles)) - if ECHANGE!=None: - motscles={} - if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : - if len(ncham)==3 : motscles['NOM_CHAM' ]=('TEMP',) - elif (len(ncham)==1) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0] - elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0] - elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[1] - if IMPRESSION['TOUT_ORDRE']!=None : - motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] - elif IMPRESSION['NUME_ORDRE']!=None : - motscles['NUME_ORDRE']= IMPRESSION['NUME_ORDRE'] - elif IMPRESSION['INST']!=None : - motscles['INST' ]= IMPRESSION['INST'] - if IMPRESSION['FORMAT']=='IDEAS' : - motsclei['VERSION' ]= IMPRESSION['VERSION'] - if IMPRESSION['FORMAT']=='CASTEM' : - motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] - mcfresu.append(_F(RESULTAT=resuth,**motscles)) - IMPR_RESU( MODELE = modele, - RESU = mcfresu, - FORMAT=IMPRESSION['FORMAT'],**motsclei) -# - return ier diff --git a/Aster/Cata/cataSTA8/Macro/macr_aspic_mail_ops.py b/Aster/Cata/cataSTA8/Macro/macr_aspic_mail_ops.py deleted file mode 100644 index cd7ea66d..00000000 --- a/Aster/Cata/cataSTA8/Macro/macr_aspic_mail_ops.py +++ /dev/null @@ -1,917 +0,0 @@ -#@ MODIF macr_aspic_mail_ops Macro DATE 07/05/2008 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -import os.path -from math import sqrt, cos, sin, pi, pow, tan - -# Ecriture du fichier GIBI principal (dgib) - ASPID0 -def write_file_dgib_ASPID0(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, - ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, THETA, TYPELE, - ITYPSO, DPENE, NIVMAG, loc_datg): - import aster -# Ouverture du fichier d'entrée de commandes - fdgib=open(nomFichierDATG,'w') - texte = """ -**************************************************************** -opti echo 0; -epT1 = %s; -DeT1 = %s; -d1 = %s; -d2 = %s; -epT2 = %s; -DeT2 = %s; -Zmax = %s; -type_s = %s; -d_pene = %s; -h = %s; -angl_s = %s; -jeu = %s; -epC = %s; -DeC = %s; -Xmax = %s; -typmai = MOT %s; -theta = %s; -typele = MOT %s; -typ_eque = MOT SAINE; -nivmag = %s; -**************************************************************** -""" % (EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, ITYPSO, DPENE, H, - ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, THETA, TYPELE, NIVMAG) - aster.affiche('MESSAGE',texte + ' + aspic.datg...\n') - texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read() - fdgib.write(texte) - fdgib.close() - -# Ecriture du fichier GIBI principal (dgib) - ASPID1 -def write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, - ALPHA, JEU, EPC, DEC, XMAX, TYPMAI,THETA, - A,C,EPS, RC0, NS,NC,NT,POSI, NDT,FETIRF,FETIRP, - TFISS,ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) : - - import aster -# Ouverture du fichier d'entrée de commandes - fdgib=open(nomFichierDATG,'w') - POIVIR = ' ; \n' - texte='****************************************************************\n' - texte=texte+'opti echo 0 ; \n' - texte=texte+'epT1 = '+str(EPT1) +POIVIR - texte=texte+'DeT1 = '+str(DET1) +POIVIR - texte=texte+'d1 = '+str(D1) +POIVIR - texte=texte+'d2 = '+str(D2) +POIVIR - texte=texte+'epT2 = '+str(EPT2) +POIVIR - texte=texte+'DeT2 = '+str(DET2) +POIVIR - texte=texte+'Zmax = '+str(ZMAX) +POIVIR - texte=texte+'type_s = '+str(ITYPSO) +POIVIR - texte=texte+'d_pene = '+str(DPENE) +POIVIR - texte=texte+'h = '+str(H) +POIVIR - texte=texte+'angl_s = '+str(ALPHA) +POIVIR - texte=texte+'jeu = '+str(JEU) +POIVIR - texte=texte+'epC = '+str(EPC) +POIVIR - texte=texte+'DeC = '+str(DEC) +POIVIR - texte=texte+'Xmax = '+str(XMAX) +POIVIR - texte=texte+'typmai = MOT '+TYPMAI +POIVIR - texte=texte+'theta = '+str(THETA) +POIVIR - texte=texte+'a = '+str(A) +POIVIR - texte=texte+'c = '+str(C) +POIVIR - texte=texte+'zeta = '+str(ZETA) +POIVIR - texte=texte+'eps = '+str(EPS) +POIVIR - texte=texte+'rc0 = '+str(RC0) +POIVIR - texte=texte+'ns = '+str(NS) +POIVIR - texte=texte+'nc = '+str(NC) +POIVIR - texte=texte+'nt = '+str(NT) +POIVIR - texte=texte+'dir_fiss = MOT '+POSI +POIVIR - texte=texte+'pos_fiss = MOT '+TFISS +POIVIR - texte=texte+'ndt = '+str(NDT) +POIVIR - texte=texte+'f_etir_f = '+str(FETIRF) +POIVIR - texte=texte+'f_etir_p = '+str(FETIRP) +POIVIR - texte=texte+'typ_eque = MOT '+'FISS_LON' +POIVIR - texte=texte+'nivmag = '+str(NIVMAG) +POIVIR - texte=texte+'* \n' - aster.affiche('MESSAGE',texte + ' + aspic_v2.datg...\n') - texte = texte + open(os.path.join(loc_datg, 'aspic_v2.datg'), 'r').read() - fdgib.write(texte) - fdgib.close() - -# Ecriture du fichier GIBI principal (dgib) - ASPID2 -def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, - H, ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, - THETA, A, C, EPS, RC0, RC1, RC2, RC3, - ALP,BETA, NS, NC, NT, POSI ,NDT,NSDT,TFISS, - ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) : -# - import aster - CALPHA = cos(ALPHA*pi/180.) - SALPHA = sin(ALPHA*pi/180.) - CTHETA = cos(THETA*pi/180.) - STHETA = sin(THETA*pi/180.) -# - AOLD = A -# - if (ITYPSO == 1) : -# PIQUAGE TYPE 1 - if (POSI == 'DROIT') : -# PIQUAGE DROIT - if (TFISS == 'DEB_INT') : -# POSITION INTERNE - SGAMMA = STHETA * (DET1/2.0)/( (DEC/2.0) -EPC) - SGAMME = STHETA * (DET1/2.0)/( (DEC/2.0) ) - RAPPA = sqrt(1.0 - pow(SGAMMA,2)) - RAPPE = sqrt(1.0 - pow(SGAMME,2)) - AP = A - (1.0 - RAPPA)*A - RAPP = (AP/EPC*RAPPE) + (1.0-(AP/EPC))*RAPPA - XA = (DET1/2.0) * CTHETA - YA = (DET1/2.0) * STHETA - ZA = ((DEC/2.0) -EPC) * sqrt(1.0 - pow(SGAMMA,2)) - ZA0 = (DEC/2.0) - EPC - XA0 = DET1/2.0 - XN0 = XA0 - YN0 = 0.0 - ZN0 = ZA0 + A - XN = XN0 * CTHETA - YN = XN0 * STHETA - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - (SGAMN*SGAMN)) - D0N0 = sqrt( pow((XA0 - XN0),2) + pow((ZA0 - ZN0),2) ) - DN = sqrt( pow((XA - XN),2) + pow((YA - YN),2) + pow((ZA - ZN),2) ) - RAPP = D0N0 / DN - ECART = (1.0 - RAPP) * D0N0 - A = A - ECART - elif (TFISS == 'DEB_EXT') : -# POSITION EXTERNE - SGAMME = STHETA * (DET1/2.0)/ (DEC/2.0) - RAPPE = sqrt(1.0 - pow(SGAMME,2)) - A = A -(1.0 - RAPPE)*A - - elif (POSI == 'INCLINE') : -# PIQUAGE INCLINE - SGAMMA = STHETA * (DET1/2.0)/ ( (DEC/2.0) -EPC) - XA = (DET1/2.0) * CTHETA - YA = (DET1/2.0) * STHETA - ZA = ((DEC/2.0) - EPC) * sqrt(1.0 - pow(SGAMMA,2)) - ZA0 = (DEC/2.0) - EPC - ZD0 = DEC/2.0 - XA0 = DET1/2.0 - XD0 = XA0 + (tan(ALPHA*pi/180.0) * EPC) - A0D0 = sqrt( pow((ZD0 - ZA0),2) + pow((XD0 - XA0),2) ) - EPSIL = STHETA * tan(ALPHA*pi/180.0) - PHI = (EPSIL * ZA) - YA - DELTA = pow(PHI,2) - ((1 + pow(EPSIL,2))*(pow(PHI,2) - (pow((DEC/2.0),2)*pow(EPSIL,2)))) - if (STHETA > 0) : - YD = ( sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) - else : - YD = ( -1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) - - ZD = sqrt(pow((DEC/2.0),2) - pow(YD,2)) - - if ( (abs(THETA - 0.0) < 1.e-3) or ((abs(THETA - 180.0)) < 1.e-3) ) : - XD = CTHETA * XD0 - else : - XD = YD / tan(THETA*pi/180.0) - - AD = sqrt( pow((XA - XD),2) + pow((YA - YD),2) + pow((ZA - ZD),2) ) - RAPP = A0D0 / AD - - if (TFISS == 'DEB_EXT') : - XN0 = XD0 - A*SALPHA - YN0 = 0.0 - ZN0 = ZD0 - A*CALPHA - XN = XN0 * CTHETA - YN = XN0 * STHETA - DNXY = sqrt(pow(XD,2) + pow(YD,2)) - sqrt(pow(XN,2) + pow(YN,2)) - DNXY0 = XD0 - XN0 - RAPP = DNXY/DNXY0 - # Correction necessaire dans le cas theta et/ou alpha grand - if (RAPP < 0.5) : - DXY = sqrt(pow(XD,2) + pow(YD,2) ) - XN = XN * DXY/XD0 - YN = YN * DXY/XD0 - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - D0N0 = sqrt( pow((XD0 - XN0),2) + pow((ZD0 - ZN0),2) ) - DN = sqrt( pow((XD - XN),2) + pow((YD - YN),2) + pow((ZD - ZN),2) ) - RAPP = D0N0 / DN - ECART = (RAPP - 1.0) * D0N0 - A = A + ECART - - if (TFISS == 'DEB_INT') : - XN0 = XA0 + A*SALPHA - YN0 = 0.0 - ZN0 = ZA0 + A*CALPHA - XN = XN0 * CTHETA - YN = XN0 * STHETA - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - D0N0 = sqrt( pow((XA0 - XN0),2) + pow((ZA0 - ZN0),2) ) - DN = sqrt( pow((XA - XN),2) + pow((YA - YN),2) + pow((ZA - ZN),2) ) - RAPP = D0N0 / DN - ECART = (RAPP - 1.0) * D0N0 - # Correction necessaire dans le cas theta grand (cf. AL9679) - if ( abs(STHETA) > 0.8) : - DXY = sqrt(pow(XD,2) + pow(YD,2) ) - XN = XN * DXY/XD0 - YN = YN * DXY/XD0 - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - D0N0 = sqrt( pow((XA0 - XN0),2) + pow((ZA0 - ZN0),2) ) - DN = sqrt( pow((XA - XN),2) + pow((YA - YN),2) + pow((ZA - ZN),2) ) - RAPP = D0N0 / DN - ECART = (ECART + (RAPP - 1.0) * D0N0)/2 - A = A + ECART - - - elif (ITYPSO == 2) : -# PIQUAGE TYPE 2 - if (POSI == 'DROIT') : -# PIQUAGE DROIT - SGAMMI = STHETA * ((DET1/2.0) - EPT1)/(DEC/2.0) - XI = ((DET1/2.0) - EPT1) * CTHETA - YI = ((DET1/2.0) - EPT1) * STHETA - ZI = (DEC/2.0) * sqrt(1.0 - pow(SGAMMI,2)) - XI0 = (DET1/2.0) -EPT1 - YI0 = 0.0 - ZI0 = (DEC/2.0) - - SGAMMA = STHETA * (DET1/2.0)/((DEC/2.0) -EPC) - YA = (DET1/2.0) * STHETA - ZA = ((DEC/2.0) - EPC) * sqrt(1.0 - pow(SGAMMA,2)) - TGALP = H / EPC - EPSIL = STHETA * TGALP - PHI = (EPSIL * ZA) - YA - DELTA = pow(PHI,2) - (1.0 + pow(EPSIL,2))*(pow(PHI,2) - pow((DEC/2.0),2)*pow(EPSIL,2)) - if (STHETA > 0) : - YD = (sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) - else : - YD = (-1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) - - ZD = sqrt( pow((DEC/2.0),2) - pow(YD,2) ) - if ( (abs(THETA - 0.0) < 1.0e-3) or - (abs(THETA - 180.0) < 1.0e-3) or - (abs(THETA + 180.0) < 1.0e-3) or - (abs(THETA + 90.0) < 1.0e-3) or - (abs(THETA - 90.0) < 1.0e-3) ) : - XD = CTHETA * ((DET1/2.0) + H) - else : - XD = YD / (tan(THETA*pi/180.0)) - - XD0 = (DET1/2.0) + H - YD0 = 0.0 - ZD0 = (DEC/2.0) - - if (TFISS == 'DEB_EXT') : - XN0 = XD0 - A - YN0 = 0.0 - ZN0 = ZI0 - XN = XN0 * CTHETA - YN = XN0 * STHETA - DZID = abs(ZI - ZD) - DXYID = sqrt( pow((XD - XI),2) + pow((YD - YI),2) ) - DXYIN = sqrt( pow((XN - XI),2) + pow((YN - YI),2) ) - DZIN = (DXYIN * DZID) / DXYID - ZN = ZI - DZIN - D0N0 = sqrt( pow((XD0 - XN0),2) + pow((ZD0 - ZN0),2) ) - DN = sqrt( pow((XD - XN),2) + pow((YD - YN),2) + pow((ZD - ZN),2) ) - RAPP = D0N0 / DN - ECART = DN - D0N0 - A = A - ECART - - if (TFISS == 'DEB_INT') : - XN0 = XI0 + A - YN0 = 0.0 - ZN0 = ZI0 - XN = XN0 * CTHETA - YN = XN0 * STHETA - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - I0N0 = sqrt( pow((XI0 - XN0),2) + pow((ZI0 - ZN0),2) ) - IN = sqrt( pow((XI - XN),2) + pow((YI - YN),2) + pow((ZI - ZN),2) ) - RAPP = I0N0 / IN - ECART = I0N0 * ( 1.0 - RAPP ) - A = A - ECART - - elif (POSI == 'INCLINE') : -# PIQUAGE INCLINE - TGALPHA = SALPHA/CALPHA - REPB = (DEC/2.0) + JEU + (EPT1*TGALPHA) - SGAMB = (STHETA * DET1/2.0 ) / REPB - CGAMB = sqrt(1.0 - pow(SGAMB,2)) - XB = (DET1/2.0) * CTHETA - YB = (DET1/2.0) * STHETA - ZB = ( (DEC/2.0) + JEU + (EPT1*TGALPHA) ) * CGAMB - XB0 = (DET1/2.0) - YB0 = 0.0 - ZB0 = (DEC/2.0) + JEU + (EPT1*TGALPHA) -# - RIT1 = (DET1/2.0) - EPT1 - REPG = (DEC/2.0) + JEU - SGAMG = ((STHETA ) * RIT1) / REPG - CGAMG = sqrt(1.0 - pow(SGAMG,2)) - XG = RIT1 * CTHETA - YG = RIT1 * STHETA - ZG = ((DEC/2.0) + JEU) * CGAMG - XG0 = RIT1 - YG0 = 0.0 - ZG0 = (DEC/2.0) + JEU -# - if (TFISS == 'DEB_INT') : - XN0 = XG0 + A*CALPHA - YN0 = 0.0 - ZN0 = ZG0 + A*SALPHA - XN = XN0 * CTHETA - YN = XN0 * STHETA - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - G0N0 = sqrt( pow((XG0 - XN0),2) + pow((ZG0 - ZN0),2) ) - GN = sqrt( pow((XG - XN),2) + pow((YG - YN),2) + pow((ZG - ZN),2) ) - RAPP = G0N0 / GN - ECART = (RAPP - 1.0) * G0N0 - A = A + ECART - - if (TFISS == 'DEB_EXT') : - XN0 = XB0 - A*CALPHA - YN0 = 0.0 - ZN0 = ZB0 - A*SALPHA - XN = XN0 * CTHETA - YN = XN0 * STHETA - SGAMN = YN / ZN0 - ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) - B0N0 = sqrt( pow((XB0 - XN0),2) + pow((ZB0 - ZN0),2) ) - BN = sqrt( pow((XB - XN),2) + pow((YB - YN),2) + pow((ZB - ZN),2) ) - RAPP = B0N0 / BN - ECART = (RAPP - 1.0) * B0N0 - A = A + ECART - - message= ' CORRECTION PROFONDEUR DEFAUT \n' - message=message+ ' PROFONDEUR SUR PIQUAGE : %.2f \n'%AOLD - message=message+ ' PROFONDEUR SUR EQUERRE : %.2f \n'%A - aster.affiche('MESSAGE',message) - -# Ouverture du fichier d'entrée de commandes - - fdgib=open(nomFichierDATG,'w') - POIVIR = ' ; \n' - texte='****************************************************************\n' - texte=texte+'opti echo 0 ; \n' - texte=texte+'epT1 = '+str(EPT1) +POIVIR - texte=texte+'DeT1 = '+str(DET1) +POIVIR - texte=texte+'d1 = '+str(D1) +POIVIR - texte=texte+'d2 = '+str(D2) +POIVIR - texte=texte+'epT2 = '+str(EPT2) +POIVIR - texte=texte+'DeT2 = '+str(DET2) +POIVIR - texte=texte+'Zmax = '+str(ZMAX) +POIVIR - texte=texte+'type_s = '+str(ITYPSO) +POIVIR - texte=texte+'d_pene = '+str(DPENE) +POIVIR - texte=texte+'h = '+str(H) +POIVIR - texte=texte+'angl_s = '+str(ALPHA) +POIVIR - texte=texte+'jeu = '+str(JEU) +POIVIR - texte=texte+'epC = '+str(EPC) +POIVIR - texte=texte+'DeC = '+str(DEC) +POIVIR - texte=texte+'Xmax = '+str(XMAX) +POIVIR - texte=texte+'typmai = MOT '+TYPMAI +POIVIR - texte=texte+'theta = '+str(THETA) +POIVIR - texte=texte+'a = '+str(A) +POIVIR - texte=texte+'c = '+str(C) +POIVIR - texte=texte+'zeta = '+str(ZETA) +POIVIR - texte=texte+'eps = '+str(EPS) +POIVIR - texte=texte+'rc0 = '+str(RC0) +POIVIR - texte=texte+'rc1 = '+str(RC1) +POIVIR - texte=texte+'rc2 = '+str(RC2) +POIVIR - texte=texte+'rc3 = '+str(RC3) +POIVIR - texte=texte+'alpha = '+str(ALP) +POIVIR - texte=texte+'beta = '+str(BETA) +POIVIR - texte=texte+'ns = '+str(NS) +POIVIR - texte=texte+'nc = '+str(NC) +POIVIR - texte=texte+'nt = '+str(NT) +POIVIR - texte=texte+'dir_fiss = MOT '+POSI +POIVIR - texte=texte+'pos_fiss = MOT '+TFISS +POIVIR - texte=texte+'ndt = '+str(NDT) +POIVIR - texte=texte+'nsdt = '+str(NSDT) +POIVIR - texte=texte+'typ_eque = MOT '+'FISS_COU' +POIVIR - texte=texte+'nivmag = '+str(NIVMAG) +POIVIR - texte=texte+'* \n' - texte=texte+'list epc ;\n' - aster.affiche('MESSAGE',texte + ' + aspic.datg...\n') - texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read() - fdgib.write(texte) - fdgib.close() - -def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, - SOUDURE,CORPS,FISS_SOUDURE,IMPRESSION,INFO, - **args): - """ - Ecriture de la macro MACR_ASPIC_MAIL - """ - from Accas import _F - import types - import aster - from Utilitai.Utmess import UTMESS - ier=0 - -# On importe les definitions des commandes a utiliser dans la macro - EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL') - PRE_GIBI =self.get_cmd('PRE_GIBI') - LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') - DEFI_GROUP =self.get_cmd('DEFI_GROUP') - MODI_MAILLAGE =self.get_cmd('MODI_MAILLAGE') - CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE') - IMPR_RESU =self.get_cmd('IMPR_RESU') - DEFI_FICHIER =self.get_cmd('DEFI_FICHIER') - -# La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - TYPELE = TYPE_ELEM - NIVMAG = EXEC_MAILLAGE['NIVE_GIBI'] -# -# --- raffinement maillage --- -# - TYPMAI = RAFF_MAIL - GROS = (TYPMAI=='GROS') - if GROS : NBAZIT = 40 - else : NBAZIT = 48 -# -# --- caracteristiques de la tubulure --- -# - EPT1 = TUBULURE['E_BASE' ] - DET1 = TUBULURE['DEXT_BASE'] - D1 = TUBULURE['L_BASE' ] - D2 = TUBULURE['L_CHANF' ] - EPT2 = TUBULURE['E_TUBU' ] - DET2 = TUBULURE['DEXT_TUBU'] - ZMAX = TUBULURE['Z_MAX' ] - TYPSOU= TUBULURE['TYPE' ] - DPENE = TUBULURE['L_PENETR' ] - if TYPSOU=='TYPE_2' and DPENE>0.0 : - UTMESS('F', "MACR_ASPIC_MAIL", "les piquages penetrants sont autorises uniquement avec les soudures de type 1") - if TYPSOU=='TYPE_2' : - ITYPSO = 2 - else : - ITYPSO = 1 -# -# --- caracteristiques de la soudure --- -# - H = SOUDURE['H_SOUD' ] - ALPHA = SOUDURE['ANGL_SOUD'] - JEU = SOUDURE['JEU_SOUD' ] -# -# --- caracteristiques du corps --- -# - EPC = CORPS ['E_CORP' ] - DEC = CORPS ['DEXT_CORP'] - XMAX = CORPS ['X_MAX' ] - EPSI = 1.E-03 - RMB = ( DET1 - EPT1 ) / 2.0 - VAL1 = 1.5 * sqrt( RMB**3 / EPT1 ) - VAL3 = 3.0 * sqrt( RMB * EPT1 ) - RMT = ( DET2 - EPT2 ) / 2.0 - VAL2 = 1.5 * sqrt( RMT**3 / EPT2 ) - VAL4 = 3.0 * sqrt( RMT * EPT2 ) - LZMAX = max ( VAL1 , VAL2, VAL3, VAL4 ) - ZMAXC = LZMAX + ( DEC/2.0 ) + D1 + D2 - LOK = ( (ZMAX-ZMAXC) >= -1.* EPSI * abs(ZMAXC) ) - if not LOK : - message= "La valeur de Z_MAX (cote maximale de la tubulure) est inférieure à la longueur\n" - message=message+ " d'amortissement calculée : \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 = ( (XMAX-XMAXC) >= -1.* 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) -# - DEFI_FICHIER(ACTION='LIBERER',UNITE=19) - DEFI_FICHIER(ACTION='LIBERER',UNITE=20) - EXEC_LOGICIEL( LOGICIEL = logiel , - ARGUMENT = (nomFichierDATG, - nomFichierGIBI), ) -# - PRE_GIBI() -# - __MAPROV=LIRE_MAILLAGE(INFO=INFO) -# - motscles={} - motscles['CREA_GROUP_MA']=[] - l_CREA_GROUP_NO=[] - if SAIN : - l_CREA_GROUP_NO.append('S_LAT1') - l_CREA_GROUP_NO.append('S_LAT2') - else : - l_CREA_GROUP_NO.append('S_LAT1_C') - l_CREA_GROUP_NO.append('S_LAT2_C') - l_CREA_GROUP_NO.append('S_LAT1_T') - l_CREA_GROUP_NO.append('S_LAT2_T') - if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') : - l_CREA_GROUP_NO.append('PFONDINF') - l_CREA_GROUP_NO.append('PFONDSUP') - else : - l_CREA_GROUP_NO.append('PFONDFIS') - if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='COURTE') : - motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS', - NOM = 'MAIL_ORI', - POSITION = 'INIT' )) - if (TFISS[:4]=='DEB_') and (AXIS=='OUI') : - motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS', - NOM = 'MAIL_ORI', - POSITION = 'INIT' )) - if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') : - motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FOND_SUP', - NOM = 'MA_ORI_S', - POSITION = 'INIT' )) - motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FOND_INF', - NOM = 'MA_ORI_I', - POSITION = 'INIT' )) - l_CREA_GROUP_NO.append('S_FOND1') - l_CREA_GROUP_NO.append('S_FOND2') - l_CREA_GROUP_NO.append('EQUERRE') - motscles['CREA_GROUP_NO']=_F(GROUP_MA=l_CREA_GROUP_NO) -# - __MAPROV=DEFI_GROUP(reuse =__MAPROV, - MAILLAGE=__MAPROV, - **motscles ) -# - if not SAIN : - motscles={} - motscles['CREA_GROUP_NO']=[] - if not (TFISS=='NON_DEB') : - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA = 'FONDFISS',)) - if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') : - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA = ('FOND_SUP','FOND_INF',),)) - __MAPROV=DEFI_GROUP(reuse =__MAPROV, - MAILLAGE=__MAPROV, - **motscles ) -# - __MAPROV=MODI_MAILLAGE(reuse =__MAPROV, - MAILLAGE=__MAPROV, - EQUE_PIQUA=_F( GROUP_NO = 'EQUERRE' , - E_BASE = EPT1 , - DEXT_BASE = DET1 , - L_BASE = D1 , - L_CHANF = D2 , - TYPE = TYPSOU, - H_SOUD = H , - ANGL_SOUD = ALPHA , - JEU_SOUD = JEU , - E_CORP = EPC , - DEXT_CORP = DEC , - AZIMUT = THETA , - RAFF_MAIL = TYPMAI, - X_MAX = XMAX , ) - ) -# - - motscles={} - if TFISS=='DEB_INT' : - motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXCORP1','EXCORP2','EXTUBU','LEVRTUBU','LEVRCORP'),) - else : - motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXCORP1','EXCORP2','EXTUBU',),) - __MAPROV=MODI_MAILLAGE(reuse =__MAPROV, - MAILLAGE=__MAPROV, - **motscles - ) -# - if SAIN : - __MAPROV=DEFI_GROUP(reuse = __MAPROV, - MAILLAGE = __MAPROV, - CREA_GROUP_NO = _F(GROUP_MA=('NIDXT','NEDXT','NIIXT','NEIXT')) ) -# - for i in range(1,NBAZIT+1): - prec = EPC / 5.0 - __MAPROV=DEFI_GROUP(reuse = __MAPROV, - MAILLAGE = __MAPROV, - CREA_GROUP_NO = ( _F( NOM = 'NID'+str(i) , - GROUP_NO = 'NIDXT' , - NUME_INIT = i , - NUME_FIN = i ,), - _F( NOM = 'NED'+str(i) , - GROUP_NO = 'NEDXT' , - NUME_INIT = i , - NUME_FIN = i ,), - _F( NOM = 'NII'+str(i) , - GROUP_NO = 'NIIXT' , - NUME_INIT = i , - NUME_FIN = i ,), - _F( NOM = 'NEI'+str(i) , - GROUP_NO = 'NEIXT' , - NUME_INIT = i , - NUME_FIN = i ,), - _F( NOM = 'LDN'+str(i) , - GROUP_MA = 'LD' +str(i) ,), - _F( NOM = 'LD' +str(i) , - GROUP_NO = 'LDN'+str(i) , - OPTION = 'SEGM_DROI_ORDO', - PRECISION = prec , - CRITERE = 'ABSOLU' , - GROUP_NO_ORIG = 'NID'+str(i), - GROUP_NO_EXTR = 'NED'+str(i),), - _F( NOM = 'LIN'+str(i) , - GROUP_MA = 'LI' +str(i) ,), - _F( NOM = 'LI' +str(i) , - GROUP_NO = 'LIN'+str(i) , - OPTION = 'SEGM_DROI_ORDO', - PRECISION = prec , - CRITERE = 'ABSOLU' , - GROUP_NO_ORIG = 'NII'+str(i), - GROUP_NO_EXTR = 'NEI'+str(i),),)) -# -# -# --- commande CREA_MAILLAGE --- -# - self.DeclareOut('nomres',self.sd) - nomres=CREA_MAILLAGE( MAILLAGE=__MAPROV, - CREA_POI1 = ( _F( NOM_GROUP_MA = 'P1_CORP ' , - GROUP_NO = 'P1_CORP ' , ), - _F( NOM_GROUP_MA = 'P2_CORP ' , - GROUP_NO = 'P2_CORP ' , ), - _F( NOM_GROUP_MA = 'P_TUBU ' , - GROUP_NO = 'P_TUBU ' , ),) - ) -# - if IMPRESSION!=None: - for impr in IMPRESSION : -# - motscles={} - if impr['FORMAT']=='IDEAS' : motscles['VERSION'] =impr['VERSION'] - if impr['FORMAT']=='CASTEM' : motscles['NIVE_GIBI']=impr['NIVE_GIBI'] - if impr['UNITE']!=None : motscles['UNITE'] =impr['UNITE'] - impr_resu = _F( MAILLAGE = nomres,) -# - IMPR_RESU( RESU = impr_resu, - FORMAT = impr['FORMAT'],**motscles ) -# -# -# --- Verification profondeur fissure (courte débouchante) --- -# - if FISCOU and not (TFISS=='NON_DEB') : - nomres=DEFI_GROUP( reuse=nomres, - MAILLAGE=nomres, - CREA_GROUP_NO=(_F( GROUP_MA = 'LEVRTUBU',), - _F( NOM = 'FONDORDO', - GROUP_MA = 'FONDFISS', - OPTION = 'NOEUD_ORDO',),),); - - nommail=nomres.nom - coord =aster.getvectjev(nommail.ljust(8)+'.COORDO .VALE') - collgrno=aster.getcolljev(nommail.ljust(8)+'.GROUPENO') - - grfo=collgrno['FONDORDO'] - Nbno = len(grfo) - listx = [None]*Nbno - listy = [None]*Nbno - listz = [None]*Nbno - k = 0 - for node in grfo: - listx[k] = coord[3*(node-1)] - listy[k] = coord[3*(node-1)+1] - listz[k] = coord[3*(node-1)+2] - k = k+1 - - XAB = listx[Nbno-1] - listx[0] - YAB = listy[Nbno-1] - listy[0] - ZAB = listz[Nbno-1] - listz[0] - AB = sqrt(XAB*XAB + YAB*YAB +ZAB*ZAB) - d = 0 - for k in range(0,Nbno) : - XAM = listx[k] - listx[0] - YAM = listy[k] - listy[0] - ZAM = listz[k] - listz[0] - Xvect = YAB*ZAM-ZAB*YAM - Yvect = ZAB*XAM-XAB*ZAM - Zvect = XAB*YAM-YAB*XAM - AM = sqrt(Xvect*Xvect+ Yvect*Yvect +Zvect*Zvect) - dk = AM/AB - if dk > d : - XC = listx[k] - YC = listy[k] - ZC = listz[k] - d = max(dk, d) - - grlev=collgrno['LEVRTUBU'] - Nbnol = len(grlev) - listxl = [None]*Nbnol - listyl = [None]*Nbnol - listzl = [None]*Nbnol - k = 0 - for node in grlev: - listxl[k] = coord[3*(node-1)] - listyl[k] = coord[3*(node-1)+1] - listzl[k] = coord[3*(node-1)+2] - k = k+1 - dist = 0 - for k in range(0,Nbnol) : - XAM = listxl[k] - listx[0] - YAM = listyl[k] - listy[0] - ZAM = listzl[k] - listz[0] - Scal = (XAB*XAM + YAB*YAM + ZAB*ZAM)/(AB*AB) - if (abs(Scal) < 0.51) and (abs(Scal) > 0.49) : - Xk = listxl[k] -XC - Yk = listyl[k] -YC - Zk = listzl[k] -ZC - dk = sqrt(Xk**2+ Yk**2 +Zk**2) - dist = max(dk, dist) - - texte=" 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 deleted file mode 100644 index 95ac8187..00000000 --- a/Aster/Cata/cataSTA8/Macro/macr_cabri_calc_ops.py +++ /dev/null @@ -1,542 +0,0 @@ -#@ MODIF macr_cabri_calc_ops Macro DATE 10/07/2006 AUTEUR LEBOUVIE F.LEBOUVIER -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - - -def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER, - CHAR_MECA,RESU_THER,RESO_INTE, - AFFE_MATERIAU,DEFI_CHAR_THER,DEFI_CHAR_MECA,RELATION,SOLVEUR,CONVERGENCE,NEWTON, - INCREMENT,CHAM_MATER,**args): - """ - Ecriture de la macro MACR_CABRI_CALC - """ - - ################################################################# - ########## PREPARATION MACRO - ################################################################# - - from Accas import _F - - ier =0 - - # On met certains mots-clefs dans des variables locales pour les proteger - affemateriau = AFFE_MATERIAU - mail = MAILLAGE - resointe = RESO_INTE - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU') - AFFE_MODELE = self.get_cmd('AFFE_MODELE') - MODI_MAILLAGE = self.get_cmd('MODI_MAILLAGE') - AFFE_CHAR_THER_F = self.get_cmd('AFFE_CHAR_THER_F') - AFFE_CHAR_THER = self.get_cmd('AFFE_CHAR_THER') - AFFE_CHAR_MECA_F = self.get_cmd('AFFE_CHAR_MECA_F') - AFFE_CHAR_MECA = self.get_cmd('AFFE_CHAR_MECA') - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL') - THER_LINEAIRE = self.get_cmd('THER_LINEAIRE') - STAT_NON_LINE = self.get_cmd('STAT_NON_LINE') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type evol_noli) est nomme 'resumeca' dans - # le contexte de la macro - self.DeclareOut('resumeca',self.sd) - self.DeclareOut('mail',MAILLAGE) - - ################################################################# - ########## PREPARATION DES MODELES - ################################################################# - - # Definition des groupes - mail=DEFI_GROUP(reuse =mail,MAILLAGE=mail, - CREA_GROUP_NO=( - _F(GROUP_MA='M_GOU',NOM='N_M_GOU',), - _F(GROUP_MA='M_JOI',NOM='N_M_JOI',), - _F(GROUP_MA='SCBJ',NOM='N_SCBJ',), - _F(GROUP_MA='SCJB',NOM='N_SCJB',), - _F(GROUP_MA='M_L_AA',NOM='N_M_L_AA',), - _F(GROUP_MA='SCEG',NOM='N_SCEG',), - _F(GROUP_MA='SCGE',NOM='N_SCGE',),),) - - # Creation du modele thermique - if MODELE_THER != None: - self.DeclareOut('modther',MODELE_THER) - - modther=AFFE_MODELE(MAILLAGE=mail, - AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB', - 'M_L_AA','M_INT','M_L_SA','M_EXT','SCEG','SCGE',), - PHENOMENE='THERMIQUE', - MODELISATION='3D_DIAG',), - ); - - # Creation du modele mecanique - if MODELE_MECA != None: - self.DeclareOut('modmeca',MODELE_MECA) - - modmeca = AFFE_MODELE(MAILLAGE=mail, - AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB', - 'M_L_AA','M_L_SA','SCEG','SCGE','M_INT','M_EXT',), - PHENOMENE='MECANIQUE', - MODELISATION='3D',), - ); - - # Orientation des mailles - mail=MODI_MAILLAGE(reuse =mail, - MAILLAGE=mail, - ORIE_PEAU_3D=(_F(GROUP_MA=('M_INT','M_TUB',),), - _F(GROUP_MA=('M_L_AA','M_JOI','M_L_SA',),),), - ); - - - - # Affectation des materiaux - 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/cataSTA8/Macro/macr_cabri_mail_dat.py b/Aster/Cata/cataSTA8/Macro/macr_cabri_mail_dat.py deleted file mode 100644 index 7d673257..00000000 --- a/Aster/Cata/cataSTA8/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/cataSTA8/Macro/macr_cabri_mail_ops.py b/Aster/Cata/cataSTA8/Macro/macr_cabri_mail_ops.py deleted file mode 100644 index af724996..00000000 --- a/Aster/Cata/cataSTA8/Macro/macr_cabri_mail_ops.py +++ /dev/null @@ -1,459 +0,0 @@ -#@ MODIF macr_cabri_mail_ops Macro DATE 29/08/2006 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import os - -def macr_cabri_mail_ops(self,EXEC_MAILLAGE,RAFF_MAILLAGE,VERI_MAIL,GEOM_BRID, - IMPRESSION,**args): - """ - Ecriture de la macro MACR_CABRI_MAIL - """ - import types - from Accas import _F - - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - EXEC_LOGICIEL = self.get_cmd('EXEC_LOGICIEL') - LIRE_MAILLAGE = self.get_cmd('LIRE_MAILLAGE') - PRE_GIBI = self.get_cmd('PRE_GIBI') - IMPR_RESU = self.get_cmd('IMPR_RESU') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type mail) est nommé 'nomres' dans - # le contexte de la macro - - self.DeclareOut('nomres',self.sd) - - # Chemin de Gibi - import aster - loc_gibi=aster.repout() - gibi2000=loc_gibi+'gibi' - - # Unité pour le fichier maillage produit (format GIBI) - unite_mgib = EXEC_MAILLAGE['UNITE_MGIB'] - # Unité pour le fichier de commandes GIBI - unite_datg = EXEC_MAILLAGE['UNITE_DATG'] - # Niveau gibi - niveau_gibi = EXEC_MAILLAGE['NIVE_GIBI'] - - # Verif mail - ver_apla = VERI_MAIL['APLAT'] - ver_veri = VERI_MAIL['VERIF'] - - # Impression - if IMPRESSION['UNITE']!=None: - imp_unit = IMPRESSION['UNITE'] - imp_unitF = 1 - else: - imp_unitF = 0 - if IMPRESSION['FORMAT']!=None: - imp_form = IMPRESSION['FORMAT'] - imp_formF = 1 - else: - imp_formF = 0 -# if IMPRESSION['FICHIER']!=None: -# imp_fich = IMPRESSION['FICHIER'] -# imp_fichF = 1 -# else: -# imp_fichF = 0 - - # Maillage - nrad = RAFF_MAILLAGE['NB_RADIAL'] - ncir = RAFF_MAILLAGE['NB_CIRCONF'] - nver = RAFF_MAILLAGE['NB_VERTICAL'] - nsect = RAFF_MAILLAGE['NB_ALESAGE'] - temps = 5. - - maillage = {'nrad': nrad, - 'ncir': ncir, - 'nver': nver, - 'nsect': nsect, - 'temps' : temps,} - - # Création du fichier datg - - if GEOM_BRID['NORME'] == 'OUI': - # Bride standard - type_bride = GEOM_BRID['TYPE'] - ### Ecriture du fichier GIBI principal (dgib) - Bride STANDARD - write_file_dgib_STD(unite_mgib,unite_datg,maillage,type_bride) - else: - # Bride quelconque - geo_bride_qqe = {'nbgouj': GEOM_BRID['GOUJ_N_GOUJON'], - 'dint': GEOM_BRID['BRID_D_INT'], - 'dex1': GEOM_BRID['TUBU_D_EXT'], - 'dex2': GEOM_BRID['BRID_D_CONGE'], - 'dex3': GEOM_BRID['BRID_D_EPAUL'], - 'dtrou': GEOM_BRID['BRID_P_ALESAG'], - 'dext': GEOM_BRID['BRID_D_EXT'], - 'dt': GEOM_BRID['BRID_D_ALESAG'], - 'drd': GEOM_BRID['GOUJ_D_RONDEL'], - 'dg': GEOM_BRID['GOUJ_D_GOUJON'], - 'dec': GEOM_BRID['GOUJ_D_ECROU'], - 'rcong': GEOM_BRID['BRID_R_CONGE'], - 'he': GEOM_BRID['GOUJ_E_ECROU'], - 'e': GEOM_BRID['GOUJ_E_RONDEL'], - 'hc1': GEOM_BRID['BRID_H'], - 'hcg1': GEOM_BRID['TUBU_H'], - 'hb': GEOM_BRID['BRID_H_EPAUL'], - 'htrou': GEOM_BRID['BRID_H_ALESAG'], - 'pf': GEOM_BRID['GOUJ_E_FILET'], - 'j': GEOM_BRID['ETAN_E_JOINT']} - ### Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE - write_file_dgib_QQE(unite_mgib,unite_datg,maillage,geo_bride_qqe) - - fichier_datg = 'fort.'+str(unite_datg) - fichier_mgib = 'fort.'+str(unite_mgib) - - # Lancement de GIBI - EXEC_LOGICIEL( - LOGICIEL=gibi2000, - ARGUMENT=(fichier_datg, fichier_mgib), - ) - # Lecture du maillage GIBI dans ASTER - PRE_GIBI( - UNITE_GIBI = unite_mgib, - ) - - nomres = LIRE_MAILLAGE(VERI_MAIL=_F(APLAT = ver_apla, - VERIF = ver_veri ),) - -# if (imp_fichF == 1): -# print imp_fich - if (imp_formF == 1): - print imp_form - if (imp_unitF == 1): - print imp_unit - # Impression du fichier maillage - if (imp_formF == 1): - if (imp_form == 'CASTEM'): - imp_ngib = IMPRESSION['NIVE_GIBI'] - IMPR_RESU( RESU = _F(MAILLAGE=nomres, ), - FORMAT = 'CASTEM', NIVE_GIBI = imp_ngib ) - if (imp_form == 'IDEAS'): - imp_nver = IMPRESSION['VERSION'] - IMPR_RESU(RESU = _F(MAILLAGE=nomres,), - FORMAT = 'IDEAS', VERSION = imp_nver ) - - return ier - - -############################################################################################## -# Liste des fonctions -############################################################################################## - -############# -## EXTERNES (appelables depuis l'extérieur) -############# - -### Ecriture du fichier GIBI principal (dgib) - Bride STANDARD -# null = write_file_dgib_STD(unite_mgib,unite_datg,msh_bride,geo_bride) - -### Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE -# null = write_file_dgib_QQE(unite_mgib,unite_datg,msh_bride,geo_bride) - -### Imprime tout le catalogue des brides standards disponibles dans un fichier texte -# null = print_bride_std(nom_fichier) - -### Catalogue complet des brides standards disponibles -# txt = bride_std() - -############# -## INTERNES (réservées au travail interne) -############# - -### Génération du nom du fichier pour le fichier maillage résultant (format GIBI) -# NomFichier(txt) = name_file_mgib(unite_mgib): - -### Génération du nom du fichier pour le fichier générant le maillage (commandes GIBI) -# NomFichier(txt) = name_file_datg(unite_datg): - -### Récupère un fichier texte DATG -# Txt = text_datg(fichier_datg): - -### Génération du texte pour les variables -# Txt = para_text(dico_var,var): - - - -#============================================================================================= -# Importation des modules Python -#============================================================================================= - -from Macro.macr_cabri_mail_dat import dico_var_geo,dico_var_msh,dico_bride_std - -#============================================================================================= -# Fonctions principales -#============================================================================================= -# Ecriture du fichier GIBI principal (dgib) - Bride STANDARD -def write_file_dgib_STD(unite_mgib,unite_datg,msh_bride,geo_bride): - - # Nom du fichier maillage produit par GIBI - nomFichierMGIB = name_file_mgib(unite_mgib) - - # Nom du fichier de commandes pour GIBI - nomFichierDATG = name_file_datg(unite_datg) - - # Ouverture du fichier d'entrée de commandes - fdgib=open(nomFichierDATG,'w') - - # En-tete - text = "**************************************************************\n" - text = text + "* Fichier GIBI pour le maillage d'une bride \n" - text = text + "**************************************************************\n" - text = text + "\n" - text = text + "* Ce fichier a été généré automatiquement par la macro ASTER MACR_CABRI_MAIL \n" - text = text + "* Ne pas modifier\n" - text = text + "\n" - text = text + "**************************************************************\n" - text = text + "* Type bride: Bride standard \n" - text = text + "**************************************************************\n" - text = text + "titre '"+"Bride standard"+"';\n" - text = text + "** Type bride standard: "+geo_bride+"\n" - - text = text + "\n" - text = text + "nomfich = CHAINE \n" - if len(nomFichierMGIB)>72: - raise Exception, 'Nom de fichier trop long (limité à 72 caractères ' \ - 'pour GIBI) :\n',nomFichierMGIB - elif len(nomFichierMGIB)<=69: - text = text + "'"+nomFichierMGIB+"';\n" - else: - text = text + "'"+nomFichierMGIB[:69]+"'\n" \ - + "'"+nomFichierMGIB[69:]+"';\n" - text = text + "opti dime 3 elem cub8 SAUV FORM nomfich;\n" - text = text + "dens 1;\n" - text = text + "\n" - fdgib.write(text) - - # Procédures internes supplémentaires - text = "**************************************************************\n" - text = text + "* Procédures supplémentaires \n" - text = text + "**************************************************************\n" - text = text + text_datg_pro() - fdgib.write(text) - - # Début de procédure de création du maillage - text = "**************************************************************\n" - text = text + "**************************************************************\n" - text = text + "********* Début de procédure de création du maillage *********\n" - text = text + "**************************************************************\n" - text = text + "**************************************************************\n" - text = text + "\n debproc constru;\n" - fdgib.write(text) - - # Paramètres géométriques - car_bride = dico_bride_std[geo_bride] - text = "**************************************************************\n" - text = text + "* Paramètres géométriques \n" - text = text + "**************************************************************\n" - text = text + para_text(dico_var_geo,car_bride) - fdgib.write(text) - - # Paramètres du maillage - text = "**************************************************************\n" - text = text + "* Paramètres physiques \n" - text = text + "**************************************************************\n" - text = text + para_text(dico_var_msh,msh_bride) - fdgib.write(text) - - # Algorithme du maillage - text = "**************************************************************\n" - text = text + "* Algorithme de maillage \n" - text = text + "**************************************************************\n" - text = text + text_datg_std() - fdgib.write(text) - - # Fermeture du fichier maillage - fdgib.close() - - -# Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE -def write_file_dgib_QQE(unite_mgib,unite_datg,msh_bride,geo_bride): - - # Nom du fichier maillage produit par GIBI - nomFichierMGIB = name_file_mgib(unite_mgib) - - # Nom du fichier de commandes pour GIBI - nomFichierDATG = name_file_datg(unite_datg) - - # Ouverture du fichier d'entree de commandes - fdgib=open(nomFichierDATG,'w') - - # En-tete - text = "**************************************************************\n" - text = text + "* Fichier GIBI pour le maillage d'une bride \n" - text = text + "**************************************************************\n" - text = text + "\n" - text = text + "* Ce fichier a été généré automatiquement par la macro ASTER MACR_CABRI_MAIL \n" - text = text + "* Ne pas modifier\n" - text = text + "\n" - text = text + "**************************************************************\n" - text = text + "* Type bride: Bride quelconque\n" - text = text + "**************************************************************\n" - text = text + "titre '"+"Bride Quelconque"+"';\n" - text = text + "\n" - text = text + "nomfich = CHAINE \n" - if len(nomFichierMGIB)>72: - raise Exception, 'Nom de fichier trop long (limité à 72 caractères ' \ - 'pour GIBI) :\n',nomFichierMGIB - elif len(nomFichierMGIB)<=69: - text = text + "'"+nomFichierMGIB+"';\n" - else: - text = text + "'"+nomFichierMGIB[:69]+"'\n" \ - + "'"+nomFichierMGIB[69:]+"';\n" - text = text + "opti dime 3 elem cub8 SAUV FORM nomfich;\n" - text = text + "dens 1;\n" - text = text + "\n" - fdgib.write(text) - - # Procédures internes supplémentaires - text = "**************************************************************\n" - text = text + "* Procédures supplémentaires \n" - text = text + "**************************************************************\n" - text = text + text_datg_pro() - fdgib.write(text) - - # Début de procédure de création du maillage - text = "**************************************************************\n" - text = text + "**************************************************************\n" - text = text + "********* Début de procédure de création du maillage *********\n" - text = text + "**************************************************************\n" - text = text + "**************************************************************\n" - text = text + "\n debproc constru;\n" - fdgib.write(text) - - # Paramètres géométriques - text = "**************************************************************\n" - text = text + "* Paramètres géométriques \n" - text = text + "**************************************************************\n" - text = text + para_text(dico_var_geo,geo_bride) - fdgib.write(text) - - # Paramètres du maillage - text = "**************************************************************\n" - text = text + "* Paramètres physiques \n" - text = text + "**************************************************************\n" - text = text + para_text(dico_var_msh,msh_bride) - fdgib.write(text) - - # Algorithme du maillage - text = "**************************************************************\n" - text = text + "* Algorithme de maillage \n" - text = text + "**************************************************************\n" - text = text + text_datg_qqe() - fdgib.write(text) - - # Fermeture du fichier maillage - fdgib.close() - -# Génération du nom du fichier pour le fichier maillage résultant (format GIBI) -def name_file_mgib(unite_mgib): - cur_dir = os.getcwd() - nomFichier = cur_dir+'/fort.'+str(unite_mgib) - return nomFichier - - -# Génération du nom du fichier pour le fichier générant le maillage (commandes GIBI) -def name_file_datg(unite_datg): - cur_dir = os.getcwd() - nomFichier = cur_dir+'/fort.'+str(unite_datg) - return nomFichier - -# Récupère un fichier texte DATG: texte GIBI pour procédures -def text_datg_pro(): - import aster - loc_datg = aster.repdex() - datg_bridePro = loc_datg+"macr_cabri_mail_proc.datg" - fproc=open(datg_bridePro,'r') - procText = fproc.read() - fproc.close() - - return procText - -# Récupère un fichier texte DATG: texte GIBI pour bride quelconque -def text_datg_qqe(): - import aster - loc_datg = aster.repdex() - datg_brideQqe = loc_datg+"macr_cabri_mail_qqe.datg" - fproc=open(datg_brideQqe,'r') - procText = fproc.read() - fproc.close() - - return procText - -# Récupère un fichier texte DATG: texte GIBI pour bride standard -def text_datg_std(): - import aster - loc_datg = aster.repdex() - datg_brideStd = loc_datg+"macr_cabri_mail_std.datg" - fproc=open(datg_brideStd,'r') - procText = fproc.read() - fproc.close() - - return procText - -# Génération du texte pour les variables -def para_text(dico_var,var): - text = '\n' - for nom_var in var.keys(): - text = text+"* "+dico_var[nom_var]+"\n" - text = text+nom_var+" = "+`var[nom_var]`+";\n" - return text - -#============================================================================================= -# Accès au catalogue des brides standards -# (les brides standards sont décrites dans le fichier Data_Brides.py) -#============================================================================================= - - - -# Imprime tout le catalogue des brides standards disponibles dans un fichier texte -def print_bride_std(nom_fichier): - text = bride_std() - # Ouverture du fichier - finfo=open(nom_fichier,'w') - # Ecriture des infos - finfo.write(text) - # Fermeture du fichier - finfo.close() - -# Catalogue complet des brides standards disponibles -def bride_std(): - # Ligne d'info - text = "Liste des brides standards avec leurs dimensions\n" - # Première ligne - text = text+"\t" - for nom_variable in dico_var_geo.keys(): - text = text + nom_variable+"\t\t" - text = text + "\n" - # Lignes suivantes - for nom_bride in dico_bride_std.keys(): - bride = dico_bride_std[nom_bride] - text = text + nom_bride + '\t' - for nom_var in dico_var_geo.keys(): - chaine = "%f" % (bride[nom_var]) - text = text+chaine+"\t" - text = text + "\n" - return text diff --git a/Aster/Cata/cataSTA8/Macro/macr_cara_poutre_ops.py b/Aster/Cata/cataSTA8/Macro/macr_cara_poutre_ops.py deleted file mode 100644 index 89195496..00000000 --- a/Aster/Cata/cataSTA8/Macro/macr_cara_poutre_ops.py +++ /dev/null @@ -1,817 +0,0 @@ -#@ MODIF macr_cara_poutre_ops Macro DATE 27/02/2006 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX - -def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD, - GROUP_MA,ORIG_INER,**args): - """ - Ecriture de la macro MACR_CARA_POUTRE - """ - import types - from Accas import _F - from Utilitai.Utmess import UTMESS - ier=0 - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE') - DEFI_GROUP =self.get_cmd('DEFI_GROUP') - CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE') - AFFE_MODELE =self.get_cmd('AFFE_MODELE') - DEFI_MATERIAU =self.get_cmd('DEFI_MATERIAU') - AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU') - DEFI_FONCTION =self.get_cmd('DEFI_FONCTION') - DEFI_CONSTANTE =self.get_cmd('DEFI_CONSTANTE') - AFFE_CHAR_THER =self.get_cmd('AFFE_CHAR_THER') - AFFE_CHAR_THER_F=self.get_cmd('AFFE_CHAR_THER_F') - THER_LINEAIRE =self.get_cmd('THER_LINEAIRE') - CALC_VECT_ELEM =self.get_cmd('CALC_VECT_ELEM') - CALC_MATR_ELEM =self.get_cmd('CALC_MATR_ELEM') - NUME_DDL =self.get_cmd('NUME_DDL') - ASSE_VECTEUR =self.get_cmd('ASSE_VECTEUR') - POST_ELEM =self.get_cmd('POST_ELEM') - CALC_ELEM =self.get_cmd('CALC_ELEM') - INTE_MAIL_2D =self.get_cmd('INTE_MAIL_2D') - POST_RELEVE_T =self.get_cmd('POST_RELEVE_T') - IMPR_TABLE =self.get_cmd('IMPR_TABLE') - CREA_TABLE =self.get_cmd('CREA_TABLE') - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type table_sdaster) est nommé 'nomres' dans - # le contexte de la macro - - self.DeclareOut('nomres',self.sd) - -# if GROUP_MA_BORD and GROUP_MA: -# if not LIAISON: -# UTMESS('F', "MACR_CARA_POUTRE", "Avec GROUP_MA, il faut obligatoirement preciser LIAISON, LONGUEUR ET MATERIAU") -# - __nomlma=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,) - - __nomamo=AFFE_MODELE(MAILLAGE=__nomlma, - AFFE=_F(TOUT='OUI', - PHENOMENE='MECANIQUE', - MODELISATION='D_PLAN',), ) - - __nomdma=DEFI_MATERIAU(ELAS=_F(E=1.0,NU=0.,RHO=1.0),) - - - __nomama=AFFE_MATERIAU(MAILLAGE=__nomlma, - AFFE=_F(TOUT='OUI', - MATER=__nomdma,), ) - - -# --- CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE LA SECTION : -# ------------------------------------------------------ - - motsimps={} - if GROUP_MA : motsimps['GROUP_MA'] = GROUP_MA - if SYME_X : motsimps['SYME_X'] = SYME_X - if SYME_Y : motsimps['SYME_Y'] = SYME_Y - motsimps['ORIG_INER'] = ORIG_INER - mfact=_F(TOUT='OUI',**motsimps) - __cageo=POST_ELEM(MODELE=__nomamo, - CHAM_MATER=__nomama, - CARA_GEOM=mfact ) -# nb : si GROUP_MA n existe pas : le mot clé est ignoré - -# -# ================================================================== -# --- = CALCUL DE LA CONSTANTE DE TORSION SUR TOUT LE MAILLAGE = -# --- = OU DU CENTRE DE TORSION/CISAILLEMENT = -# --- = DES COEFFICIENTS DE CISAILLEMENT = -# --- = ET DE L INERTIE DE GAUCHISSEMENT = -# --- = DU RAYON DE TORSION SUR TOUT LE MAILLAGE -# --- = ON CREE UN MODELE PLAN 2D THERMIQUE REPRESENTANT LA SECTION = -# --- = DE LA POUTRE CAR ON A A RESOUDRE DES E.D.P. AVEC DES LAPLACIENS= -# ================================================================== - - if GROUP_MA_BORD and not GROUP_MA: - -# --- TRANSFORMATION DES GROUP_MA EN GROUP_NO SUR-LESQUELS -# --- ON POURRA APPLIQUER DES CONDITIONS DE TEMPERATURE IMPOSEE : -# --------------------------------------------------------- - motscles={} - if type(GROUP_MA_BORD)==types.StringType: - motscles['CREA_GROUP_NO']=_F(GROUP_MA=GROUP_MA_BORD,) - else: - motscles['CREA_GROUP_NO']=[] - for grma in GROUP_MA_BORD: - motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=grma,)) - __nomlma=DEFI_GROUP(reuse=__nomlma, - MAILLAGE=__nomlma, - **motscles) - - - -# --- CREATION D UN MAILLAGE IDENTIQUE AU PREMIER A CECI PRES -# --- QUE LES COORDONNEES SONT EXPRIMEES DANS LE REPERE PRINCIPAL -# --- D INERTIE DONT L ORIGINE EST LE CENTRE DE GRAVITE DE LA SECTION : -# --------------------------------------------------------------- - - __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma, - REPERE=_F(TABLE=__cageo, - NOM_ORIG='CDG', ), ) - -# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE -# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE : -# ------------------------------------------------------ - - __nomoth=AFFE_MODELE(MAILLAGE=__nomapi, - AFFE=_F(TOUT='OUI', - PHENOMENE='THERMIQUE', - MODELISATION='PLAN',), ) - -# --- POUR LA CONSTRUCTION DU LAPLACIEN, ON DEFINIT UN -# --- PSEUDO-MATERIAU DONT LES CARACTERISTIQUES THERMIQUES SONT : -# --- LAMBDA = 1, RHO*CP = 0 : -# ---------------------- - - __nomath=DEFI_MATERIAU(THER=_F(LAMBDA=1.0,RHO_CP=0.,),) - -# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT : -# --------------------------------------------------------- - - __chmath=AFFE_MATERIAU(MAILLAGE=__nomapi, - AFFE=_F(TOUT='OUI', - MATER=__nomath,), ) - -# -# ------------------------------------------------------------ -# --- - CALCUL DE LA CONSTANTE DE TORSION PAR RESOLUTION - -# --- - D UN LAPLACIEN AVEC UN TERME SOURCE EGAL A -2 - -# --- - L INCONNUE ETANT NULLE SUR LE CONTOUR DE LA SECTION : - -# --- - LAPLACIEN(PHI) = -2 DANS LA SECTION - -# --- - PHI = 0 SUR LE CONTOUR : - -# ------------------------------------------------------------ -# -# --- ON IMPOSE LA VALEUR 0 A L INCONNUE SCALAIRE SUR LE CONTOUR -# --- DE LA SECTION -# --- ET ON A UN TERME SOURCE EGAL A -2 DANS TOUTE LA SECTION : -# ------------------------------------------------------- - - motscles={} - if args.has_key('GROUP_MA_INTE'): - if args['GROUP_MA_INTE'] != None : - motscles['LIAISON_UNIF']=_F(GROUP_MA=args['GROUP_MA_INTE'],DDL='TEMP'), - __chart1=AFFE_CHAR_THER(MODELE=__nomoth, - TEMP_IMPO =_F(GROUP_NO=GROUP_MA_BORD, - TEMP=0. ), - SOURCE =_F(TOUT='OUI', - SOUR=2.0), - **motscles ) - -# --- POUR CHAQUE TROU DE LA SECTION : -# --- .ON A IMPOSE QUE PHI EST CONSTANT SUR LE CONTOUR INTERIEUR -# --- EN FAISANT LE LIAISON_UNIF DANS LE AFFE_CHAR_THER PRECEDENT -# --- .ON IMPOSE EN PLUS D(PHI)/DN = 2*AIRE(TROU)/L(TROU) -# --- OU D/DN DESIGNE LA DERIVEE PAR RAPPORT A LA -# --- NORMALE ET L DESIGNE LA LONGUEUR DU BORD DU TROU : -# ------------------------------------------------------- - - if args.has_key('GROUP_MA_INTE'): - lgmaint=args['GROUP_MA_INTE'] - if lgmaint != None : - __tbaire=POST_ELEM(MODELE=__nomoth, - AIRE_INTERNE=_F(GROUP_MA_BORD=args['GROUP_MA_INTE'],), ) - - motscles={} - motscles['FLUX_REP']=[] - - if type(lgmaint)==types.StringType: - motscles['FLUX_REP']=_F(GROUP_MA=args['GROUP_MA_INTE'],CARA_TORSION=__tbaire) - else: - motscles['FLUX_REP']=[] - for grma in lgmaint: - motscles['FLUX_REP'].append(_F(GROUP_MA=grma,CARA_TORSION=__tbaire),) - __chart2=AFFE_CHAR_THER(MODELE=__nomoth,**motscles) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -2 -# --- AVEC PHI = 0 SUR LE CONTOUR : -# ---------------------------------------- - - motscles={} - motscles['EXCIT']=[_F(CHARGE=__chart1,),] - if args.has_key('GROUP_MA_INTE'): - if lgmaint != None : - motscles['EXCIT'].append(_F(CHARGE=__chart2,)) - __tempe1=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - SOLVEUR=_F(STOP_SINGULIER='NON',), - **motscles ) - -# -# ---------------------------------------------- -# --- - CALCUL DU CENTRE DE TORSION/CISAILLEMENT - -# --- - ET DES COEFFICIENTS DE CISAILLEMENT : - -# ---------------------------------------------- -# -# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR -# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE -# --- PAR UNE FONCTION EGALE A Y : -# -------------------------- - - __fnsec1=DEFI_FONCTION(NOM_PARA='X', - VALE=(0.,0.,10.,10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', - ) - - __fnsec0=DEFI_CONSTANTE(VALE=0.,) - -# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION -# --- DE LAPLACE EST PRIS EGAL A Y DANS TOUTE LA SECTION : -# -------------------------------------------------- - - - motscles={} - if args.has_key('NOEUD'): - motscles['TEMP_IMPO']=(_F(NOEUD=args['NOEUD'],TEMP=__fnsec0)) - __chart2=AFFE_CHAR_THER_F(MODELE=__nomoth, - SOURCE=_F(TOUT='OUI', - SOUR=__fnsec1,), - **motscles ) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -Y -# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : -# ------------------------------------------------ - - __tempe2=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - EXCIT=_F(CHARGE=__chart2,), - SOLVEUR=_F(STOP_SINGULIER='NON',), - ) - -# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR -# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE -# --- PAR UNE FONCTION EGALE A Z : -# -------------------------- - - __fnsec2=DEFI_FONCTION(NOM_PARA='Y', - VALE=(0.,0.,10.,10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', - ) - -# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION -# --- DE LAPLACE EST PRIS EGAL A Z DANS TOUTE LA SECTION : -# -------------------------------------------------- - - motscles={} - if args.has_key('NOEUD'): - motscles['TEMP_IMPO']=_F(NOEUD=args['NOEUD'],TEMP=__fnsec0) - __chart3=AFFE_CHAR_THER_F(MODELE=__nomoth, - SOURCE=_F(TOUT='OUI', - SOUR=__fnsec2,), - **motscles) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -Z -# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : -# ------------------------------------------------ - - __tempe3=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - EXCIT=_F(CHARGE=__chart3,), - SOLVEUR=_F(STOP_SINGULIER='NON',), - ) - -# --- CALCUL DU RAYON DE TORSION : -# -------------------------- - -# CALCUL DU RAYON DE TORSION EXTERNE : rtext - - __tempe1=CALC_ELEM(reuse=__tempe1, - RESULTAT=__tempe1, - MODELE=__nomoth, - CHAM_MATER=__chmath, - TOUT_ORDRE='OUI', - OPTION='FLUX_ELNO_TEMP', - ) - - __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, - DEFI_CHEMIN=_F(GROUP_MA=GROUP_MA_BORD), - INFO=2,) - - __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', - CHEMIN=__chem, - RESULTAT=__tempe1, - NOM_CHAM='FLUX_ELNO_TEMP', - TRAC_NOR='OUI', - NOM_CMP=('FLUX','FLUY'), - OPERATION='MOYENNE')) - - __m1=abs(__flun['TRAC_NOR',3]) - __m2=abs(__flun['TRAC_NOR',4]) - __rtext=max(__m1,__m2) - - # CALCUL DU RAYON DE TORSION : rt - # rt = max ( rtext , 2*AIRE(TROU)/L(TROU) ) - - if args.has_key('GROUP_MA_INTE'): - if args['GROUP_MA_INTE'] != None : - if type(args['GROUP_MA_INTE'])==types.StringType : - l_group_ma_inte=[args['GROUP_MA_INTE'],] - else: - l_group_ma_inte=args['GROUP_MA_INTE'] - for i in range(0,len(l_group_ma_inte)): - __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, - DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_inte[i]), - INFO=2,) - __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', - CHEMIN=__chem, - RESULTAT=__tempe1, - NOM_CHAM='FLUX_ELNO_TEMP', - TRAC_NOR='OUI', - NOM_CMP=('FLUX','FLUY'), - OPERATION='MOYENNE')) - __m1=(abs(__flun['TRAC_NOR',3])+abs(__flun['TRAC_NOR',4]))/2. - if __m1 > __rtext : - __rtext=__m1 - - __rt=__rtext - -# --- CALCUL DE LA CONSTANTE DE TORSION : -# --------------------------------- - - motscles={} - if args.has_key('GROUP_MA_INTE'): - lgmaint=args['GROUP_MA_INTE'] - if lgmaint != None : - motscles['CARA_POUTRE']=_F(CARA_GEOM=__cageo, - LAPL_PHI=__tempe1, - RT=__rt, - TOUT='OUI', - OPTION='CARA_TORSION', - GROUP_MA_INTE=args['GROUP_MA_INTE'],) - else: - motscles['CARA_POUTRE']=_F(CARA_GEOM=__cageo, - LAPL_PHI=__tempe1, - RT=__rt, - TOUT='OUI', - OPTION='CARA_TORSION', ) - __cator=POST_ELEM(MODELE=__nomoth, - CHAM_MATER=__chmath, - **motscles ) - - -# --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU -# --- CENTRE DE CISAILLEMENT/TORSION : -# ------------------------------ - - __cacis=POST_ELEM(MODELE=__nomoth, - CHAM_MATER=__chmath, - CARA_POUTRE=_F(CARA_GEOM=__cator, - LAPL_PHI_Y=__tempe2, - LAPL_PHI_Z=__tempe3, - TOUT='OUI', - OPTION='CARA_CISAILLEMENT',), ) - - -# -# ------------------------------------------------------------ -# --- - CALCUL DE L INERTIE DE GAUCHISSEMENT PAR RESOLUTION DE - -# --- - LAPLACIEN(OMEGA) = 0 DANS LA SECTION - -# --- - AVEC D(OMEGA)/D(N) = Z*NY-Y*NZ SUR LE - -# --- - CONTOUR DE LA SECTION - -# --- - NY ET NZ SONT LES COMPOSANTES DU VECTEUR N NORMAL - -# --- - A CE CONTOUR - -# --- - ET SOMME_S(OMEGA.DS) = 0 - -# --- - OMEGA EST LA FONCTION DE GAUCHISSEMENT - -# --- - L INERTIE DE GAUCHISSEMENT EST SOMME_S(OMEGA**2.DS) - -# ------------------------------------------------------------ -# -# --- CREATION D UN MAILLAGE DONT LES COORDONNEES SONT EXPRIMEES -# --- DANS LE REPERE PRINCIPAL D INERTIE MAIS AVEC COMME ORIGINE -# --- LE CENTRE DE TORSION DE LA SECTION, ON VA DONC UTILISER -# --- LE MAILLAGE DE NOM NOMAPI DONT LES COORDONNEES SONT -# --- EXPRIMEES DANS LE REPERE PRINCIPAL D'INERTIE, L'ORIGINE -# --- ETANT LE CENTRE DE GRAVITE DE LA SECTION (QUI EST DONC -# --- A CHANGER) : -# ---------- - - __nomapt=CREA_MAILLAGE(MAILLAGE=__nomapi, - REPERE=_F(TABLE=__cacis, - NOM_ORIG='TORSION',) ) - -# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE -# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE : -# ------------------------------------------------------ - - __nomot2=AFFE_MODELE(MAILLAGE=__nomapt, - AFFE=_F(TOUT='OUI', - PHENOMENE='THERMIQUE', - MODELISATION='PLAN', ) ) - -# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT : -# --------------------------------------------------------- - - __chmat2=AFFE_MATERIAU(MAILLAGE=__nomapt, - AFFE=_F(TOUT='OUI', - MATER=__nomath, ), ) - -# --- POUR LE CALCUL DE L INERTIE DE GAUCHISSEMENT, ON VA DEFINIR -# --- LA COMPOSANTE SELON Y DU FLUX A IMPOSER SUR LE CONTOUR -# --- PAR UNE FONCTION EGALE A -X : -# --------------------------- - - __fnsec3=DEFI_FONCTION(NOM_PARA='X', - VALE=(0.,0.,10.,-10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', - ) - -# --- POUR LE CALCUL DE L INERTIE DE GAUCHISSEMENT, ON VA DEFINIR -# --- LA COMPOSANTE SELON X DU FLUX A IMPOSER SUR LE CONTOUR -# --- PAR UNE FONCTION EGALE A Y : -# -------------------------- - - __fnsec4=DEFI_FONCTION(NOM_PARA='Y', - VALE=(0.,0.,10.,10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', - ) - -# --- DANS LE BUT D IMPOSER LA RELATION LINEAIRE ENTRE DDLS -# --- SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION -# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE -# --- N = 0, N ETANT L EFFORT NORMAL) -# --- ON CALCULE LE VECTEUR DE CHARGEMENT DU A UN TERME SOURCE EGAL -# --- A 1., LES TERMES DE CE VECTEUR SONT EGAUX A -# --- SOMME_SECTION(NI.DS) ET SONT DONC LES COEFFICIENTS DE -# --- LA RELATION LINEAIRE A IMPOSER. -# --- ON DEFINIT DONC UN CHARGEMENT DU A UN TERME SOURCE EGAL A 1 : -# ----------------------------------------------------------- - - __chart4=AFFE_CHAR_THER(MODELE=__nomot2, - SOURCE=_F(TOUT='OUI', - SOUR=1.0), ) - -# --- ON CALCULE LE VECT_ELEM DU AU CHARGEMENT PRECEDENT -# --- IL S AGIT DES VECTEURS ELEMENTAIRES DONT LE TERME -# --- AU NOEUD COURANT I EST EGAL A SOMME_SECTION(NI.DS) : -# -------------------------------------------------- - - __vecel=CALC_VECT_ELEM(CHARGE=__chart4, - OPTION='CHAR_THER' - ) - -# --- ON CALCULE LE MATR_ELEM DES MATRICES ELEMENTAIRES -# --- DE CONDUCTIVITE UNIQUEMENT POUR GENERER LE NUME_DDL -# --- SUR-LEQUEL S APPUIERA LE CHAMNO UTILISE POUR ECRIRE LA -# --- RELATION LINEAIRE ENTRE DDLS : -# ---------------------------- - - __matel=CALC_MATR_ELEM(MODELE=__nomot2, - CHAM_MATER=__chmat2, - CHARGE=__chart4, - OPTION='RIGI_THER',) - -# --- ON DEFINIT LE NUME_DDL ASSOCIE AU MATR_ELEM DEFINI -# --- PRECEDEMMENT POUR CONSTRUIRE LE CHAMNO UTILISE POUR ECRIRE LA -# --- RELATION LINEAIRE ENTRE DDLS : -# ---------------------------- - - __numddl=NUME_DDL(MATR_RIGI=__matel, - METHODE='LDLT', ) - -# --- ON CONSTRUIT LE CHAMNO QUI VA ETRE UTILISE POUR ECRIRE LA -# --- RELATION LINEAIRE ENTRE DDLS : -# ---------------------------- - - __chamno=ASSE_VECTEUR(VECT_ELEM=__vecel, - NUME_DDL=__numddl, ) - -# --- ON IMPOSE LA RELATION LINEAIRE ENTRE DDLS -# --- SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION -# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE -# --- N = 0, N ETANT L EFFORT NORMAL) -# --- POUR IMPOSER CETTE RELATION ON PASSE PAR LIAISON_CHAMNO, -# --- LES TERMES DU CHAMNO (I.E. SOMME_SECTION(NI.DS)) -# --- SONT LES COEFFICIENTS DE LA RELATION LINEAIRE : -# --------------------------------------------- - - __chart5=AFFE_CHAR_THER(MODELE=__nomot2, - LIAISON_CHAMNO=_F(CHAM_NO=__chamno, - COEF_IMPO=0.), ) - -# --- LE CHARGEMENT EST UN FLUX REPARTI NORMAL AU CONTOUR -# --- DONT LES COMPOSANTES SONT +Z (I.E. +Y) ET -Y (I.E. -X) -# --- SELON LA DIRECTION NORMALE AU CONTOUR : -# ------------------------------------- - - __chart6=AFFE_CHAR_THER_F(MODELE=__nomot2, - FLUX_REP=_F(GROUP_MA=GROUP_MA_BORD, - FLUX_X =__fnsec4, - FLUX_Y =__fnsec3,), ) - -# --- RESOLUTION DE LAPLACIEN(OMEGA) = 0 -# --- AVEC D(OMEGA)/D(N) = Z*NY-Y*NZ SUR LE CONTOUR DE LA SECTION -# --- ET SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION -# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE -# --- N = 0, N ETANT L EFFORT NORMAL) : -# ------------------------------- - - __tempe4=THER_LINEAIRE(MODELE=__nomot2, - CHAM_MATER=__chmat2, - EXCIT=(_F(CHARGE=__chart5,), - _F(CHARGE=__chart6,),), - SOLVEUR=_F(METHODE='LDLT', - RENUM='SANS', - STOP_SINGULIER='NON',), ) - -# --- CALCUL DE L INERTIE DE GAUCHISSEMENT : -# ------------------------------------- - - nomres=POST_ELEM(MODELE=__nomot2, - CHAM_MATER=__chmat2, - CARA_POUTRE=_F(CARA_GEOM=__cacis, - LAPL_PHI=__tempe4, - TOUT='OUI', - OPTION='CARA_GAUCHI'), ) - - -# -# ================================================================== -# --- = CALCUL DE LA CONSTANTE DE TORSION SUR CHAQUE GROUPE = -# --- = ET DU RAYON DE TORSION SUR CHAQUE GROUPE = -# --- = DU CENTRE DE TORSION/CISAILLEMENT = -# --- = DES COEFFICIENTS DE CISAILLEMENT = -# ================================================================== - - -# - - - if GROUP_MA_BORD and GROUP_MA: - -# --- CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE LA SECTION : -# ------------------------------------------------------ - - if type(GROUP_MA_BORD)==types.StringType : - l_group_ma_bord=[GROUP_MA_BORD,] - else: - l_group_ma_bord= GROUP_MA_BORD - if type(GROUP_MA)==types.StringType : - l_group_ma=[GROUP_MA,] - else: - l_group_ma= GROUP_MA - - if args.has_key('NOEUD'): - if type(args['NOEUD'])==types.StringType : - l_noeud=[args['NOEUD'],] - else: - l_noeud= args['NOEUD'] - - if len(l_group_ma)!=len(l_group_ma_bord): - UTMESS('F', "MACR_CARA_POUTRE", "GROUP_MA et GROUP_MA_BORD incoherents") - if args.has_key('NOEUD') and (len(l_group_ma)!=len(l_noeud)): - UTMESS('F', "MACR_CARA_POUTRE", "GROUP_MA et NOEUD incoherents") - - __catp2=__cageo - for i in range(0,len(l_group_ma_bord)): - -# --- TRANSFORMATION DES GROUP_MA EN GROUP_NO SUR-LESQUELS -# --- ON POURRA APPLIQUER DES CONDITIONS DE TEMPERATURE IMPOSEE : -# --------------------------------------------------------- - - __nomlma=DEFI_GROUP(reuse=__nomlma, - MAILLAGE=__nomlma, - CREA_GROUP_NO=_F(GROUP_MA=l_group_ma_bord[i],) ) - - -# --- CREATION D UN MAILLAGE IDENTIQUE AU PREMIER A CECI PRES -# --- QUE LES COORDONNEES SONT EXPRIMEES DANS LE REPERE PRINCIPAL -# --- D INERTIE DONT L ORIGINE EST LE CENTRE DE GRAVITE DE LA SECTION : -# --------------------------------------------------------------- - - __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma, - REPERE=_F(TABLE=__cageo, - NOM_ORIG='CDG', - GROUP_MA=l_group_ma[i], ), ) - -# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE -# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE : -# ------------------------------------------------------ - - __nomoth=AFFE_MODELE(MAILLAGE=__nomapi, - AFFE=_F(GROUP_MA=l_group_ma[i], - PHENOMENE='THERMIQUE', - MODELISATION='PLAN', ) ) - -# --- POUR LA CONSTRUCTION DU LAPLACIEN, ON DEFINIT UN -# --- PSEUDO-MATERIAU DONT LES CARACTERISTIQUES THERMIQUES SONT : -# --- LAMBDA = 1, RHO*CP = 0 : -# ---------------------- - - __nomath=DEFI_MATERIAU(THER=_F(LAMBDA=1.0, - RHO_CP=0.0, ), ) - -# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT : -# --------------------------------------------------------- - - __chmath=AFFE_MATERIAU(MAILLAGE=__nomapi, - AFFE=_F(TOUT='OUI', - MATER=__nomath ), ) - -# -# ------------------------------------------------------------ -# --- - CALCUL DE LA CONSTANTE DE TORSION PAR RESOLUTION - -# --- - D UN LAPLACIEN AVEC UN TERME SOURCE EGAL A -2 - -# --- - L INCONNUE ETANT NULLE SUR LE CONTOUR DE LA SECTION : - -# --- - LAPLACIEN(PHI) = -2 DANS LA SECTION - -# --- - PHI = 0 SUR LE CONTOUR : - -# ------------------------------------------------------------ -# -# --- ON IMPOSE LA VALEUR 0 A L INCONNUE SCALAIRE SUR LE CONTOUR -# --- DE LA SECTION -# --- ET ON A UN TERME SOURCE EGAL A -2 DANS TOUTE LA SECTION : -# ------------------------------------------------------- - - __chart1=AFFE_CHAR_THER(MODELE=__nomoth, - TEMP_IMPO=_F(GROUP_NO=l_group_ma_bord[i], - TEMP=0.0 ), - SOURCE=_F(TOUT='OUI', - SOUR=2.0 ) ) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -2 -# --- AVEC PHI = 0 SUR LE CONTOUR : -# ---------------------------------------- - - __tempe1=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - EXCIT=_F(CHARGE=__chart1, ), - SOLVEUR=_F(STOP_SINGULIER='NON',) ) - -# -# ---------------------------------------------- -# --- - CALCUL DU CENTRE DE TORSION/CISAILLEMENT - -# --- - ET DES COEFFICIENTS DE CISAILLEMENT : - -# ---------------------------------------------- -# -# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR -# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE -# --- PAR UNE FONCTION EGALE A Y : -# -------------------------- - - __fnsec1=DEFI_FONCTION(NOM_PARA='X', - VALE=(0.,0.,10.,10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', ) - - __fnsec0=DEFI_CONSTANTE(VALE=0.,) - -# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION -# --- DE LAPLACE EST PRIS EGAL A Y DANS TOUTE LA SECTION : -# -------------------------------------------------- - - __chart2=AFFE_CHAR_THER_F(MODELE=__nomoth, - TEMP_IMPO=_F(NOEUD=l_noeud[i], - TEMP=__fnsec0), - SOURCE=_F(TOUT='OUI', - SOUR=__fnsec1) ) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -Y -# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : -# ------------------------------------------------ - - __tempe2=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - EXCIT=_F(CHARGE=__chart2, ), - SOLVEUR=_F(STOP_SINGULIER='NON',) ) - -# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR -# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE -# --- PAR UNE FONCTION EGALE A Z : -# -------------------------- - - __fnsec2=DEFI_FONCTION(NOM_PARA='Y', - VALE=(0.,0.,10.,10.), - PROL_DROITE='LINEAIRE', - PROL_GAUCHE='LINEAIRE', ) - -# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION -# --- DE LAPLACE EST PRIS EGAL A Z DANS TOUTE LA SECTION : -# -------------------------------------------------- - - __chart3=AFFE_CHAR_THER_F(MODELE=__nomoth, - TEMP_IMPO=_F(NOEUD=l_noeud[i], - TEMP=__fnsec0), - SOURCE=_F(TOUT='OUI', - SOUR=__fnsec2) ) - -# --- RESOLUTION DE LAPLACIEN(PHI) = -Z -# --- AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR : -# ------------------------------------------------ - - __tempe3=THER_LINEAIRE(MODELE=__nomoth, - CHAM_MATER=__chmath, - EXCIT=_F(CHARGE=__chart3, ), - SOLVEUR=_F(STOP_SINGULIER='NON',) ) - -# --- CALCUL DU RAYON DE TORSION : -# -------------------------- - -# CALCUL DU RAYON DE TORSION EXTERNE : rtext - - __tempe1=CALC_ELEM(reuse=__tempe1, - RESULTAT=__tempe1, - MODELE=__nomoth, - CHAM_MATER=__chmath, - TOUT_ORDRE='OUI', - OPTION='FLUX_ELNO_TEMP', - ) - - __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, - DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_bord[i]), - INFO=2,) - - __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', - CHEMIN=__chem, - RESULTAT=__tempe1, - NOM_CHAM='FLUX_ELNO_TEMP', - TRAC_NOR='OUI', - NOM_CMP=('FLUX','FLUY'), - OPERATION='MOYENNE')) - - __m1=abs(__flun['TRAC_NOR',3]) - __m2=abs(__flun['TRAC_NOR',4]) - __rtext=max(__m1,__m2) - -# CALCUL DU RAYON DE TORSION : rt -# rt = max ( rtext , 2*AIRE(TROU)/L(TROU) ) - - if args.has_key('GROUP_MA_INTE'): - if args['GROUP_MA_INTE'] != None : - if type(args['GROUP_MA_INTE'])==types.StringType : - l_group_ma_inte=[args['GROUP_MA_INTE'],] - else: - l_group_ma_inte=args['GROUP_MA_INTE'] - for j in range(0,len(l_group_ma_inte)): - __chem=INTE_MAIL_2D(MAILLAGE=__nomapi, - DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_inte[j]), - INFO=2,) - __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM', - CHEMIN=__chem, - RESULTAT=__tempe1, - NOM_CHAM='FLUX_ELNO_TEMP', - TRAC_NOR='OUI', - NOM_CMP=('FLUX','FLUY'), - OPERATION='MOYENNE')) - __m1=(abs(__flun['TRAC_NOR',3])+abs(__flun['TRAC_NOR',4]))/2. - if __m1 > __rtext : - __rtext=__m1 - - __rt=__rtext - -# --- CALCUL DE LA CONSTANTE DE TORSION : -# --------------------------------- - - __catp1=POST_ELEM(MODELE=__nomoth, - CHAM_MATER=__chmath, - CARA_POUTRE=_F(CARA_GEOM=__catp2, - LAPL_PHI=__tempe1, - RT=__rt, - GROUP_MA=l_group_ma[i], - OPTION='CARA_TORSION' ), ) - -# --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU -# --- CENTRE DE CISAILLEMENT/TORSION : -# ------------------------------ - - __catp2=POST_ELEM(MODELE=__nomoth, - CHAM_MATER=__chmath, - CARA_POUTRE=_F(CARA_GEOM=__catp1, - LAPL_PHI_Y=__tempe2, - LAPL_PHI_Z=__tempe3, - GROUP_MA=l_group_ma[i], - LONGUEUR=args['LONGUEUR'], - MATERIAU=args['MATERIAU'], - LIAISON =args['LIAISON'], - OPTION='CARA_CISAILLEMENT' ), ) - IMPR_TABLE(TABLE=__catp2) - dprod = __catp2.EXTR_TABLE().dict_CREA_TABLE() - nomres = CREA_TABLE(**dprod) - if not GROUP_MA_BORD : - nomres=POST_ELEM(MODELE=__nomamo, - CHAM_MATER=__nomama, - CARA_GEOM=mfact ) - IMPR_TABLE(TABLE=nomres) - - return ier diff --git a/Aster/Cata/cataSTA8/Macro/macr_ecla_pg_ops.py b/Aster/Cata/cataSTA8/Macro/macr_ecla_pg_ops.py deleted file mode 100644 index 8bfada76..00000000 --- a/Aster/Cata/cataSTA8/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/cataSTA8/Macro/macr_fiab_impr_ops.py b/Aster/Cata/cataSTA8/Macro/macr_fiab_impr_ops.py deleted file mode 100644 index 08ac8d10..00000000 --- a/Aster/Cata/cataSTA8/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/cataSTA8/Macro/macr_fiabilite_ops.py b/Aster/Cata/cataSTA8/Macro/macr_fiabilite_ops.py deleted file mode 100644 index fae50474..00000000 --- a/Aster/Cata/cataSTA8/Macro/macr_fiabilite_ops.py +++ /dev/null @@ -1,359 +0,0 @@ -#@ MODIF macr_fiabilite_ops Macro DATE 27/11/2006 AUTEUR GNICOLAS G.NICOLAS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -# RESPONSABLE GNICOLAS G.NICOLAS -# -def macr_fiabilite_ops(self, INFO, - LOGICIEL, VERSION, - UNITE_ESCL, MESS_ASTER, - SEUIL, SEUIL_TYPE, - VARIABLE, - **args ) : -# -# args est le dictionnaire des arguments optionnels -# args.keys() est la liste des mots-clés -# args.keys()[0] est la premiere valeur de cette liste -# args.keys()[1:] est la liste des valeurs suivantes dans cette liste -# args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante. -### print args -### print args.keys() -### if len (args.keys())>0 : print args.keys()[0] -# - """ Macro-commande réalisant le pilotage du logiciel de fiabilite. """ -# -# On charge les modules nécessaires - from Accas import _F - from Macro import fiabilite_mefisto - import aster - import os - import string - import sys - import Numeric -# -#____________________________________________________________________ -# -# 1. Préalables -#____________________________________________________________________ -# -# 1.1 ==> La macro compte pour 1 dans l'exécution des commandes -# - self.set_icmd(1) -# -# 1.2 ==> On importe les définitions des commandes Aster utilisées -# dans la macro -# - EXEC_LOGICIEL = self.get_cmd("EXEC_LOGICIEL") - DEFI_LIST_REEL = self.get_cmd("DEFI_LIST_REEL") -# -# 1.3 ==> Le nom du programme de fiabilite à lancer -# - repertoire_outils = aster.repout() - fiabilite = repertoire_outils + "fiabilite" -# -# 1.4 ==> Initialisations -# - erreur = 0 - erreur_partiel = [0] - Rep_Calc_ASTER = os.getcwd() - Nom_Exec_ASTER = sys.executable -# - messages_erreur = { 0 : "Tout va bien", - 1 : "Impossible de créer le répertoire de travail pour le logiciel de fiabilité.", - 2 : "Probleme d'ouverture du fichier.", - 10 : "Erreur dans le choix du logiciel de fiabilité.", - 11 : "Erreur dans la création des données pour le logiciel de fiabilité.", - 100 : "Erreur." } -# - while not erreur : -# -#____________________________________________________________________ -# -# 2. Répertoires et fichiers -#____________________________________________________________________ -# -# 2.1. ==> Création du répertoire pour l'exécution du logiciel de fiabilité -# - Nom_Rep_local = "tmp_fiabilite" - Rep_Calc_LOGICIEL_local = os.path.join(".", Nom_Rep_local) - Rep_Calc_LOGICIEL_global = os.path.join(Rep_Calc_ASTER, Nom_Rep_local) -# - try : - os.mkdir(Rep_Calc_LOGICIEL_global) - except os.error, erreur_partiel : - self.cr.warn("Code d'erreur de mkdir : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1]) - self.cr.fatal("Impossible de créer le répertoire de travail pour le logiciel de fiabilité : "+Rep_Calc_LOGICIEL_global) - erreur = erreur + 1 - break -# -# 2.2. ==> On définit un fichier pour les résultats du calcul de fiabilité -# - FIC_RESU_FIABILITE = os.path.join(Rep_Calc_LOGICIEL_global, "resu_fiabilite") -# -# 2.3. ==> On crée un fichier annexe pour transmettre des données à la procédure -# de lancement des calculs ASTER par le LOGICIEL. -# Ce fichier est créé dans le répertoire d'exécution du logiciel de fiabilité. -# On fait ainsi car les arguments passés ont du mal à transiter via l'exécutable. -# On stocke : -# 1. Le niveau d'information -# 2. L'unité logique associée au jeu de commandes déterministes -# 3. La gestion des sorties ASTER -# 4. Le nom de l'exécutable ASTER -# 5. Le type de seuil du problème (maximum ou minimum) -# - fic_Info_ASTER = os.path.join(Rep_Calc_LOGICIEL_global,"InfoExecASTER") - try : - f_execAster = open(fic_Info_ASTER, "w") - except os.error,erreur_partiel : - self.cr.warn("Fichier : "+fic_Info_ASTER) - self.cr.warn("Code d'erreur de open : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1]) - erreur = 2 - break -# - f_execAster.write(str(INFO)+"\n") - f_execAster.write(str(UNITE_ESCL)+"\n") - f_execAster.write(str(MESS_ASTER)+"\n") - f_execAster.write(str(Nom_Exec_ASTER)+"\n") - f_execAster.write(str(SEUIL_TYPE)) - f_execAster.close() - fichier = open (fic_Info_ASTER,"r") -# - if INFO >= 2 : - print "\nContenu du fichier " + fic_Info_ASTER," :" - les_lignes = fichier.readlines() - fichier.close() - print les_lignes, "\n" -# -#____________________________________________________________________ -# -# 3. Les variables par defaut -#____________________________________________________________________ -# -# 3.1. ==> Dictionnaire des valeurs physiques et liées à la loi -# - valeurs_lois = { } -# - for la_variable in VARIABLE : -# - v_moy_physique = None - v_moy_loi = None - v_min_loi = None - v_max_loi = None - sigma_loi = None -# -# 3.1.1. ==> loi uniforme : transfert des min et max -# on définit une moyennne comme étant la médiane des extremes. -# - if la_variable["LOI"] == "UNIFORME" : - v_moy_physique = 0.5 * ( la_variable["VALE_MIN"] + la_variable["VALE_MAX"] ) - v_min_loi = la_variable["VALE_MIN"] - v_max_loi = la_variable["VALE_MAX"] -# -# 3.1.2. ==> loi normale : transfert des moyennne et écart-type. -# - elif la_variable["LOI"] == "NORMALE" : - v_moy_loi = la_variable["VALE_MOY"] - v_moy_physique = v_moy_loi - sigma_loi = la_variable["ECART_TYPE"] -# -# 3.1.3. ==> loi lognormale : identité du min, conversion pour le reste -# - elif la_variable["LOI"] == "LOGNORMALE" : - v_min_loi = la_variable["VALE_MIN"] - if la_variable["VALE_MOY_PHY"] is None : - v_moy_loi = la_variable["VALE_MOY"] - sigma_loi = la_variable["ECART_TYPE"] - aux = Numeric.exp(0.5*sigma_loi*sigma_loi+v_moy_loi) - v_moy_physique = v_min_loi + aux - else : - v_moy_physique = la_variable["VALE_MOY_PHY"] - aux = la_variable["ECART_TYPE_PHY"]/(la_variable["VALE_MOY_PHY"]-la_variable["VALE_MIN"]) - aux1 = 1. + aux*aux - aux2 = Numeric.sqrt(aux1) - v_moy_loi = Numeric.log((la_variable["VALE_MOY_PHY"]-la_variable["VALE_MIN"])/aux2) - aux2 = Numeric.log(aux1) - sigma_loi = Numeric.sqrt(aux2) -# -# 3.1.4. ==> loi normale tronquée : transfert des moyenne, mini/maxi et écart-type -# on définit une moyennne comme étant la médiane des extremes. -# - else : - v_moy_loi = la_variable["VALE_MOY"] - v_min_loi = la_variable["VALE_MIN"] - v_max_loi = la_variable["VALE_MAX"] - sigma_loi = la_variable["ECART_TYPE"] - v_moy_physique = 0.5 * ( la_variable["VALE_MIN"] + la_variable["VALE_MAX"] ) -# - dico = { } - dico["v_moy_physique"] = v_moy_physique - dico["v_moy_loi"] = v_moy_loi - dico["v_min_loi"] = v_min_loi - dico["v_max_loi"] = v_max_loi - dico["sigma_loi"] = sigma_loi - valeurs_lois[la_variable] = dico -# -#____________________________________________________________________ -# -# 4. Création des fichiers de donnees pour le logiciel de fiabilite -#____________________________________________________________________ -# - if ( LOGICIEL == "MEFISTO" ) : -# -# 4.1. ==> MEFISTO -# - erreur = fiabilite_mefisto.fiabilite_mefisto ( self, Rep_Calc_LOGICIEL_global, - INFO, VERSION, - SEUIL, SEUIL_TYPE, - VARIABLE, - valeurs_lois, - **args ) -# -# 4.2. ==> Erreur si autre logiciel -# - else : -# - self.cr.warn("Logiciel de fiabilité : "+LOGICIEL) - erreur = 10 -# -# 4.3. ==> Arret en cas d'erreur -# - if erreur : - break -# -#____________________________________________________________________ -# -# 5. Ecriture de la commande d"exécution du logiciel de fiabilité -# -# Remarque : dans la donnée de la version du logiciel de fiabilité, il faut remplacer -# le _ de la donnée par un ., qui -# est interdit dans la syntaxe du langage de commandes ASTER -# Remarque : il faut remplacer le N majuscule de la donnee par -# un n minuscule, qui est interdit dans la syntaxe du langage -# de commandes ASTER -#____________________________________________________________________ -# -# - VERSION = string.replace(VERSION, "_", ".") - VERSION = string.replace(VERSION, "N", "n") -# - EXEC_LOGICIEL ( ARGUMENT = (Rep_Calc_LOGICIEL_global, # nom du repertoire - LOGICIEL, # nom du logiciel de fiabilité - VERSION, # version du logiciel de fiabilité - FIC_RESU_FIABILITE, # fichier des résultats du logiciel de fiabilité - ), - LOGICIEL = fiabilite - ) -# -#-------------------------------------------------------------------- -# 6. C'est fini ! -#-------------------------------------------------------------------- -# - break -# -# 6.1. ==> Arret en cas d'erreur -# - if erreur : - if not messages_erreur.has_key(erreur) : - erreur = 100 - self.cr.fatal(messages_erreur[erreur]) -# -# 6.2. ==> Si tout va bien, on crée une liste de réels pour le retour. -# Si le fichier n'a pas été rempli, on met une valeur nulle unique. -# - if os.path.isfile(FIC_RESU_FIABILITE) : - liste_reel = [] - fic = open(FIC_RESU_FIABILITE, "r") - tout = fic.readlines() - fic.close - for ligne in tout: - liste_reel.append(float(ligne[:-1])) - else : - liste_reel = [0.] -# - self.DeclareOut("nomres", self.sd) - nomres = DEFI_LIST_REEL( VALE = liste_reel , INFO = 1 ) -# -# 6.3. ==> Menage du répertoire créé pour le calcul fiabiliste -# - liste = os.listdir(Rep_Calc_LOGICIEL_global) -## print liste -# - for nomfic in liste : - fic_total = os.path.join(Rep_Calc_LOGICIEL_global, nomfic) -# - if os.path.isdir(fic_total) : - liste_bis = os.listdir(fic_total) - for nomfic_bis in liste_bis : - fic_total_bis = os.path.join(fic_total, nomfic_bis) - if os.path.islink(fic_total_bis) : - os.unlink (fic_total_bis) - else : - os.chmod (fic_total_bis, 0755) - os.remove (fic_total_bis) - os.rmdir (fic_total) -# - elif os.path.isfile(fic_total) : - os.chmod (fic_total, 0755) - os.remove (fic_total) -# - os.rmdir (Rep_Calc_LOGICIEL_global) -# - return -# -########################## Fin de la fonction################################## -# -########################## Auto-test################################## -# -if __name__ == "__main__" : -# - import os - import sys - import tempfile -# - Rep_Calc_LOGICIEL_global = tempfile.mktemp() - os.mkdir(Rep_Calc_LOGICIEL_global) -# - classe = None - INFO = 2 - LOGICIEL = "MEFISTO" - VERSION = "V3_2" - UNITE_ESCL = 38 - MESS_ASTER = "DERNIER" - SEUIL = 1789. - SEUIL_TYPE = "MAXIMUM" - VARIABLE = [] - args = {} -# - lr8 = macr_fiabilite_ops(classe, INFO, - LOGICIEL, VERSION, - UNITE_ESCL, MESS_ASTER, - SEUIL, SEUIL_TYPE, - VARIABLE, - **args ) -### print "lr8 = ", lr8 - Liste = os.listdir(Rep_Calc_LOGICIEL_global) -# - for nomfic in Liste : - fic_total = os.path.join(Rep_Calc_LOGICIEL_global, nomfic) - os.chmod (fic_total, 0755) - os.remove (fic_total) - os.rmdir (Rep_Calc_LOGICIEL_global) -# - sys.exit("blabla") diff --git a/Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py deleted file mode 100644 index 41179af6..00000000 --- a/Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py +++ /dev/null @@ -1,415 +0,0 @@ -#@ MODIF macr_lign_coupe_ops Macro DATE 01/04/2008 AUTEUR MACOCCO K.MACOCCO -# -*- 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,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,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',),); - - 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'),) - - if n_modele in self.get_global_contexte().keys() : MODELE_1=self.get_global_contexte()[n_modele] - else : MODELE_1=self.jdc.current_context[n_modele] - __recou=PROJ_CHAMP(METHODE='ELEM', - RESULTAT=RESULTAT, - MODELE_1=MODELE_1, - MODELE_2=__mocou, - TYPE_CHAM='NOEU', - NOM_CHAM=NOM_CHAM, **motscles); - - - - # Expression des contraintes aux noeuds ou des déplacements dans le repere local - __remodr=__recou - icham=0 - ioc2=0 - mcACTION=[] - if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') : - if NOM_CHAM in ('DEPL','SIEF_ELNO_ELGA','SIGM_NOEU_DEPL','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'):icham=1 - # Gestion du calcul en repère local - VECT_Y - rep_local=0 - if m['NB_POINTS'] !=None : - if m['VECT_Y'] !=None : - if icham: rep_local=1 - else : - UTMESS('A','MACR_LIGN_COUPE','LE CHAMP '+NOM_CHAM+' N EST PAS TRAITE PAR MACR_LIGNE_COUPE EN REPERE LOCAL.' - +'LE CALCUL EST EFFECTUE EN REPERE GLOBAL.') - - for m in LIGN_COUPE : - if rep_local: - epsi=0.00000001 - # --- determination des angles nautiques - cx1=m['COOR_EXTR'][0]-m['COOR_ORIG'][0] - 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','SIEF_ELNO_ELGA','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) - - if m['NB_POINTS'] !=None : - ioc2=ioc2+1 - groupe='LICOU'+str(ioc2) - if m['INTITULE'] !=None : intitl=m['INTITULE'] - else : intitl='l.coupe'+str(ioc2) - elif m['GROUP_NO']!=None : - groupe=m['GROUP_NO'].ljust(8).upper() - if m['INTITULE'] !=None : intitl=m['INTITULE'] - else : intitl=groupe - mcACTION.append( _F(INTITULE = intitl, - RESULTAT = __remodr, - GROUP_NO = groupe, - NOM_CHAM = NOM_CHAM, - TOUT_CMP = 'OUI', - OPERATION = 'EXTRACTION', ) ) - - else: - - - # Production d'une table pour toutes les lignes de coupe - if m['NB_POINTS'] !=None : - ioc2=ioc2+1 - groupe='LICOU'+str(ioc2) - if m['INTITULE'] !=None : intitl=m['INTITULE'] - else : intitl='l.coupe'+str(ioc2) - elif m['GROUP_NO']!=None : - groupe=m['GROUP_NO'].ljust(8).upper() - if m['INTITULE'] !=None : intitl=m['INTITULE'] - else : intitl=groupe - mcACTION.append( _F(INTITULE = intitl, - RESULTAT = __recou, - GROUP_NO = groupe, - NOM_CHAM = NOM_CHAM, - TOUT_CMP = 'OUI', - OPERATION = 'EXTRACTION', ) ) - - elif AsType(RESULTAT).__name__ in ('evol_ther',) : - for m in LIGN_COUPE : - if m['NB_POINTS'] !=None : - ioc2=ioc2+1 - groupe='LICOU'+str(ioc2) - if m['INTITULE'] !=None : intitl=m['INTITULE'] - else : intitl='l.coupe'+str(ioc2) - elif m['GROUP_NO']!=None : - groupe=m['GROUP_NO'].ljust(8).upper() - if m['INTITULE'] !=None : intitl=m['INTITULE'] - else : intitl=groupe - mcACTION.append( _F(INTITULE = intitl, - RESULTAT = __recou, - GROUP_NO = groupe, - NOM_CHAM = NOM_CHAM, - TOUT_CMP = 'OUI', - OPERATION = 'EXTRACTION', ) ) - - - __tabitm=POST_RELEVE_T(ACTION=mcACTION,); - - # on repasse par les tables python pour supprimer les paramètres inutiles - # NOEUD (car il est propre au maillage de la ligne) et RESU - - self.DeclareOut('nomres',self.sd) - dictab=__tabitm.EXTR_TABLE() - - del dictab['NOEUD'] - del dictab['RESU'] - dprod = dictab.dict_CREA_TABLE() - - nomres=CREA_TABLE(**dprod) - - return ier diff --git a/Aster/Cata/cataSTA8/Macro/macr_recal_ops.py b/Aster/Cata/cataSTA8/Macro/macr_recal_ops.py deleted file mode 100644 index b067f58c..00000000 --- a/Aster/Cata/cataSTA8/Macro/macr_recal_ops.py +++ /dev/null @@ -1,1025 +0,0 @@ -#@ MODIF macr_recal_ops Macro DATE 14/11/2006 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -import os, sys, types, copy, math -from glob import glob -import Numeric - -debug = False - -INFO = 1 -NOMPRO = 'MACR_RECAL' - -fichier_export = None -mode_python = False -type_fonctionnelle = 'float' - -# -------------------------------------------------------------------------------------------------- -def UTMESS(code,sprg,texte): - fmt='\n <%s> <%s> %s\n\n' - if INFO>0 or code=='F': print fmt % (code,sprg,texte) - if code=='F': - sys.exit() - - -# -------------------------------------------------------------------------------------------------- -def Ecriture_Fonctionnelle(output_file, type_fonctionnelle, fonctionnelle): - - try: os.remove(output_file) - except: pass - - f=open(output_file, 'w') - if type_fonctionnelle == 'vector': - fonctionnelle = str(fonctionnelle.tolist()) - fonctionnelle = fonctionnelle.replace('[','') - fonctionnelle = fonctionnelle.replace(']','') - f.write(str(fonctionnelle)) - f.close() - - -# -------------------------------------------------------------------------------------------------- -def Ecriture_Derivees(output_file, derivees): - - try: os.remove(output_file) - except: pass - - # On sort si il n'y a pas de derivees a imprimer - if not derivees: return - - txt = '' - a = derivees - for l in range(len(a[:,0])): - ligne = [] - for c in range(len(a[0,:])): - ligne.append( str(a[l,c]) ) - txt += ','.join(ligne) + '\n' - - f=open(output_file, 'w') - f.write(txt) - f.close() - - -# -------------------------------------------------------------------------------------------------- -def Sortie(LIST_NOM_PARA, LIST_PARA, val, CALCUL_ASTER, Mess): - """Sortie de la macro, on renvoit les parametres obtenus""" - - import Cata, aster, Macro - from Cata.cata import DEFI_LIST_REEL - from Accas import _F - from Utilitai.Utmess import UTMESS - from Macro import reca_message - from Macro import reca_algo - from Macro import reca_interp - from Macro import reca_utilitaires - from Macro import reca_calcul_aster - from Macro.reca_controles import gestion - - if CALCUL_ASTER.METHODE != 'EXTERNE': - txt = "Nombre d'evaluation de la fonction : " + str(CALCUL_ASTER.evaluation_fonction) - UTMESS('I','MACR_RECAL',txt) - Mess.ecrire("\n"+txt) - - LIST_NOM_PARA_ALPHA = [ para[0] for para in LIST_PARA ] - LIST_NOM_PARA_ALPHA.sort() - lival=[] - for i in LIST_NOM_PARA: - lival.append( val[ LIST_NOM_PARA_ALPHA.index(i) ] ) - nomres = DEFI_LIST_REEL(VALE=lival) - - return nomres - - -# -------------------------------------------------------------------------------------------------- -def macr_recal_externe( RESU_EXP, LIST_PARA, RESU_CALC, UNITE_ESCL=3, POIDS=None, LIST_DERIV=None, - ITER_MAXI=10, ITER_FONC_MAXI=100, RESI_GLOB_RELA=1.e-6, UNITE_RESU=91, PARA_DIFF_FINI=0.001, - GRAPHIQUE=None, SUIVI_ESCLAVE='NON', METHODE='EXTERNE', INFO=1, **args ): - - METHODE='EXTERNE' - - # Mot-cle GRAPHIQUE - if GRAPHIQUE: - GRAPHIQUE0 = {'INTERACTIF': 'NON', 'AFFICHAGE': 'TOUTE_ITERATION', 'UNITE': 90, 'FORMAT': 'XMGRACE'} - for k in GRAPHIQUE0.keys(): - if not GRAPHIQUE.has_key(k): GRAPHIQUE[k] = GRAPHIQUE0[k] - - if optparse_prefix_graph: args['prefix_graph'] = opts.prefix_graph - else: args['prefix_graph'] = os.getcwd() + os.sep + 'graph' - - # Les parametres passes sur la ligne de commande surchargent les parametres de la commande MACR_RECAL - if optparse_INFO: INFO=opts.INFO - if optparse_follow_output: - if opts.follow_output == True: SUIVI_ESCLAVE='OUI' - else: SUIVI_ESCLAVE='NON' - - if optparse_objective: - if type_fonctionnelle=='vector': args['FONCTIONNELLE']='VECTORIELLE' - else: args['FONCTIONNELLE']='SCALAIRE' - - if optparse_gradient: - if opts.gradient=='normal': args['GRADIENT']='NORMAL' - elif opts.gradient=='adim': args['GRADIENT']='ADIMENSIONNE' - else: args['GRADIENT']='NON_CALCULE' - - - fonctionnelle, gradient = macr_recal(UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, LIST_DERIV, RESU_CALC, - ITER_MAXI, ITER_FONC_MAXI, RESI_GLOB_RELA, UNITE_RESU, PARA_DIFF_FINI, - GRAPHIQUE, SUIVI_ESCLAVE, METHODE, INFO, **args ) - - return fonctionnelle, gradient - - -# -------------------------------------------------------------------------------------------------- -def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, LIST_DERIV, RESU_CALC, - ITER_MAXI, ITER_FONC_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI, - GRAPHIQUE, SUIVI_ESCLAVE, METHODE, INFO, **args ): - """Macro commande realisant le recalage de modeles Aster""" - # Initialisation du compteur d'erreurs - ier=0 - - import aster - import Macro - from Cata import cata - from Cata.cata import DEFI_LIST_REEL, CREA_TABLE, TEST_TABLE - - from Macro import reca_message - from Macro import reca_algo - from Macro import reca_interp - from Macro import reca_utilitaires - from Macro import reca_calcul_aster - from Macro.reca_controles import gestion - from Utilitai.Utmess import UTMESS - - # Gestion des Exceptions - prev_onFatalError = aster.onFatalError() - aster.onFatalError('EXCEPTION') - - # La macro compte pour 1 dans l'execution des commandes - self.set_icmd(1) - - # Concept en sortir - self.DeclareOut('nomres',self.sd) - - # Declaration de toutes les commandes Aster - for k,v in cata.__dict__.items() : - if type(v)==types.InstanceType: - if v.__class__.__name__ in ('OPER','MACRO'): - self.current_context[k]= v - self.current_context['_F']=cata.__dict__['_F'] - - macr_recal(UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, LIST_DERIV, RESU_CALC, - ITER_MAXI, ITER_FONC_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI, - GRAPHIQUE, SUIVI_ESCLAVE, METHODE, INFO, **args) - - return - - -# -------------------------------------------------------------------------------------------------- -def macr_recal(UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, LIST_DERIV, RESU_CALC, - ITER_MAXI, ITER_FONC_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI, - GRAPHIQUE, SUIVI_ESCLAVE, METHODE, INFO, **args ): - - - # Import d'as_profil - if os.environ.has_key('ASTER_ROOT'): - sys.path.append(os.path.join(os.environ['ASTER_ROOT'], 'ASTK', 'ASTK_SERV', 'lib')) - else: - try: sys.path.append(os.path.join(aster.repout, '..', 'ASTK', 'ASTK_SERV', 'lib')) - except: pass - try: - from as_profil import ASTER_PROFIL - except: - UTMESS('F','MACR_RECAL',"Impossible d'importer le module as_profil ! Vérifier la variable d'environnement ASTER_ROOT ou mettez a jour ASTK.") - - import Macro, Utilitai - from Macro import reca_message - from Macro import reca_algo - from Macro import reca_interp - from Macro import reca_utilitaires - from Macro import reca_calcul_aster - from Macro.reca_controles import gestion - if( METHODE != 'EXTERNE'): - from Utilitai.optimize import fmin, line_search, line_search_BFGS, approx_fprime, approx_fhess_p, fminBFGS, fminNCG - - if( METHODE == 'EXTERNE'): - pass - else: - if GRAPHIQUE: - dGRAPHIQUE=GRAPHIQUE[0].cree_dict_valeurs(GRAPHIQUE[0].mc_liste) - if dGRAPHIQUE.has_key('FORMAT') and dGRAPHIQUE['FORMAT'] == 'GNUPLOT': - # On essaie d'importer Gnuplot -> PAS DE GRAPHIQUE - try: - import Gnuplot - except ImportError: - GRAPHIQUE == None - if INFO>=1: UTMESS('A','MACR_RECAL',"Le logiciel Gnuplot ou le module python Gnuplot.py n'est pas disponible. On desactive l'affichage des courbes par Gnuplot.") - - - #_____________________________________________ - # - # VERIFICATION PREALABLE SUR MEM_ASTER - #_____________________________________________ - - # Lecture du fichier .export - list_export = glob('*.export') - if len(list_export) == 0: - UTMESS('F','MACR_RECAL',"Probleme : il n'y a pas de fichier .export dans le repertoire de travail!") - elif len(list_export) >1: - UTMESS('F','MACR_RECAL',"Probleme : il y a plus d'un fichier .export dans le repertoire de travail!") - - prof = ASTER_PROFIL(list_export[0]) - - mem_aster = prof['mem_aster'][0] - memjeveux = prof.args.get('memjeveux') - - if mem_aster in ('', '100'): - if INFO>=1: UTMESS('A','MACR_RECAL',"Attention : il faut specifier une valeur pour 'mem_aster' (menu Option de ASTK) " \ - "pour limiter la memoire allouee au calcul maitre.") - mem_aster = '0' - if not memjeveux: - UTMESS('F','MACR_RECAL',"Probleme : aucune valeur pour le parametre 'memjeveux'. Verifier le .export") - - try: - if mem_aster == '0': - memjeveux_esclave = float(memjeveux) - else: - memjeveux_esclave = float(memjeveux) / float(mem_aster) * 100. - float(memjeveux) - except: - UTMESS('F','MACR_RECAL',"Probleme : verifier les valeurs des parametres 'mem_aster' et 'memjeveux'") - - if INFO>=1: UTMESS('I','MACR_RECAL',"Information : les calculs esclaves utiliseront : %.1f Mega Mots." % memjeveux_esclave) - - - #_____________________________________________ - # - # INITIALISATIONS - #_____________________________________________ - - # Liste des parametres utilisant la sensibilité - if not LIST_DERIV: LIST_DERIV = {} - LIST_SENSI = LIST_DERIV.keys() - - # Stocke l'ordre initial des parametres pour restituer dans le bon ordre les valeurs en sortie de la macro - LIST_NOM_PARA = [ para[0] for para in LIST_PARA ] - - # On classe les parametres - LIST_SENSI.sort() - LIST_PARA.sort() - - # Defini si on utilise le mot-clé SENSIBILITE pour IMPR_TABLE ou non - if len(LIST_SENSI) >0: table_sensibilite = True - else: table_sensibilite = False - - # Defini si on ajoute l'echo des calculs esclaves dans le mess du calcul maitre - follow_output = False - if SUIVI_ESCLAVE and SUIVI_ESCLAVE=='OUI': follow_output = True -# if( METHODE == 'EXTERNE') and mode_python: follow_output = opts.follow_output - - # Pour les algorithmes d'optimize, on a des limitations - if METHODE in ['FMIN', 'FMINBFGS', 'FMINNCG']: - # On ne peut tracer qu'a la derniere iteration - if GRAPHIQUE: - if GRAPHIQUE['AFFICHAGE']=='TOUTE_ITERATION': UTMESS('I','MACR_RECAL',"Pour l'algorithme " + METHODE + " on ne peut tracer qu'a la derniere iteration") - # Les bornes ne sont pas gerees - UTMESS('I','MACR_RECAL',"Pour l'algorithme " + METHODE + " on ne tient pas compte des bornes sur les parametres.") - - #_______________________________________________ - # - # GESTION DE L'OPTION FACULTATIVE POUR LES POIDS - #_______________________________________________ - if( POIDS == None): - POIDS=Numeric.ones(len(RESU_EXP)) - - - #_____________________________________________ - # - # GESTION DES ERREURS DE SYNTAXE - #_____________________________________________ - texte_erreur = gestion(UNITE_ESCL,LIST_PARA,RESU_CALC,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU,METHODE) - if (texte_erreur != ""): - UTMESS('F', "MACR_RECAL", texte_erreur) - - - #_____________________________________________ - # - # INITIALISATIONS - #_____________________________________________ - - if( METHODE != 'EXTERNE'): - iter = 0 - restant,temps_iter=0.,0. - restant,temps_iter,err=reca_utilitaires.temps_CPU(restant,temps_iter) - - para,val,borne_inf,borne_sup = reca_utilitaires.transforme_list_Num(LIST_PARA,RESU_EXP) - - # Pour l'algorithme externe, les valeurs sont celles lues dans le fichier input.txt - if( METHODE == 'EXTERNE') and mode_python: val = val_externe - - val_init = copy.copy(val) - - # OBJET "PARAMETRES GLOBAUX" - PARAMETRES = reca_calcul_aster.PARAMETRES( - METHODE=METHODE, - UNITE_RESU=UNITE_RESU, - INFO=INFO, - fich_output='./REPE_OUT/output_esclave.txt', - mode_include=False, - follow_output=follow_output, - table_sensibilite=table_sensibilite, - memjeveux_esclave=memjeveux_esclave, - PARA_DIFF_FINI=PARA_DIFF_FINI, - ITER_MAXI=ITER_MAXI, - ITER_FONC_MAXI=ITER_FONC_MAXI, - ) - - if( METHODE == 'EXTERNE'): - PARAMETRES.fich_output = './tmp_macr_recal/output_esclave.txt' - type_fonctionnelle = 'float' - if args.has_key('FONCTIONNELLE') and args['FONCTIONNELLE'] == 'VECTORIELLE': - PARAMETRES.vector_output = True - type_fonctionnelle = 'vector' - - # On utilise le critere en erreur plutot que normalise - elif METHODE in ['FMIN', 'FMINBFGS', 'FMINNCG']: PARAMETRES.error_output = True - - # OBJET "CALCUL" - CALCUL_ASTER = reca_calcul_aster.CALCUL_ASTER(PARAMETRES, UL=UNITE_ESCL, para=para, reponses=RESU_CALC, LIST_SENSI=LIST_SENSI, LIST_DERIV=LIST_DERIV) - - # Instances des classes pour le calcul de l'erreur et le dimensionnemnt/adim - Simul = reca_interp.Sim_exp(RESU_EXP,POIDS) - Dim = reca_algo.Dimension(copy.copy(val_init),para) - - CALCUL_ASTER.Simul = Simul - CALCUL_ASTER.Dim = Dim - CALCUL_ASTER.reca_algo = reca_algo - - if (GRAPHIQUE): - CALCUL_ASTER.UNITE_GRAPHIQUE = GRAPHIQUE['UNITE'] - - - # Instance de la classe gérant l'affichage des resultats du calcul de l'optimisation - Mess = reca_message.Message(para,RESU_EXP,copy.copy(val_init),UNITE_RESU) - - if( METHODE != 'EXTERNE'): - Mess.initialise() - txt = "Lancement de l'optimisation avec la methode : " + METHODE - if INFO>=1: UTMESS('I','MACR_RECAL',txt) - Mess.ecrire(txt) - - - - #------------------------------------------------------------------------------- - # Methode EXTERNE (en fait juste une evaluation de la fonction puis on sort) - # - if( METHODE == 'EXTERNE'): - - # On sauvegarde le fichier esclave si celui-ci est fort.UL (sinon il sera ecrase) - fic_esclave = './fort.'+str(UNITE_ESCL) - txt_old_esclave = None - if os.path.isfile(fic_esclave): - f = open(fic_esclave,'r') - txt_old_esclave = f.read() - f.close() - -# try: os.remove('./fort.'+str(UNITE_ESCL)) -# except: pass - - # Fichier bilan - txt = '\nPARAMETRES : ' + str([ para[0] for para in LIST_PARA ]) + ' ' + str(val) - Mess.ecrire(txt) - - # Execution de l'esclave - if args.has_key('GRADIENT') and args['GRADIENT']!='NON_CALCULE': - - # Calcul de F et G - fonctionnelle, residu, A_nodim, A = CALCUL_ASTER.calcul_FG(val) - - # Ecriture du fichier grad.txt contenant les derivees - if args['GRADIENT'] == 'ADIMENSIONNE': gradient = A - else: gradient = A_nodim - - # Ecriture du fichier contenant le gradient - if not mode_python: Ecriture_Derivees(output_file='./fort.1901', derivees=gradient) - - else: - # Calcul de F - fonctionnelle = CALCUL_ASTER.calcul_F(val) - gradient = None - - # Ecriture du fichier contenant la fonctionnelle - if not mode_python: Ecriture_Fonctionnelle(output_file='./fort.1900', type_fonctionnelle=type_fonctionnelle, fonctionnelle=fonctionnelle) - - # Fichier bilan - if type(fonctionnelle) == types.FloatType: txt = '---> fonctionnelle : ' + str(fonctionnelle) - else: txt = '---> norme fonctionnelle : ' + str( math.sqrt( (Numeric.sum( [x**2 for x in fonctionnelle] )) ) ) - Mess.ecrire(txt) - - # Affichage de la valeur de la fonctionnelle - if mode_python and opts.INFO==-1: print txt - - # Affichage de la norme du gradient (AA: a remplacer par une formule de norme L2 !!) - if gradient: - norme = 0 - for l in range(len(gradient[:,0])): - for c in range(len(gradient[0,:])): - norme += ( gradient[l,c] * gradient[l,c] ) - norme = math.sqrt(norme) - txt = '---> norme du gradient : ' + str(norme) - Mess.ecrire(txt) - if mode_python and opts.INFO==-1: print txt - - - try: os.remove('./fort.'+str(UNITE_ESCL)) - except: pass - - # On remet l'ancien fichier esclave si c'etait fort.UL - if txt_old_esclave: - f = open(fic_esclave,'w') - f.write(txt_old_esclave) - f.close() - - - L_F = CALCUL_ASTER.L - iter = None - - # On va ensuite jusqu'au bout (pour l'impression des graphes) - - - - #------------------------------------------------------------------------------- - # Algorithme FMIN (pas d'adimensionnement car n'utilise pas de gradient) - # - elif( METHODE == 'FMIN'): - val, fval, warnflag = fmin(CALCUL_ASTER.calcul_F, val, maxiter=ITER_MAXI, maxfun=ITER_FONC_MAXI, fulloutput=1) - - iter_fonc = CALCUL_ASTER.evaluation_fonction - - Mess.ecrire("\nDerniere iteration : ") - Mess.affiche_etat_final_convergence(iter,ITER_MAXI,iter_fonc,ITER_FONC_MAXI, RESI_GLOB_RELA,residu=0,Act=[]) - Mess.affiche_fonctionnelle(fval) - Mess.affiche_valeurs(val) - if warnflag==1: Mess.ecrire("Attention : le nombre maximum d'evaluations de la fonction (ITER_FONC_MAXI) a ete atteint") - if warnflag==2: Mess.ecrire("Attention : le nombre maximum d'iteration de l'algorithme (ITER_MAXI) a ete atteint") - - nomres = Sortie(LIST_NOM_PARA, LIST_PARA, val, CALCUL_ASTER, Mess) - return - - else: - #------------------------------------------------------------------------------- - # Pour tous les autres methodes, on adimensionne - - # Calcul d'initialisation de F, ici L_deriv_sensible ne contient que les termes calculés par la sensibilité, les autres termes sont nuls - L_init, L_deriv_sensible = CALCUL_ASTER.calcul_Aster(val, INFO) - - L_J_init, erreur = Simul.multi_interpole(L_init, RESU_CALC) - J_init = Simul.norme_J(copy.copy(L_J_init),copy.copy(L_J_init),UNITE_RESU) - J = J_init - - A = Simul.sensibilite(CALCUL_ASTER, L_init, L_deriv_sensible, val, PARA_DIFF_FINI) - A = Dim.adim_sensi(A) - - l = reca_algo.lambda_init(Numeric.matrixmultiply(Numeric.transpose(A),A)) - gradient_init =reca_algo.calcul_gradient(A,erreur) #utile pour le test de convergence, on prend les valeurs dimensionnées - residu = reca_algo.test_convergence(gradient_init,erreur,A,Numeric.zeros(len(gradient_init),Numeric.Float)) - - Mess.affiche_result_iter(iter,J,val,residu,Numeric.array([])) - # On teste un manque de temps CPU - restant,temps_iter,err=reca_utilitaires.temps_CPU(restant,temps_iter) - if (err==1): - ier=ier+1 - return ier - - CALCUL_ASTER.L_init = L_init - CALCUL_ASTER.L_J_init = L_J_init - CALCUL_ASTER.J_init = J_init - CALCUL_ASTER.A_init = A - CALCUL_ASTER.gradient_init = gradient_init - CALCUL_ASTER.residu_init = residu - - - #------------------------------------------------------------------------------- - # Methode FMINBFGS et FMINNCG - - if METHODE in ['FMINBFGS', 'FMINNCG']: - # Derivees - fprime=CALCUL_ASTER.calcul_G - warnflag=0 - - if args.has_key('GRADIENT') and args['GRADIENT'] == 'NON_CALCULE': fprime=None - - if fprime: UTMESS('I','MACR_RECAL',"Les derivees sont calculees par Aster") - else: UTMESS('I','MACR_RECAL',"Les derivees sont calculees par l'algorithme") - - # Lancement de l'optimisation - if METHODE == 'FMINBFGS': - val, fval, func_calls, grad_calls, warnflag = fminBFGS(CALCUL_ASTER.calcul_F, val, fprime=fprime, maxiter=ITER_MAXI, avegtol=RESI_GLOB_RELA, fulloutput=1) - - elif METHODE == 'FMINNCG': - val, fval, func_calls, grad_calls, hcalls, warnflag = fminNCG(CALCUL_ASTER.calcul_F, val, fprime=fprime, fhess_p=None, fhess=None, maxiter=ITER_MAXI, avextol=RESI_GLOB_RELA, fulloutput=1) - - # Affichage des messages de sortie - iter_fonc = CALCUL_ASTER.evaluation_fonction - Mess.ecrire("\nDerniere iteration : ") - Mess.affiche_etat_final_convergence(iter,ITER_MAXI,iter_fonc,ITER_FONC_MAXI, RESI_GLOB_RELA,residu=0,Act=[]) - Mess.affiche_fonctionnelle(fval) - Mess.affiche_valeurs(val) -# if warnflag==1: Mess.ecrire("\nAttention : le nombre maximum d'evaluations de la fonction (ITER_FONC_MAXI) a ete atteint") -# if warnflag==2: Mess.ecrire("\nAttention : le nombre maximum d'iteration de la methode (ITER_MAXI) a ete atteint") - - # Permet d'avoir un diagnostic NOOK pour le job - if warnflag: iter=ITER_MAXI - - L_F = CALCUL_ASTER.L - residu = fval - - - - - #------------------------------------------------------------------------------- - # Methode Levenberg-Marquardt - else: - - #_____________________________________________ - # - # BOUCLE PRINCIPALE DE L'ALGORITHME - #_____________________________________________ - epsilon = 10.*RESI_GLOB_RELA - while((residu > RESI_GLOB_RELA) & (iter=1: UTMESS('I','MACR_RECAL',txt) - - if (GRAPHIQUE): - if GRAPHIQUE['AFFICHAGE']=='TOUTE_ITERATION': - GRAPHE_UL_OUT=GRAPHIQUE['UNITE'] - interactif=(GRAPHIQUE['INTERACTIF']=='OUI') - reca_utilitaires.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_utilitaires.temps_CPU(restant,temps_iter) - if (err==1): - ier=ier+1 - return ier - - - #_____________________________________________ - # - # FIN DES ITERATIONS - # CONVERGENCE OU ECHEC - #_____________________________________________ - iter_fonc = CALCUL_ASTER.evaluation_fonction - Mess.affiche_etat_final_convergence(iter,ITER_MAXI,iter_fonc,ITER_FONC_MAXI, RESI_GLOB_RELA,residu,Act) - reca_algo.calcul_etat_final(para,A,iter,ITER_MAXI,RESI_GLOB_RELA,residu,Mess) - - - #------------------------------------------------------------------------------- - - - #_____________________________________________ - # - # FIN DES ITERATIONS POUR TOUS LES ALGOS - #_____________________________________________ - - if (GRAPHIQUE): - trace = False - fichier = None - # Pour les algorithmes d'optimize.py, on ne peut tracer qu'a la derniere iteration - if (GRAPHIQUE['AFFICHAGE']=='ITERATION_FINALE') or (METHODE in ['FMIN', 'FMINBFGS', 'FMINNCG']): - trace = True - if (METHODE=='EXTERNE' and GRAPHIQUE['AFFICHAGE']=='TOUTE_ITERATION'): - trace = True - fichier = args['prefix_graph'] - if trace: - if INFO>=1: UTMESS('I','MACR_RECAL',"Trace des graphiques") - GRAPHE_UL_OUT=GRAPHIQUE['UNITE'] - interactif=(GRAPHIQUE['INTERACTIF']=='OUI') - reca_utilitaires.graphique(GRAPHIQUE['FORMAT'],L_F,RESU_EXP,RESU_CALC,iter,GRAPHE_UL_OUT,interactif,fichier) - - if( METHODE == 'EXTERNE'): - if mode_python: return fonctionnelle, gradient - -# print residu, RESI_GLOB_RELA - - # Si pas de convergence alors diagnostic NOOK_TEST_RESU - if residu > RESI_GLOB_RELA: - from Cata.cata import CREA_TABLE, TEST_TABLE - _tmp = [] - _tmp.append( { 'PARA': 'ITER_MAXI', 'LISTE_R': 0.0, } ) - motscle= {'LISTE': _tmp } - - TBL=CREA_TABLE(**motscle); - - TEST_TABLE(TABLE=TBL, - TYPE_TEST='SOMM', - NOM_PARA='ITER_MAXI', - VALE=1.,); - - #_____________________________________________ - # - # CREATIONS DE LA LISTE DE REELS CONTENANT - # LES VALEURS DES PARAMETRES A CONVERGENCE - #_____________________________________________ - - - nomres = Sortie(LIST_NOM_PARA, LIST_PARA, val, CALCUL_ASTER, Mess) - return - - - - - - - - - - - - - -#------------------------------------------------------------------------------- -if __name__ == '__main__': - - mode_python = True - - from optparse import OptionParser, OptionGroup - - p = OptionParser(usage='usage: %s fichier_export [options]' % sys.argv[0]) - p.add_option('-i', '--input', action='store', dest='input', type='string', default='input.txt', help='fichier contenant les parametres') - p.add_option('-o', '--output', action='store', dest='output', type='string', default='output.txt', help='fichier contenant la fonctionnelle') - p.add_option('-g', '--output_grad', action='store', dest='output_grad', type='string', default='grad.txt', help='fichier contenant le gradient') - p.add_option('-p', '--prefix_graph', action='store', dest='prefix_graph', type='string', help='prefixe des fichiers contenant les courbes') - p.add_option('-v', '--info', action='store', dest='INFO', type='int', help='niveau de message (-1, 0, 1, 2)') - p.add_option('-f', '--follow', action='store', dest='follow_output', type='string', help="affiche ou non l'output du fichier Aster (True/False)") - p.add_option('-F', '--objective', action='store', dest='objective', type='string', help="type de la fonctionnelle (float/vector)") - p.add_option('-G', '--gradient', action='store', dest='gradient' , type='string', default='no', help="calcul du gradient par Aster (no/normal/adim)") - p.add_option('-d', '--display', action='store', dest='display' , type='string', help="renvoi du DISPLAY (pour que la creation des courbes soit moins genante)") - -# p.add_option('-n', '--name', action='store', dest='name', type='string', default='optim', help="prefixe du fichier de bilan") - - opts, args = p.parse_args() - - # renvoi du DISPLAY (pour que la creation des courbes soit moins genante) - if opts.display: os.environ['DISPLAY'] = opts.display - - - # Options par defaut - optparse_input = optparse_output = optparse_output_grad = optparse_prefix_graph = optparse_INFO = optparse_follow_output = optparse_objective = optparse_gradient = optparse_name = None - - if opts.INFO==None: opts.INFO=0 - - if opts.input: optparse_input = True - if opts.output: optparse_output = True - if opts.output_grad: optparse_output_grad = True - if opts.prefix_graph: optparse_prefix_graph = True - if opts.INFO in [-1, 0, 1, 2]: optparse_INFO = True - if opts.follow_output in ['True', 'False']: optparse_follow_output = True - if opts.objective in ['float', 'vector']: optparse_objective = True - if opts.gradient in ['no', 'normal', 'adim']: optparse_gradient = True -# if opts.name: optparse_name = True - - if opts.follow_output=='True': opts.follow_output=True - if opts.follow_output=='False': opts.follow_output=False - - - # Fichier .export - if args: - fichier_export = args[0] - if not os.path.isfile(fichier_export): fichier_export = None - - INFO = opts.INFO - input_file = opts.input - output_file = opts.output - output_grad = opts.output_grad - type_fonctionnelle = opts.objective - - # Import d'as_profil - if os.environ.has_key('ASTER_ROOT'): - sys.path.append(os.path.join(os.environ['ASTER_ROOT'], 'ASTK', 'ASTK_SERV', 'lib')) - try: - from as_profil import ASTER_PROFIL - except: - UTMESS('F','MACR_RECAL',"Impossible de determiner l'emplacement d'Aster ! Fixer le chemin avec la variable d'environnement ASTER_ROOT.") - - # Efface les fichiers resultats - try: os.remove(output) - except: pass - try: os.remove(output_grad) - except: pass - - - # Si le fichier export n'est pas en argument on prend l'export qui est dans le rep courant - if not fichier_export: - # Lecture du fichier .export - list_export = glob('*.export') - if len(list_export) != 1: - UTMESS('F','MACR_RECAL',"Impossible de determiner le fichier .export a utiliser. Specifier le sur la ligne de commande.") - else: - fichier_export = list_export[0] - prof = ASTER_PROFIL(fichier_export) - - # Execution du fichier .comm - nom_comm = None - # fichier/répertoire - for lab in ('data', 'resu'): - l_fr = getattr(prof, lab) - l_tmp = l_fr[:] - - for dico in l_tmp: - # fichiers - if not dico['isrep']: - # Ancien .comm a executer - if dico['type'] == 'comm' and dico['ul'] == '1': - nom_comm = dico['path'] - - # parametres - for lab in ('param',): - l_fr = getattr(prof, lab) -# print l_fr -# print l_fr['version'] - try: os.environ['ASTER_VERSION'] = l_fr['version'][0] - except: pass - - - if not nom_comm: - UTMESS('F','MACR_RECAL',"Probleme : le fichier .comm n'est pas defini dans le .export.") - if not os.path.isfile(nom_comm): - UTMESS('F','MACR_RECAL',"Probleme : le fichier .comm suivant n'est pas defini : " + nom_comm) - - - - # ------------------------------------------------------------------- - # Lecture des valeurs d'entree - if INFO==2: UTMESS('I',NOMPRO,"Lecture du fichier : " + input_file) - try: - f = open(input_file, 'r') - txt = f.read() - f.close() - txt = txt.replace(',', ' ') - val_externe = [ float(x) for x in txt.strip().split() ] - except: - UTMESS('F',NOMPRO,"Probleme : impossible de lire le fichier d'entree :\n" + input_file) - if INFO>=2: UTMESS('I',NOMPRO,"Parametres d'entree : " + str(val_externe)) - if optparse_INFO and opts.INFO == -1: print '\n'+ str(val_externe) - - - # ------------------------------------------------------------------- - # Efface les fichiers d'entree et de sortie - try: os.remove(input_file) - except: pass - try: os.remove(output_file) - except: pass - try: os.remove(output_grad) - except: pass - - - - - # -------------------------------------------------------------------------------------------------------- - # -------------------------------------------------------------------------------------------------------- - # -------------------------------------------------------------------------------------------------------- - # Ci-dessous on extrait le fichier de commande jusqu'a la commande MACR_RECAL exclue (fichiernew) - # Puis la commande MACR_RECAL (commandenew) - # Ensuite on annule l'effet des commandes Aster et on evalue en Python les deux chaines de textes - - # Lecture du fichier .comm - f=open(nom_comm,'r') - fichier=f.read() - f.close - - # Extraction des deux parties dans le fichier de commande - fichiernew=None - commandenew=None - nb_par=-99 - txt1='MACR_RECAL' - txt2='(' - txt3=')' - for ligne in fichier.split('\n'): - if ligne.find( txt1 )!=-1 and ligne.find( txt2 )!=-1 and ligne.strip()[0]!='#': - nb_par=0 - index_deb1 = fichier.index(ligne) - fichiernew=fichier[:index_deb1] -# if debug: print 80*'*' + 2*'\n'+fichiernew+80*'*' + 2*'\n' - if fichiernew and ligne.find( txt2 )!=-1: nb_par+=1 - if fichiernew and ligne.find( txt3 )!=-1: nb_par-=1 - if fichiernew and nb_par==0: - index_fin1 = fichier.index(ligne)+len(ligne) - commandenew=fichier[index_deb1:index_fin1] - - # Remplace le nom de concept a gauche du signe egal - index_deb2 = commandenew.index(txt1) - commandenew='fonctionnelle, gradient='+commandenew[index_deb2:]+ '\n' - - if debug: print 80*'*' + 2*'\n'+commandenew+80*'*' + 2*'\n' - break - if not fichiernew or not commandenew: - txt = "Probleme : Le fichier de commande :\n" + nom_comm + "\n ne semble pas comporter la commande MACR_RECAL" - UTMESS('F',NOMPRO,txt) - - - # ------------------------------------------------------------------- - # Import du module Utilitai - sys.path.append(os.path.join(os.getcwd(), 'Python')) - sys.path.append(os.path.join(os.environ['ASTER_ROOT'], os.environ['ASTER_VERSION'], 'bibpyt')) - try: - import Utilitai - from Utilitai.System import ExecCommand - except: - UTMESS('F','MACR_RECAL',"Probleme : impossible d'importer le module Utilitai! Prevenir la maintenance.") - - - # ------------------------------------------------------------------- - # On annule les commandes Aster du fichier maitre .comm - def DEBUT(*args, **kwargs): pass - def FIN(*args, **kwargs): pass - def MACR_RECAL(*args, **kwargs): pass - def _F(*args, **kwargs): return kwargs - def DEFI_LIST_REEL(*args, **kwargs): pass - def DEFI_FONCTION(*args, **kwargs): pass - def TEST_FONCTION(*args, **kwargs): pass - def DEFI_CONSTANTE(*args, **kwargs): pass - - - # ------------------------------------------------------------------- - # Evaluation du fichier de commande Aster jusqu'a MACR_RECAL - lance_aster = False - try: - exec(fichiernew) - except: - txt = "Le mode EXTERNE tourne en mode degrade. Lire la documentation." - UTMESS('A',NOMPRO,txt) - lance_aster = True - else: - exec(commandenew.replace(txt1, 'macr_recal_externe')) -# try: -# exec(commandenew.replace(txt1, 'macr_recal_externe')) -# except Exception, err: -# print err -# txt = "Erreur lors de l'execution de la commande MACR_RECAL" -# UTMESS('F',NOMPRO,txt) - - Ecriture_Fonctionnelle(output_file, type_fonctionnelle, fonctionnelle) - Ecriture_Derivees(output_grad, gradient) - - - - # -------------------------------------------------------------------------------------------------------- - # -------------------------------------------------------------------------------------------------------- - # -------------------------------------------------------------------------------------------------------- - # Si l'evaluation du fichier de commande Aster jusqu'a MACR_RECAL a echoue, on execute Aster "normalement" - if lance_aster: - - _PARAM_ = '_PARAM_' - new_fichier_comm = os.getcwd() + os.sep + 'tmp_comm' - new_fichier_export = os.getcwd() + os.sep + fichier_export.split('/')[-1] + '_new' - - # Lecture du fichier .comm - f=open(nom_comm,'r') - fichier=f.read() - f.close - - # ------------------------------------------------------------------- - # Modification du fichier .comm (changement des valeurs, ecriture du resultat dans un fichier) - if INFO==2: UTMESS('I',NOMPRO,"Lecture du fichier : " + nom_comm) - f = open(nom_comm, 'r') - ok1 = ok3 = ok4 = False - txt = '' - for ligne in f: - if ligne.find('MACR_RECAL')!=-1 and ligne.strip()[0]!='#': # On determine le nom du concept sortant de MACR_RECAL - ok3 = True - _RESU_ = ligne.split('=')[0].strip() - txt += ligne - elif ligne.strip()[:len(_PARAM_)] == _PARAM_: # On change les parametres : la variables _PARAM_ - ok1 = True - txt += _PARAM_ + " = " + str(val_externe) + '\n' - elif ligne.find('METHODE')!=-1 and ligne.strip()[0]!='#': # On verifie bien que la methode externe est choisi - if ligne.find("EXTERNE")!=-1: - ok4 = True - txt += ligne - else: txt += ligne - f.close() - - if not ok1: UTMESS('F',NOMPRO,"Probleme : il faut mettre les parametres sous la forme d'une ligne python " + str(_PARAM_) + " = [param1, param2, ...]") - if not ok3: UTMESS('F',NOMPRO,"Probleme : la commande MACR_RECAL n'a pas ete trouvee dans le .comm") - if not ok4: UTMESS('F',NOMPRO,"Probleme : dans la commande MACR_RECAL, il faut choisir METHODE='EXTERNE'") - - txt = txt.replace('_RESU_', _RESU_) - - # Ecriture du nouveau fichier comm temporaire - if INFO==2: UTMESS('I',NOMPRO,"Ecriture du fichier : " + new_fichier_comm) - f = open(new_fichier_comm, 'w') - f.write(txt) - f.close() - - # On remplace dans l'export par le nouveau .comm - prof = ASTER_PROFIL(fichier_export) - for lab in ('data', 'resu'): - l_fr = getattr(prof, lab) - l_tmp = l_fr[:] - for dico in l_tmp: - # fichiers - if not dico['isrep']: - # On remplace par le nouveau .comm - if dico['type'] == 'comm' and dico['ul'] == '1': - dico['path'] = new_fichier_comm - -# if lab == 'resu': -# dico['path'] = os.path.join(tmp_macr_recal, os.path.basename(dico['path'])) - - # On ajoute au profil le fichier output.txt (unite logique 1900) - try: os.remove('./fort.1900') - except: pass - if not output_file.find(os.sep)!=-1: output_file = os.getcwd() + os.sep + output_file - prof.Set('R', {'type':'libr', 'isrep':False, 'path': output_file, 'ul':1900, 'compr': False} ) - - # On ajoute au profil le fichier grad.txt (unite logique 1901) - if optparse_gradient and opts.gradient!='no': - try: os.remove('./fort.1901') - except: pass - output_grad = opts.gradient - if not output_grad.find(os.sep)!=-1: output_grad = os.getcwd() + os.sep + output_grad - prof.Set('R', {'type':'libr', 'isrep':False, 'path': output_grad, 'ul':1901, 'compr': False} ) - - - # Ecriture du nouveau fichier export - try: - if INFO==2: UTMESS('I',NOMPRO,"Ecriture du fichier : " + new_fichier_export) - prof.WriteExportTo(new_fichier_export) - except: - UTMESS('F',NOMPRO,"Probleme : Impossible d'ecrire le fichier export : " + new_fichier_export) - prof.WriteExportTo('/tmp/exp') - - - # chemin vers as_run - if os.environ.has_key('ASTER_ROOT'): - as_run = os.path.join(os.environ['ASTER_ROOT'], 'ASTK', 'ASTK_SERV', 'bin', 'as_run') - else: - as_run = 'as_run' - if INFO>=1: UTMESS('A', nompro, "Variable d'environnement ASTER_ROOT absente, " \ - "on essaiera avec 'as_run' dans le $PATH.") - - - # Import du module Utilitai - sys.path.append(os.path.join(os.environ['ASTER_ROOT'], os.environ['ASTER_VERSION'], 'bibpyt')) - try: - import Utilitai - from Utilitai.System import ExecCommand - except: - UTMESS('F','MACR_RECAL',"Probleme : impossible d'importer le module Utilitai! Prevenir la maintenance.") - - - # Lancement d'Aster avec le deuxieme export - cmd = '%s %s' % (as_run, new_fichier_export) - if INFO>=2: UTMESS('I','MACR_RECAL',"Lancement de la commande : " + cmd) - iret, txt_output = ExecCommand(cmd, follow_output=opts.follow_output,verbose=opts.follow_output) - if INFO>=2: UTMESS('I','MACR_RECAL',"Fin du lancement de la commande : " + cmd) - - try: os.remove(new_fichier_comm) - except: pass - try: os.remove(new_fichier_export) - except: pass - - diff --git a/Aster/Cata/cataSTA8/Macro/macr_spectre_ops.py b/Aster/Cata/cataSTA8/Macro/macr_spectre_ops.py deleted file mode 100644 index 19d0a455..00000000 --- a/Aster/Cata/cataSTA8/Macro/macr_spectre_ops.py +++ /dev/null @@ -1,363 +0,0 @@ -#@ MODIF macr_spectre_ops Macro DATE 21/11/2007 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Accas import _F -import string - -# protection pour eficas -try: - import aster - from Utilitai.Utmess import UTMESS -except: - pass - -def macr_spectre_ops(self,MAILLAGE,PLANCHER,NOM_CHAM,CALCUL,RESU,IMPRESSION=None, - FREQ=None,LIST_FREQ=None,LIST_INST=None,AMOR_SPEC=None,**args): - """ - Ecriture de la macro MACR_SPECTRE - """ - ier=0 - import string - from types import ListType,TupleType,StringType - EnumType=(ListType,TupleType) - - ### On importe les definitions des commandes a utiliser dans la macro - RECU_FONCTION = self.get_cmd('RECU_FONCTION') - CALC_FONCTION = self.get_cmd('CALC_FONCTION') - IMPR_FONCTION = self.get_cmd('IMPR_FONCTION') - CREA_TABLE = self.get_cmd('CREA_TABLE') - - ### Comptage commandes + déclaration concept sortant - self.set_icmd(1) - self.DeclareOut('tab',self.sd) - macro='MACR_SPECTRE' - - ### construction de la liste des noeuds à traiter - planch_nodes={} - dic_gpno=aster.getcolljev(MAILLAGE.nom.ljust(8)+".GROUPENO") - l_nodes =aster.getvectjev(MAILLAGE.nom.ljust(8)+".NOMNOE") - l_plancher=[] - for plancher in PLANCHER : - liste_no=[] - if plancher['NOEUD']!=None : - if type(plancher['NOEUD'])==StringType : - liste_no.append(plancher['NOEUD']) - else : - for noeud in plancher['NOEUD'] : - liste_no.append(plancher['NOEUD']) - if plancher['GROUP_NO']!=None : - if type(plancher['GROUP_NO'])==StringType : - noms_no =[string.strip(l_nodes[n-1]) \ - for n in dic_gpno[plancher['GROUP_NO'].ljust(8)]] - liste_no=liste_no+noms_no - else : - for group_no in plancher['GROUP_NO'] : - noms_no =[string.strip(l_nodes[n-1]) \ - for n in dic_gpno[group_no.ljust(8)]] - liste_no=liste_no+noms_no - planch_nodes[plancher['NOM']]=liste_no - l_plancher.append(plancher['NOM']) - - if AMOR_SPEC!=None and type(AMOR_SPEC) not in EnumType : - AMOR_SPEC=(AMOR_SPEC,) - - if NOM_CHAM=='ACCE' : dico_glob={} - if NOM_CHAM=='DEPL' : dico_glob={'DX_max' :[] , - 'DY_max' :[] , - 'DZ_max' :[] , - 'DH_max' :[] , } - - ############################################################ - ### boucle 1 sur les planchers - for plancher in l_plancher : - - if NOM_CHAM=='ACCE' : - __moy_x=[None]*len(planch_nodes[plancher]) - __moy_y=[None]*len(planch_nodes[plancher]) - __moy_z=[None]*len(planch_nodes[plancher]) - if NOM_CHAM=='DEPL' : - dicDmax={} - ############################################################ - ### boucle 2 sur les noeuds du plancher - indexn=0 - for node in planch_nodes[plancher] : - - ############################################################ - ### boucle 3 sur les directions (X,Y,Z) - for dd in ('X','Y','Z') : - - ############################################################ - ### boucle 4 sur les résultats - l_fonc=[] - for resu in RESU : - ### Récupération des fonctions - motscles={} - if resu['RESU_GENE']!=None : - if CALCUL=='ABSOLU' : - UTMESS('F', macro, 'Pas de calcul absolu avec tran_gene') - motscles['RESU_GENE'] = resu['RESU_GENE'] - - if resu['RESULTAT' ]!=None : - motscles['RESULTAT'] = resu['RESULTAT'] - - __spo=RECU_FONCTION(NOM_CHAM = NOM_CHAM, - TOUT_ORDRE = 'OUI', - NOM_CMP = 'D'+dd, - INTERPOL = 'LIN', - PROL_GAUCHE = 'CONSTANT', - PROL_DROITE = 'CONSTANT', - NOEUD = node , **motscles ) - - if NOM_CHAM=='ACCE' : - ### Accelerations relatives - if CALCUL=='RELATIF' : - ### Combinaison avec fonction d acceleration - motscles={} - if LIST_INST!=None : motscles['LIST_PARA']=LIST_INST - __spo=CALC_FONCTION(COMB=(_F(FONCTION=__spo, - COEF= 1.0 ), - _F(FONCTION=resu['ACCE_'+dd], - COEF= 1.0) ),**motscles ) - - ### Calcul des spectres d'oscillateur - motscles={} - if FREQ !=None : motscles['FREQ'] =FREQ - if LIST_FREQ!=None : motscles['LIST_FREQ']=LIST_FREQ - __spo=CALC_FONCTION( - SPEC_OSCI=_F(FONCTION = __spo, - AMOR_REDUIT = AMOR_SPEC, - NORME = args['NORME'], - **motscles ) ) - l_fonc.append(__spo) - - if NOM_CHAM=='DEPL' : - if CALCUL=='ABSOLU' : - ### On retranche les deplacements d entrainement - motscles={} - if LIST_INST!=None : motscles['LIST_PARA']=LIST_INST - __spo=CALC_FONCTION(COMB=(_F(FONCTION=__spo, - COEF= 1.0 ), - _F(FONCTION=resu['DEPL_'+dd], - COEF= -1.0) ),**motscles ) - - l_fonc.append(__spo) - - ### fin boucle 4 sur les résultats - ############################################################ - - ############################################################ - ### calcul de la moyenne sur les resultats à noeud et direction fixes - nbresu=len(RESU) - if NOM_CHAM=='ACCE' : - mcfCMBx=[] - mcfCMBy=[] - mcfCMBz=[] - for spo in l_fonc : - mcfCMBx.append(_F(FONCTION=spo, - COEF=1./float(nbresu),)) - mcfCMBy.append(_F(FONCTION=spo, - COEF=1./float(nbresu),)) - mcfCMBz.append(_F(FONCTION=spo, - COEF=1./float(nbresu),)) - motscles={} - if LIST_FREQ!=None : motscles['LIST_PARA']=LIST_FREQ - if dd=='X' : __moy_x[indexn]=CALC_FONCTION(COMB=mcfCMBx,**motscles) - if dd=='Y' : __moy_y[indexn]=CALC_FONCTION(COMB=mcfCMBy,**motscles) - if dd=='Z' : __moy_z[indexn]=CALC_FONCTION(COMB=mcfCMBz,**motscles) - - if NOM_CHAM=='DEPL' : - moy = 0. - for spo in l_fonc : - fspo = spo.convert() - aspo = fspo.abs() - vmax = aspo.extreme()['max'] - moy = moy + vmax[-1][-1] - dicDmax[(node,dd)]=moy/nbresu - - ### fin boucle 3 sur les directions - ############################################################ - - ################################ - ### impressions en chaque noeud - if NOM_CHAM=='ACCE' and IMPRESSION!=None : - if IMPRESSION['TOUT']=='OUI' : - __moyxa=[None]*len(AMOR_SPEC) - __moyya=[None]*len(AMOR_SPEC) - __moyza=[None]*len(AMOR_SPEC) - for i in range(len(AMOR_SPEC)) : - amor = AMOR_SPEC[i] - __moyxa[i]=RECU_FONCTION(NAPPE = __moy_x[indexn], - VALE_PARA_FONC = AMOR_SPEC[i] ) - __moyya[i]=RECU_FONCTION(NAPPE = __moy_y[indexn], - VALE_PARA_FONC = AMOR_SPEC[i] ) - __moyza[i]=RECU_FONCTION(NAPPE = __moy_z[indexn], - VALE_PARA_FONC = AMOR_SPEC[i] ) - motscles={} - dI = IMPRESSION[0].cree_dict_valeurs(IMPRESSION[0].mc_liste) - if dI.has_key('PILOTE') : motscles['PILOTE' ]=IMPRESSION['PILOTE'] - if IMPRESSION['FORMAT']!='TABLEAU' : motscles['ECHELLE_X']='LOG' - if IMPRESSION['TRI']=='AMOR_SPEC' : - for i in range(len(AMOR_SPEC)) : - TITRE ='Spectres / Plancher = '+plancher+\ - ' / amor='+str(AMOR_SPEC[i])+\ - ' / noeud='+node - IMPR_FONCTION( - FORMAT=IMPRESSION['FORMAT'], - UNITE =IMPRESSION['UNITE' ], - COURBE=( _F(FONCTION=__moyxa[i], LEGENDE ='X',), - _F(FONCTION=__moyya[i], LEGENDE ='Y',), - _F(FONCTION=__moyza[i], LEGENDE ='Z',),), - TITRE =TITRE, - **motscles) - elif IMPRESSION['TRI']=='DIRECTION' : - lfonc=[] - for dd in ('X','Y','Z') : - TITRE ='Spectres / Plancher = '+plancher+\ - ' / direction = '+dd+\ - ' / noeud = '+node - if dd=='X' : l_fonc=[_F(FONCTION=__moyxa[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ - for i in range(len(AMOR_SPEC)) ] - if dd=='Y' : l_fonc=[_F(FONCTION=__moyya[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ - for i in range(len(AMOR_SPEC)) ] - if dd=='Z' : l_fonc=[_F(FONCTION=__moyza[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ - for i in range(len(AMOR_SPEC)) ] - IMPR_FONCTION( - FORMAT=IMPRESSION['FORMAT'], - UNITE =IMPRESSION['UNITE' ], - COURBE=l_fonc, - TITRE =TITRE, - **motscles) - - ### increment de l'indice de noeud - indexn=indexn+1 - - ### fin boucle 2 sur les noeuds du plancher - ############################################################ - - ############################################################ - ### Calcul des enveloppes des spectres ou des deplacements max - if NOM_CHAM=='ACCE' : - mcslx=[] - mcsly=[] - mcslz=[] - indexn=0 - for node in planch_nodes[plancher] : - mcslx.append(__moy_x[indexn]) - mcsly.append(__moy_y[indexn]) - mcslz.append(__moy_z[indexn]) - indexn=indexn+1 - __snx=CALC_FONCTION(ENVELOPPE=_F(FONCTION=mcslx)) - __sny=CALC_FONCTION(ENVELOPPE=_F(FONCTION=mcsly)) - __snz=CALC_FONCTION(ENVELOPPE=_F(FONCTION=mcslz)) - __snh=CALC_FONCTION(ENVELOPPE=_F(FONCTION=(__snx,__sny))) - if NOM_CHAM=='DEPL' : - DRmX = max([dicDmax[(node,'X')] for node in planch_nodes[plancher]]) - DRmY = max([dicDmax[(node,'Y')] for node in planch_nodes[plancher]]) - DRmZ = max([dicDmax[(node,'Z')] for node in planch_nodes[plancher]]) - DRmH = max([DRmX,DRmY]) - - ############################################################ - ### Renseignement de la table finale des résultats - if NOM_CHAM=='ACCE' : - nbind=len(AMOR_SPEC) - for i in range(nbind) : - dico_glob['FREQ' ]=__snx.Valeurs()[1][i][0] - dico_glob['eX_%d_%s' % (i, plancher)]=__snx.Valeurs()[1][i][1] - dico_glob['eY_%d_%s' % (i, plancher)]=__sny.Valeurs()[1][i][1] - dico_glob['eZ_%d_%s' % (i, plancher)]=__snz.Valeurs()[1][i][1] - dico_glob['eH_%d_%s' % (i, plancher)]=__snh.Valeurs()[1][i][1] - elif NOM_CHAM=='DEPL' : - dico_glob['DX_max'].append(DRmX) - dico_glob['DY_max'].append(DRmY) - dico_glob['DZ_max'].append(DRmZ) - dico_glob['DH_max'].append(DRmH) - - ############################################################ - ### Impression des courbes - if NOM_CHAM=='ACCE' and IMPRESSION!=None : - motscles={} - dI = IMPRESSION[0].cree_dict_valeurs(IMPRESSION[0].mc_liste) - if dI.has_key('PILOTE') : motscles['PILOTE']=IMPRESSION['PILOTE'] - if IMPRESSION['FORMAT']!='TABLEAU' : motscles['ECHELLE_X']='LOG' - __snxa=[None]*len(AMOR_SPEC) - __snya=[None]*len(AMOR_SPEC) - __snza=[None]*len(AMOR_SPEC) - __snha=[None]*len(AMOR_SPEC) - for i in range(nbind) : - __snxa[i]=RECU_FONCTION(NAPPE = __snx, - VALE_PARA_FONC = AMOR_SPEC[i], ) - __snya[i]=RECU_FONCTION(NAPPE = __sny, - VALE_PARA_FONC = AMOR_SPEC[i], ) - __snza[i]=RECU_FONCTION(NAPPE = __snz, - VALE_PARA_FONC = AMOR_SPEC[i], ) - __snha[i]=RECU_FONCTION(NAPPE = __snh, - VALE_PARA_FONC = AMOR_SPEC[i], ) - if IMPRESSION['TRI']=='AMOR_SPEC' : - for i in range(nbind) : - TITRE ='Spectres moyens / Plancher = '+plancher+' / amor='+str(AMOR_SPEC[i]) - IMPR_FONCTION( - FORMAT=IMPRESSION['FORMAT'], - UNITE =IMPRESSION['UNITE' ], - COURBE=( _F(FONCTION=__snxa[i], LEGENDE ='X',), - _F(FONCTION=__snya[i], LEGENDE ='Y',), - _F(FONCTION=__snza[i], LEGENDE ='Z',), - _F(FONCTION=__snha[i], LEGENDE ='H',),), - TITRE =TITRE, - **motscles - ) - elif IMPRESSION['TRI']=='DIRECTION' : - for dd in ('X','Y','Z','H'): - TITRE ='Spectres moyens / Plancher = '+plancher+' / direction = '+dd - l_fonc =[] - if dd=='X' : l_fonc=[_F(FONCTION=__snxa[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ - for i in range(len(AMOR_SPEC)) ] - if dd=='Y' : l_fonc=[_F(FONCTION=__snya[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ - for i in range(len(AMOR_SPEC)) ] - if dd=='Z' : l_fonc=[_F(FONCTION=__snza[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ - for i in range(len(AMOR_SPEC)) ] - if dd=='H' : l_fonc=[_F(FONCTION=__snha[i], LEGENDE ='amor='+str(AMOR_SPEC[i]),)\ - for i in range(len(AMOR_SPEC)) ] - IMPR_FONCTION( - FORMAT=IMPRESSION['FORMAT'], - UNITE =IMPRESSION['UNITE' ], - COURBE=l_fonc, - TITRE =TITRE, - **motscles - ) - - ### fin boucle 1 sur les planchers - ############################################################ - - ############################################################ - ### Renseignement de la table finale des résultats - lListe=[] - if NOM_CHAM=='DEPL' : - lListe.append(_F(LISTE_K=l_plancher,PARA='PLANCHER')) - titre = 'Calcul des spectres enveloppes' - if NOM_CHAM=='ACCE' : - titre = ['Calcul des spectres enveloppes par planchers pour les amortissements numérotés :',] - b=[' %d : %g ' % (i,AMOR_SPEC[i]) for i in range(len(AMOR_SPEC)) ] - titre.append('/'.join(b)) - lkeys=dico_glob.keys() - lkeys.sort() - for key in lkeys : - lListe.append(_F(LISTE_R=dico_glob[key],PARA=key)) - tab = CREA_TABLE(LISTE=lListe,TITRE=titre) - return ier diff --git a/Aster/Cata/cataSTA8/Macro/macro_elas_mult_ops.py b/Aster/Cata/cataSTA8/Macro/macro_elas_mult_ops.py deleted file mode 100644 index d253cd00..00000000 --- a/Aster/Cata/cataSTA8/Macro/macro_elas_mult_ops.py +++ /dev/null @@ -1,277 +0,0 @@ -#@ MODIF macro_elas_mult_ops Macro DATE 08/11/2007 AUTEUR SALMONA L.SALMONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - -def macro_elas_mult_ops(self,MODELE,CHAM_MATER,CARA_ELEM,NUME_DDL, - CHAR_MECA_GLOBAL,CHAR_CINE_GLOBAL,LIAISON_DISCRET, - CAS_CHARGE,SOLVEUR,**args): - """ - Ecriture de la macro MACRO_ELAS_MULT - """ - ier=0 - import types - from Accas import _F - from Utilitai.Utmess import UTMESS - - # On met le mot cle NUME_DDL dans une variable locale pour le proteger - numeddl=NUME_DDL - # On importe les definitions des commandes a utiliser dans la macro - CALC_MATR_ELEM =self.get_cmd('CALC_MATR_ELEM') - NUME_DDL =self.get_cmd('NUME_DDL') - ASSE_MATRICE =self.get_cmd('ASSE_MATRICE') - FACT_LDLT =self.get_cmd('FACT_LDLT') - CALC_VECT_ELEM =self.get_cmd('CALC_VECT_ELEM') - ASSE_VECTEUR =self.get_cmd('ASSE_VECTEUR') - RESO_LDLT =self.get_cmd('RESO_LDLT') - CREA_RESU =self.get_cmd('CREA_RESU') - CALC_ELEM =self.get_cmd('CALC_ELEM') - CALC_NO =self.get_cmd('CALC_NO') - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type mult_elas ou fourier_elas) est nommé - # 'nomres' dans le contexte de la macro - - self.DeclareOut('nomres',self.sd) - - ielas = 0 - ifour = 0 - for m in CAS_CHARGE: - if m['NOM_CAS']: - ielas=1 # mot clé NOM_CAS présent sous CAS_CHARGE - tyresu = 'MULT_ELAS' - else: - ifour=1 # mot clé MODE_FOURIER présent sous CAS_CHARGE - tyresu = 'FOURIER_ELAS' - if ielas==1 and ifour==1: - UTMESS('F', "MACRO_ELAS_MULT", "On ne peut avoir a la fois NOM_CAS et MODE_FOURIER") - - if (numeddl in self.sdprods) or (numeddl==None): - # Si le concept numeddl est dans self.sdprods ou n est pas nommé - # il doit etre produit par la macro - # il faudra donc appeler la commande NUME_DDL - lnume = 1 - else: - lnume = 0 - - if ielas==1 : - motscles={} - if CHAR_MECA_GLOBAL: motscles['CHARGE'] =CHAR_MECA_GLOBAL - elif CHAR_CINE_GLOBAL: motscles['CHARGE'] =CHAR_CINE_GLOBAL - if CHAM_MATER : motscles['CHAM_MATER']=CHAM_MATER - if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM - __nomrig=CALC_MATR_ELEM(OPTION='RIGI_MECA',MODELE=MODELE,**motscles) - - if lnume: - # On peut passer des mots cles egaux a None. Ils sont ignores - motscles={} - if SOLVEUR: - motscles['METHODE'] =SOLVEUR['METHODE'] - motscles['RENUM'] =SOLVEUR['RENUM'] - else: - motscles['METHODE'] ='MULT_FRONT' - motscles['RENUM'] ='METIS' - if numeddl!=None: - self.DeclareOut('num',numeddl) - num=NUME_DDL(MATR_RIGI=__nomrig,**motscles) - else: - _num=NUME_DDL(MATR_RIGI=__nomrig,**motscles) - num=_num - else: - num=numeddl - - __nomras=ASSE_MATRICE(MATR_ELEM=__nomrig,NUME_DDL=num) - - __nomraf=FACT_LDLT(MATR_ASSE=__nomras,NPREC=SOLVEUR['NPREC'],STOP_SINGULIER=SOLVEUR['STOP_SINGULIER']) - -##################################################################### -# boucle sur les items de CAS_CHARGE - - nomchn=[] - iocc=0 - for m in CAS_CHARGE: - iocc=iocc+1 - - if ifour: - motscles={} - if CHAR_MECA_GLOBAL: motscles['CHARGE'] =CHAR_MECA_GLOBAL - elif CHAR_CINE_GLOBAL: motscles['CHARGE'] =CHAR_CINE_GLOBAL - if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER - if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM - motscles['MODE_FOURIER'] =m['MODE_FOURIER'] - __nomrig=CALC_MATR_ELEM(OPTION='RIGI_MECA',MODELE=MODELE,**motscles) - - if lnume: - _num=NUME_DDL(MATR_RIGI=__nomrig,METHODE=SOLVEUR['METHODE'],RENUM=SOLVEUR['RENUM']) - num=_num - lnume=0 - - __nomras=ASSE_MATRICE(MATR_ELEM=__nomrig,NUME_DDL=num) - - __nomraf=FACT_LDLT(MATR_ASSE=__nomras,NPREC=SOLVEUR['NPREC'],STOP_SINGULIER=SOLVEUR['STOP_SINGULIER']) - - - if m['VECT_ASSE']==None : - motscles={} - if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER - if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM - if ifour : motscles['MODE_FOURIER'] =m['MODE_FOURIER'] - if m['CHAR_MECA'] : motscles['CHARGE'] =m['CHAR_MECA'] - elif m['CHAR_CINE'] : motscles['CHARGE'] =m['CHAR_CINE'] - __nomvel=CALC_VECT_ELEM(OPTION='CHAR_MECA',**motscles) - __nomasv=ASSE_VECTEUR(VECT_ELEM=__nomvel,NUME_DDL=num) - else : - __nomasv=m['VECT_ASSE'] - - - __nomchn=RESO_LDLT(MATR_FACT=__nomraf,CHAM_NO=__nomasv,TITRE=m['SOUS_TITRE']) - nomchn.append(__nomchn) - -# fin de la boucle sur les items de CAS_CHARGE -##################################################################### - - motscles={} - iocc=0 - motscle2={} - if CHAM_MATER : motscle2['CHAM_MATER']=CHAM_MATER - if CARA_ELEM : motscle2['CARA_ELEM']=CARA_ELEM - if CHAM_MATER or CARA_ELEM : - if ielas : - motscles['AFFE']=[] - for m in CAS_CHARGE: - motscles['AFFE'].append(_F(MODELE=MODELE, - CHAM_GD=nomchn[iocc], - NOM_CAS=m['NOM_CAS'], - **motscle2) ) - iocc=iocc+1 - else : - motscles['AFFE']=[] - for m in CAS_CHARGE: - motscles['AFFE'].append(_F(MODELE=MODELE, - CHAM_GD=nomchn[iocc], - NUME_MODE=m['MODE_FOURIER'], - TYPE_MODE=m['TYPE_MODE'], - **motscle2) ) - iocc=iocc+1 - else: - if ielas : - motscles['AFFE']=[] - for m in CAS_CHARGE: - motscles['AFFE'].append(_F(MODELE=MODELE, - CHAM_GD=nomchn[iocc], - NOM_CAS=m['NOM_CAS'],) ) - iocc=iocc+1 - else : - motscles['AFFE']=[] - for m in CAS_CHARGE: - motscles['AFFE'].append(_F(MODELE=MODELE, - CHAM_GD=nomchn[iocc], - NUME_MODE=m['MODE_FOURIER'], - TYPE_MODE=m['TYPE_MODE'],) ) - iocc=iocc+1 - - - nomres=CREA_RESU(OPERATION='AFFE',TYPE_RESU=tyresu,NOM_CHAM='DEPL',**motscles) - -##################################################################### -# boucle sur les items de CAS_CHARGE pour CALC_ELEM ete CALC_NO - - iocc=0 - for m in CAS_CHARGE: - iocc=iocc+1 - - if m['OPTION']: - nbel=0 - nbno=0 - liste_el=[] - liste_no=[] - if type(m['OPTION'])==types.StringType: - if m['OPTION'] in ('FORC_NODA','REAC_NODA', - 'EPSI_NOEU_DEPL','SIGM_NOEU_DEPL','EFGE_NOEU_DEPL', - 'EQUI_NOEU_SIGM','EQUI_NOEU_EPSI','FLUX_NOEU_TEMP',): - nbno=nbno+1 - liste_no.append(m['OPTION']) - else: - nbel=nbel+1 - liste_el.append(m['OPTION']) - else: - for opt in m['OPTION']: - if opt in ('FORC_NODA','REAC_NODA', - 'EPSI_NOEU_DEPL','SIGM_NOEU_DEPL','EFGE_NOEU_DEPL', - 'EQUI_NOEU_SIGM','EQUI_NOEU_EPSI','FLUX_NOEU_TEMP',): - nbno=nbno+1 - liste_no.append(opt) - else: - nbel=nbel+1 - liste_el.append(opt) - - lreac=0 - if nbel: - motscles={} - if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER - if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM - if ielas: - motscles['NOM_CAS']=m['NOM_CAS'] - else: - motscles['NUME_MODE']=m['MODE_FOURIER'] - motscles['EXCIT']=[] - if m['CHAR_MECA'] : - for chargt in m['CHAR_MECA'] : motscles['EXCIT'].append(_F(CHARGE=chargt)) - elif m['CHAR_CINE'] : - for chargt in m['CHAR_CINE'] : motscles['EXCIT'].append(_F(CHARGE=chargt)) - if CHAR_MECA_GLOBAL: - for chargt in CHAR_MECA_GLOBAL : motscles['EXCIT'].append(_F(CHARGE=chargt)) - elif CHAR_CINE_GLOBAL: - for chargt in CHAR_CINE_GLOBAL : motscles['EXCIT'].append(_F(CHARGE=chargt)) - CALC_ELEM(reuse=nomres, - RESULTAT=nomres, - MODELE=MODELE, - REPE_COQUE=_F(NIVE_COUCHE=m['NIVE_COUCHE'], - NUME_COUCHE=m['NUME_COUCHE'],), - OPTION=tuple(liste_el), - **motscles) - if nbno: - motscles={} - if CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER - if CARA_ELEM : motscles['CARA_ELEM'] =CARA_ELEM - if ielas: - motscles['NOM_CAS']=m['NOM_CAS'] - else: - motscles['NUME_MODE']=m['MODE_FOURIER'] - motscles['EXCIT']=[] - if m['CHAR_MECA'] : - for chargt in m['CHAR_MECA'] : motscles['EXCIT'].append(_F(CHARGE=chargt)) - elif m['CHAR_CINE'] : - for chargt in m['CHAR_CINE'] : motscles['EXCIT'].append(_F(CHARGE=chargt)) - if CHAR_MECA_GLOBAL: - for chargt in CHAR_MECA_GLOBAL : motscles['EXCIT'].append(_F(CHARGE=chargt)) - elif CHAR_CINE_GLOBAL: - for chargt in CHAR_CINE_GLOBAL : motscles['EXCIT'].append(_F(CHARGE=chargt)) - 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/cataSTA8/Macro/macro_matr_ajou_ops.py b/Aster/Cata/cataSTA8/Macro/macro_matr_ajou_ops.py deleted file mode 100644 index c3b17003..00000000 --- a/Aster/Cata/cataSTA8/Macro/macro_matr_ajou_ops.py +++ /dev/null @@ -1,256 +0,0 @@ -#@ MODIF macro_matr_ajou_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - -def macro_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATION,MODE_MECA,DEPL_IMPO, - NUME_DDL_GENE,MODELE_GENE,MATR_MASS_AJOU,MATR_AMOR_AJOU,MATR_RIGI_AJOU, - NOEUD_DOUBLE,FLUIDE,DDL_IMPO,DIST_REFE,SOLVEUR,INFO,AVEC_MODE_STAT, - MODE_STAT,MONO_APPUI, - FORC_AJOU,ECOULEMENT,**args): - """ - Ecriture de la macro MACRO_MATR_AJOU - """ - from Accas import _F - import types - import aster - from Utilitai.Utmess import UTMESS - ier=0 - - # On importe les definitions des commandes a utiliser dans la macro - DEFI_MATERIAU =self.get_cmd('DEFI_MATERIAU') - AFFE_MATERIAU =self.get_cmd('AFFE_MATERIAU') - AFFE_MODELE =self.get_cmd('AFFE_MODELE') - AFFE_CHAR_THER =self.get_cmd('AFFE_CHAR_THER') - CALC_MATR_AJOU =self.get_cmd('CALC_MATR_AJOU') - THER_LINEAIRE =self.get_cmd('THER_LINEAIRE') - CALC_FORC_AJOU =self.get_cmd('CALC_FORC_AJOU') - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - if len(FLUIDE)==1 : - message= ' tout le domaine fluide specifie dans GROUP_MA_INTERF et GROUP_MA_FLUIDE \n' - message=message+ ' sera affecte par la masse volumique RHO = '+str(FLUIDE['RHO'])+' \n' - aster.affiche('MESSAGE',message) - if FLUIDE['GROUP_MA']!=None : - message= ' cas fluide simple : le group_ma dans lequel vous affectez la masse \n' - message=message+ 'volumique RHO doit etre la reunion de GROUP_MA_INTERF et GROUP_MA_FLUIDE. \n' - aster.affiche('MESSAGE',message) - else : - for flu in FLUIDE : - if flu['GROUP_MA']==None : - UTMESS('F', "MACRO_MATR_AJOU", "cas fluides multiples : precisez le GROUP_MA dans lequel vous affectez la masse volumique RHO") - - IOCFLU=len(FLUIDE) - -# --------------------------------------------------------------- -# definition du materiau fluide par caracteristique -# thermique equivalente - -# CAS FLUIDE SIMPLE - if IOCFLU==1 : - __NOMMAT=DEFI_MATERIAU( THER = _F( LAMBDA = 1.0, - RHO_CP = FLUIDE[0]['RHO'])) - __NOMCMA=AFFE_MATERIAU( MAILLAGE = MAILLAGE, - AFFE = _F( GROUP_MA = (GROUP_MA_FLUIDE,GROUP_MA_INTERF), - MATER = __NOMMAT), ) - -# --------------------------------------------------------------- -# cas fluides multiples - else : - affmat=[] - for flu in FLUIDE: - __NOMMAT=DEFI_MATERIAU( THER = _F( LAMBDA = 1.0, - RHO_CP = flu['RHO'])) - mfact=_F(GROUP_MA=flu['GROUP_MA'],MATER=__NOMMAT) - affmat.append(mfact) - - __NOMCMA=AFFE_MATERIAU( MAILLAGE = MAILLAGE, - AFFE = affmat ) - -# --------------------------------------------------------------- -# commande AFFE_MODELE modele fluide - __NOMFLU=AFFE_MODELE( MAILLAGE = MAILLAGE, - AFFE = _F( GROUP_MA = (GROUP_MA_FLUIDE,GROUP_MA_INTERF), - MODELISATION = MODELISATION, - PHENOMENE = 'THERMIQUE' ), ) - -# --------------------------------------------------------------- -# commande AFFE_MODELE modele interface - __NOMINT=AFFE_MODELE( MAILLAGE = MAILLAGE, - AFFE = _F( GROUP_MA = GROUP_MA_INTERF, - MODELISATION = MODELISATION, - PHENOMENE = 'THERMIQUE' ), ) - -# --------------------------------------------------------------- -# commande AFFE_CHAR_THER condition de pression imposee -# en un point ou un groupe du fluide - affimp=[] - nflui=0 - for DDL in DDL_IMPO : - if DDL['PRES_FLUIDE']!=None : - nflui=nflui+1 - if DDL['NOEUD'] !=None : mfact=_F(NOEUD =DDL['NOEUD'], TEMP=DDL['PRES_FLUIDE']) - if DDL['GROUP_NO']!=None : mfact=_F(GROUP_NO=DDL['GROUP_NO'],TEMP=DDL['PRES_FLUIDE']) - affimp.append(mfact) - if nflui==0: - UTMESS('F', "MACRO_MATR_AJOU", "PRES_FLUIDE obligatoire une fois") - - __CHARGE=AFFE_CHAR_THER( MODELE = __NOMFLU, - TEMP_IMPO = affimp ) - -# --------------------------------------------------------------- -# calcul des masses, rigidites et amortissements ajoutes en theorie -# potentielle -# commande CALC_MATR_AJOU, calcul de la masse ajoutee - - if MATR_MASS_AJOU!=None : - self.DeclareOut('MASSAJ',MATR_MASS_AJOU) - solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) - mostcles={} - if NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE - if INFO !=None : mostcles['INFO'] =INFO - if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA - elif DEPL_IMPO !=None : mostcles['CHAM_NO'] =DEPL_IMPO - elif MODELE_GENE !=None : - mostcles['MODELE_GENE'] =MODELE_GENE - mostcles['AVEC_MODE_STAT']=AVEC_MODE_STAT - mostcles['DIST_REFE'] =DIST_REFE - if NOEUD_DOUBLE !=None : mostcles['NOEUD_DOUBLE'] =NOEUD_DOUBLE - - MASSAJ = CALC_MATR_AJOU(MODELE_FLUIDE = __NOMFLU, - MODELE_INTERFACE = __NOMINT, - CHARGE = __CHARGE, - CHAM_MATER = __NOMCMA, - OPTION = 'MASS_AJOU', - SOLVEUR = solveur, - **mostcles) - -# --------------------------------------------------------------- -# calcul de l amortissement ajoute - if (MATR_AMOR_AJOU!=None ) or (MATR_RIGI_AJOU!=None ): - -# --------------------------------------------------------------- -# on definit un nouveau modele fluide pour calculer -# le potentiel stationnaire - AFFE_MODELE - grma=[GROUP_MA_FLUIDE,] - if ECOULEMENT!=None : - grma.append(ECOULEMENT['GROUP_MA_1']) - grma.append(ECOULEMENT['GROUP_MA_2']) - __NOFLUI=AFFE_MODELE( MAILLAGE = MAILLAGE, - AFFE = _F( GROUP_MA = grma, - MODELISATION = MODELISATION, - PHENOMENE = 'THERMIQUE' ), ) - affimp=[] - for DDL in DDL_IMPO : - if DDL['PRES_SORTIE']!=None : - if DDL['NOEUD'] !=None : mfact=_F(NOEUD =DDL['NOEUD'], TEMP=DDL['PRES_SORTIE']) - if DDL['GROUP_NO']!=None : mfact=_F(GROUP_NO=DDL['GROUP_NO'],TEMP=DDL['PRES_SORTIE']) - affimp.append(mfact) - - affecl=[] - for ECL in ECOULEMENT : - mfact=_F(GROUP_MA=ECL['GROUP_MA_1'],FLUN=ECL['VNOR_1']) - affecl.append(mfact) - mfact=_F(GROUP_MA=ECL['GROUP_MA_2'],FLUN=ECL['VNOR_2']) - affecl.append(mfact) - __CHARG2=AFFE_CHAR_THER( MODELE = __NOFLUI, - TEMP_IMPO = affimp , - FLUX_REP = affecl ) - - __POTEN = THER_LINEAIRE( MODELE = __NOFLUI, - CHAM_MATER = __NOMCMA , - EXCIT = _F( CHARGE = __CHARG2 ) ) - -# --------------------------------------------------------------- -# calcul amortissement proprement dit - if MATR_AMOR_AJOU!=None : - self.DeclareOut('AMORAJ',MATR_AMOR_AJOU) - solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) - mostcles={} - if NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE - if INFO !=None : mostcles['INFO'] =INFO - if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA - elif DEPL_IMPO !=None : mostcles['CHAM_NO'] =DEPL_IMPO - else : - UTMESS('F', "MACRO_MATR_AJOU", "amortissement ajoute sur modele generalise non encore implante") - - AMORAJ = CALC_MATR_AJOU(MODELE_FLUIDE = __NOMFLU, - MODELE_INTERFACE = __NOMINT, - CHARGE = __CHARGE, - CHAM_MATER = __NOMCMA, - OPTION = 'AMOR_AJOU', - SOLVEUR = solveur, - POTENTIEL = __POTEN, - **mostcles) - -# --------------------------------------------------------------- -# calcul de la rigidite ajoutee - if MATR_RIGI_AJOU!=None : - self.DeclareOut('RIGIAJ',MATR_RIGI_AJOU) - solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) - mostcles={} - if NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE - if INFO !=None : mostcles['INFO'] =INFO - if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA - elif DEPL_IMPO !=None : mostcles['CHAM_NO'] =DEPL_IMPO - else : - UTMESS('F', "MACRO_MATR_AJOU", "rigidite ajoute sur modele generalise non encore implante") - - RIGIAJ = CALC_MATR_AJOU(MODELE_FLUIDE = __NOMFLU, - MODELE_INTERFACE = __NOMINT, - CHARGE = __CHARGE, - CHAM_MATER = __NOMCMA, - OPTION = 'RIGI_AJOU', - SOLVEUR = solveur, - POTENTIEL = __POTEN, - **mostcles) - -# --------------------------------------------------------------- -# boucle sur le nombre de vecteurs a projeter, commande CALC_FORC_AJOU - if FORC_AJOU!=None : - for FORCAJ in FORC_AJOU: - self.DeclareOut('VECTAJ',FORCAJ['VECTEUR']) - solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste) - mostcles={} - if NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE - if MODE_MECA !=None : mostcles['MODE_MECA'] =MODE_MECA - elif MODELE_GENE !=None : - mostcles['MODELE_GENE'] =MODELE_GENE - mostcles['AVEC_MODE_STAT']=AVEC_MODE_STAT - mostcles['DIST_REFE'] =DIST_REFE - if NOEUD_DOUBLE !=None : mostcles['NOEUD_DOUBLE'] =NOEUD_DOUBLE - if MODE_STAT !=None : - mostcles['MODE_STAT'] =MODE_STAT - if FORCAJ['NOEUD'] !=None : mostcles['NOEUD'] =FORCAJ['NOEUD'] - if FORCAJ['GROUP_NO'] !=None : mostcles['GROUP_NO'] =FORCAJ['GROUP_NO'] - else : - mostcles['MONO_APPUI'] =MONO_APPUI - - VECTAJ = CALC_FORC_AJOU(DIRECTION = FORCAJ['DIRECTION'], - MODELE_FLUIDE = __NOMFLU, - MODELE_INTERFACE = __NOMINT, - CHARGE = __CHARGE, - CHAM_MATER = __NOMCMA, - SOLVEUR = solveur, - **mostcles) - - - return ier diff --git a/Aster/Cata/cataSTA8/Macro/macro_matr_asse_ops.py b/Aster/Cata/cataSTA8/Macro/macro_matr_asse_ops.py deleted file mode 100644 index c070044e..00000000 --- a/Aster/Cata/cataSTA8/Macro/macro_matr_asse_ops.py +++ /dev/null @@ -1,129 +0,0 @@ -#@ MODIF macro_matr_asse_ops Macro DATE 06/02/2008 AUTEUR MACOCCO K.MACOCCO -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - -def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE, - SOLVEUR,NUME_DDL,CHARGE,CHAR_CINE,INST,INFO,**args): - """ - Ecriture de la macro MACRO_MATR_ASSE - """ - ier=0 - from Utilitai.Utmess import UTMESS - - # On met le mot cle NUME_DDL dans une variable locale pour le proteger - numeddl=NUME_DDL - info=INFO - # 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) - - # Les mots cles simples sous SOLVEUR sont par defaut MULT_FRONT/METIS - methode=SOLVEUR['METHODE'] - renum=SOLVEUR['RENUM'] - - if numeddl in self.sdprods: - # Si le concept numeddl est dans self.sdprods - # il doit etre produit par la macro - # il faudra donc appeler la commande NUME_DDL - lnume = 1 - else: - lnume = 0 - lrigel = 0 - lmasel = 0 - -# decalage eventuel en premiere position dans la liste de l occurence de MATR_ASSE contenant -# l option de rigidite - try : - for m in MATR_ASSE: - option=m['OPTION'] - if option in ('RIGI_MECA','RIGI_MECA_LAGR','RIGI_THER','RIGI_ACOU') : - decal=m - MATR_ASSE.remove(decal) - MATR_ASSE.insert(0,decal) - break - except: pass - - iocc=0 - for m in MATR_ASSE: - iocc=iocc+1 - option=m['OPTION'] - if iocc == 1 and lnume == 1 and option not in ('RIGI_MECA','RIGI_MECA_LAGR', - 'RIGI_THER','RIGI_ACOU') : - UTMESS('F', "MACRO_MATR_ASSE", "UNE DES OPTIONS DOIT ETRE RIGI_MECA OU RIGI_THER OU RIGI_ACOU OU RIGI_MECA_LAGR") - - - motscles={'OPTION':option} - if option == 'RIGI_MECA_HYST': - if (not lrigel): - UTMESS('F', "MACRO_MATR_ASSE", "POUR CALCULER RIGI_MECA_HYST, IL FAUT AVOIR CALCULE RIGI_MECA AUPARAVANT (DANS LE MEME APPEL)") - motscles['RIGI_MECA'] =rigel - if option == 'AMOR_MECA': - if (not lrigel or not lmasel): - UTMESS('F', "MACRO_MATR_ASSE", "POUR CALCULER AMOR_MECA, IL FAUT AVOIR CALCULE RIGI_MECA ET MASS_MECA AUPARAVANT (DANS LE MEME APPEL)") - if CHAM_MATER != None: - motscles['RIGI_MECA'] =rigel - motscles['MASS_MECA'] =masel - if CHARGE != None: - if option[0:9] not in ('MASS_THER','RIGI_GEOM','MASS_ID_M'): - motscles['CHARGE'] =CHARGE - if CHAM_MATER != None: motscles['CHAM_MATER'] =CHAM_MATER - if CARA_ELEM != None: motscles['CARA_ELEM'] =CARA_ELEM - if INST != None: motscles['INST'] =INST - - try : motscles['SIEF_ELGA'] =m['SIEF_ELGA'] - except IndexError : pass - - try : motscles['MODE_FOURIER'] =m['MODE_FOURIER'] - except IndexError : pass - - try : motscles['THETA'] =m['THETA'] - except IndexError : pass - - try : motscles['PROPAGATION'] =m['PROPAGATION'] - except IndexError : pass - _a=CALC_MATR_ELEM(MODELE=MODELE,**motscles) - - if option == 'RIGI_MECA': - rigel = _a - lrigel = 1 - if option == 'MASS_MECA': - masel = _a - lmasel = 1 - - if lnume and option in ('RIGI_MECA','RIGI_THER','RIGI_ACOU','RIGI_MECA_LAGR'): - self.DeclareOut('num',numeddl) - # On peut passer des mots cles egaux a None. Ils sont ignores - num=NUME_DDL(MATR_RIGI=_a,METHODE=methode,RENUM=renum,INFO=info) - else: - num=numeddl - - self.DeclareOut('mm',m['MATRICE']) - motscles={'OPTION':option} - if CHAR_CINE != None: - mm=ASSE_MATRICE(MATR_ELEM=_a,NUME_DDL=num,CHAR_CINE=CHAR_CINE) - else: - mm=ASSE_MATRICE(MATR_ELEM=_a,NUME_DDL=num) - - return ier diff --git a/Aster/Cata/cataSTA8/Macro/macro_miss_3d_ops.py b/Aster/Cata/cataSTA8/Macro/macro_miss_3d_ops.py deleted file mode 100644 index 315f4307..00000000 --- a/Aster/Cata/cataSTA8/Macro/macro_miss_3d_ops.py +++ /dev/null @@ -1,141 +0,0 @@ -#@ MODIF macro_miss_3d_ops Macro DATE 06/06/2007 AUTEUR SALMONA L.SALMONA -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - -def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS, - UNITE_MODELE_SOL,UNITE_RESU_IMPE, - PROJET,REPERTOIRE,OPTION,VERSION, - UNITE_RESU_FORC,PARAMETRE,**args): - """ - Ecriture de la macro MACRO_MISS_3D - """ - import types - from Accas import _F - from Utilitai.Utmess import UTMESS - from types import TupleType, ListType - - ier=0 - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - DEFI_FICHIER =self.get_cmd('DEFI_FICHIER') - EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL') - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - DEFI_FICHIER(ACTION='LIBERER',UNITE=UNITE_IMPR_ASTER) - - import aster - loc_fic=aster.repout() - tv = aster.__version__.split('.') - if len(tv) < 3: - tv.extend(['x']*(3-len(tv))) - elif len(tv) > 3: - tv = tv[:3] - vers = '%2s.%2s.%2s' % tuple(tv) - - # if vers > ' 8. 3.11': - # miss3d='/aster/logiciels/MISS3D/NEW/miss3d.csh' - # else: - # miss3d=loc_fic+'miss3d' - - miss3d=loc_fic+'miss3d' - - # if VERSION=='V1_2': - # if PARAMETRE != None and PARAMETRE['TYPE']=='BINAIRE': - # raise AsException("MACRO_MISS_3D/PARAMETRE : type incompatible avec version") - - if OPTION['TOUT']!=None: - MODUL2='COMPLET' - elif OPTION['MODULE']=='MISS_IMPE': - MODUL2='CALC_IMPE' - elif OPTION['MODULE']=='MISS_EVOL': - MODUL2='MISS_PTAS' - elif OPTION['MODULE']=='PRE_MISS': - MODUL2='GTASTER' - - ETUDE = PROJET - BASE = REPERTOIRE - paste = 'fort.'+str(UNITE_IMPR_ASTER) - popti = 'fort.'+str(UNITE_OPTI_MISS) - pdsol = 'fort.'+str(UNITE_MODELE_SOL) - primp = 'fort.'+str(UNITE_RESU_IMPE) - prfor = 'fort.'+str(UNITE_RESU_FORC) - - l_para = ['FREQ_MIN','FREQ_MAX','FREQ_PAS','Z0','RFIC','SURF', - 'FICH_RESU_IMPE','FICH_RESU_FORC','TYPE','DREF','ALGO', - 'OFFSET_MAX','OFFSET_NB','SPEC_MAX','SPEC_NB','ISSF', - 'FICH_POST_TRAI','CONTR_NB','CONTR_LISTE','LFREQ_NB', - 'LFREQ_LISTE'] - if PARAMETRE != None and PARAMETRE['LFREQ_NB'] != None: - if len(PARAMETRE['LFREQ_LISTE']) != PARAMETRE['LFREQ_NB']: - UTMESS('F', 'MACRO_MISS3D', 'Longueur de LFREQ_LISTE incorrecte') - if PARAMETRE != None and PARAMETRE['CONTR_NB'] != None: - if len(PARAMETRE['CONTR_LISTE']) != 3*PARAMETRE['CONTR_NB']: - UTMESS('F', 'MACRO_MISS3D', 'Longueur de CONTR_LISTE incorrecte') - - dpara = {} - for cle in l_para: - if cle in ('SURF', 'ISSF', ): - dpara[cle] = 'NON' - else: - dpara[cle] = '0' - if PARAMETRE != None and PARAMETRE[cle] != None: - if type(PARAMETRE[cle]) in (TupleType, ListType): - dpara[cle] = repr(' '.join([str(s) for s in PARAMETRE[cle]])) - else: - dpara[cle] = str(PARAMETRE[cle]) - - EXEC_LOGICIEL( - LOGICIEL=miss3d, - ARGUMENT=(MODUL2, - ETUDE, - BASE, - paste, - popti, - pdsol, - primp, - VERSION, - dpara['FREQ_MIN'], - dpara['FREQ_MAX'], - dpara['FREQ_PAS'], - dpara['Z0'], - dpara['SURF'], - dpara['RFIC'], - dpara['FICH_RESU_IMPE'], - dpara['FICH_RESU_FORC'], - dpara['DREF'], - dpara['ALGO'], - dpara['OFFSET_MAX'], - dpara['OFFSET_NB'], - dpara['SPEC_MAX'], - dpara['SPEC_NB'], - dpara['ISSF'], - dpara['FICH_POST_TRAI'], - dpara['CONTR_NB'], - dpara['CONTR_LISTE'], - dpara['LFREQ_NB'], - dpara['LFREQ_LISTE'], - dpara['TYPE'], - prfor, - ), - ) - - return ier diff --git a/Aster/Cata/cataSTA8/Macro/macro_mode_meca_ops.py b/Aster/Cata/cataSTA8/Macro/macro_mode_meca_ops.py deleted file mode 100644 index a24af1f6..00000000 --- a/Aster/Cata/cataSTA8/Macro/macro_mode_meca_ops.py +++ /dev/null @@ -1,138 +0,0 @@ -#@ MODIF macro_mode_meca_ops Macro DATE 14/06/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - -def macro_mode_meca_ops(self,MATR_A,MATR_B,INFO,METHODE,OPTION,CALC_FREQ, - VERI_MODE,NORM_MODE,FILTRE_MODE,IMPRESSION,**args): - """ - Ecriture de la macro MACRO_MODE_MECA - """ - from Accas import _F - ier=0 - - # on protege le contenu du mot cle NORM_MODE pour eviter les confusions - # avec la commande du meme nom - - normode=NORM_MODE - - # On importe les definitions des commandes a utiliser dans la macro - MODE_ITER_SIMULT =self.get_cmd('MODE_ITER_SIMULT') - NORM_MODE =self.get_cmd('NORM_MODE') - IMPR_RESU =self.get_cmd('IMPR_RESU') - EXTR_MODE =self.get_cmd('EXTR_MODE') - DETRUIRE =self.get_cmd('DETRUIRE') - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - nompro=None - iocc=0 - if CALC_FREQ['FREQ']: - nnfreq=len(CALC_FREQ['FREQ']) - else: - lborne=[] - nnfreq= CALC_FREQ['NB_BLOC_FREQ']+1 - zlborn=(CALC_FREQ['FREQ_MAX']-CALC_FREQ['FREQ_MIN'])/(nnfreq-1) - for i in range(0,nnfreq): - lborne.append(CALC_FREQ['FREQ_MIN']+i*zlborn) - - motscles={} - motscles['FILTRE_MODE']=[] - for i in range(0,nnfreq-1): - motscit={} - motscfa={} - if CALC_FREQ['DIM_SOUS_ESPACE']: motscfa['DIM_SOUS_ESPACE']=CALC_FREQ['DIM_SOUS_ESPACE'] - if CALC_FREQ['COEF_DIM_ESPACE']: motscfa['COEF_DIM_ESPACE']=CALC_FREQ['COEF_DIM_ESPACE'] - if CALC_FREQ['FREQ']: - motscfa['FREQ']=(CALC_FREQ['FREQ'][i],CALC_FREQ['FREQ'][i+1]) - else: - motscfa['FREQ']=(lborne[i],lborne[i+1]) - motscit['CALC_FREQ']=_F(OPTION ='BANDE', - SEUIL_FREQ =CALC_FREQ['SEUIL_FREQ'], - NPREC_SOLVEUR =CALC_FREQ['NPREC_SOLVEUR'], - NMAX_ITER_SHIFT =CALC_FREQ['NMAX_ITER_SHIFT'], - PREC_SHIFT =CALC_FREQ['PREC_SHIFT'], - **motscfa) - motscit['VERI_MODE']=_F(STOP_ERREUR=VERI_MODE['STOP_ERREUR'], - SEUIL =VERI_MODE['SEUIL'], - STURM =VERI_MODE['STURM'], - PREC_SHIFT =VERI_MODE['PREC_SHIFT']) - motscit['STOP_FREQ_VIDE']=CALC_FREQ['STOP_FREQ_VIDE'] - - if METHODE=='TRI_DIAG': - if args.has_key('NMAX_ITER_ORTHO'): - motscit['NMAX_ITER_ORTHO'] =args['NMAX_ITER_ORTHO'] - if args.has_key('PREC_ORTHO'): - motscit['PREC_ORTHO'] =args['PREC_ORTHO'] - if args.has_key('PREC_LANCZOS'): - motscit['PREC_LANCZOS'] =args['PREC_LANCZOS'] - if args.has_key('MAX_ITER_QR'): - motscit['NMAX_ITER_QR'] =args['NMAX_ITER_QR'] - elif METHODE=='JACOBI': - if args.has_key('NMAX_ITER_BATHE'): - motscit['NMAX_ITER_BATHE'] =args['NMAX_ITER_BATHE'] - if args.has_key('PREC_BATHE'): - motscit['PREC_BATHE'] =args['PREC_BATHE'] - if args.has_key('NMAX_ITER_JACOBI'): - motscit['NMAX_ITER_JACOBI']=args['NMAX_ITER_JACOBI'] - if args.has_key('PREC_JACOBI'): - motscit['PREC_JACOBI'] =args['PREC_JACOBI'] - elif METHODE=='SORENSEN': - if args.has_key('NMAX_ITER_SOREN'): - motscit['NMAX_ITER_SOREN'] =args['NMAX_ITER_SOREN'] - if args.has_key('PARA_ORTHO_SOREN'): - motscit['PARA_ORTHO_SOREN']=args['PARA_ORTHO_SOREN'] - if args.has_key('PREC_SOREN'): - motscit['PREC_SOREN'] =args['PREC_SOREN'] - - __nomre0=MODE_ITER_SIMULT(MATR_A =MATR_A, - MATR_B =MATR_B, - INFO =INFO, - METHODE =METHODE, - OPTION =OPTION, - **motscit) - - __nomre0=NORM_MODE(reuse =__nomre0, - MASS_INER =normode['MASS_INER'], - MODE =__nomre0, - NORME =normode['NORME'], - INFO =normode['INFO'],) - - if IMPRESSION['TOUT_PARA']=='OUI': - IMPR_RESU(RESU=_F(RESULTAT=__nomre0, - TOUT_ORDRE='OUI', - TOUT_CHAM ='NON', - TOUT_PARA ='OUI',) ) - - if FILTRE_MODE : - motscles['FILTRE_MODE'].append(_F(MODE =__nomre0, - CRIT_EXTR =FILTRE_MODE['CRIT_EXTR'], - SEUIL =FILTRE_MODE['SEUIL'], )) - else: - motscles['FILTRE_MODE'].append(_F(MODE =__nomre0, - TOUT_ORDRE='OUI',) ) - - - motscles['IMPRESSION']=_F(CUMUL =IMPRESSION['CUMUL'], - CRIT_EXTR=IMPRESSION['CRIT_EXTR'],) - self.DeclareOut('nomres',self.sd) - nomres=EXTR_MODE(**motscles) - DETRUIRE(CONCEPT=_F(NOM='__nomre0',),ALARME='NON') - return ier diff --git a/Aster/Cata/cataSTA8/Macro/macro_proj_base_ops.py b/Aster/Cata/cataSTA8/Macro/macro_proj_base_ops.py deleted file mode 100644 index 589dde01..00000000 --- a/Aster/Cata/cataSTA8/Macro/macro_proj_base_ops.py +++ /dev/null @@ -1,59 +0,0 @@ -#@ MODIF macro_proj_base_ops Macro DATE 05/09/2005 AUTEUR DURAND C.DURAND -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - -def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args): - """ - Ecriture de la macro MACRO_PROJ_BASE - """ - ier=0 - from Utilitai.Utmess import UTMESS - # On importe les definitions des commandes a utiliser dans la macro - NUME_DDL_GENE =self.get_cmd('NUME_DDL_GENE') - PROJ_MATR_BASE =self.get_cmd('PROJ_MATR_BASE') - PROJ_VECT_BASE =self.get_cmd('PROJ_VECT_BASE') - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=PROFIL) - if MATR_ASSE_GENE: - for m in MATR_ASSE_GENE: - motscles={} - if m['MATR_ASSE'] : motscles['MATR_ASSE'] =m['MATR_ASSE'] - elif m['MATR_ASSE_GENE']: motscles['MATR_ASSE_GENE']=m['MATR_ASSE_GENE'] - else: - UTMESS('F', "MACRO_PROJ_BASE", "MATR_ASSE et MATR_ASSE_GENE absents") - self.DeclareOut('mm',m['MATRICE']) - mm=PROJ_MATR_BASE(BASE=BASE,NUME_DDL_GENE=_num,**motscles) - - if VECT_ASSE_GENE: - _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=PROFIL) - for v in VECT_ASSE_GENE: - motscles={} - if v['VECT_ASSE'] : motscles['VECT_ASSE'] =v['VECT_ASSE'] - elif v['VECT_ASSE_GENE']: motscles['VECT_ASSE_GENE']=v['VECT_ASSE_GENE'] - else: - UTMESS('F', "MACRO_PROJ_BASE", "MATR_ASSE et MATR_ASSE_GENE absents") - motscles['TYPE_VECT']=v['TYPE_VECT'] - self.DeclareOut('vv',v['VECTEUR']) - vv=PROJ_VECT_BASE(BASE=BASE,NUME_DDL_GENE=_num,**motscles) - - return ier diff --git a/Aster/Cata/cataSTA8/Macro/post_dyna_alea_ops.py b/Aster/Cata/cataSTA8/Macro/post_dyna_alea_ops.py deleted file mode 100644 index db6f62ab..00000000 --- a/Aster/Cata/cataSTA8/Macro/post_dyna_alea_ops.py +++ /dev/null @@ -1,254 +0,0 @@ -#@ MODIF post_dyna_alea_ops Macro DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def post_dyna_alea_ops(self,INTE_SPEC,NUME_VITE_FLUI,TOUT_ORDRE,NUME_ORDRE_I, - NOEUD_I,OPTION,MOMENT,TITRE,INFO,**args): - import aster - from types import ListType, TupleType - EnumTypes = (ListType, TupleType) - from Accas import _F - from Utilitai.Utmess import UTMESS - from Utilitai.t_fonction import t_fonction - from Utilitai.Table import Table - import Numeric - import math - from math import pi,sqrt - - commande='POST_DYNA_ALEA' - - ier = 0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type table_sdaster ou dérivé) est tab - self.DeclareOut('tabout', self.sd) - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - CREA_TABLE = self.get_cmd('CREA_TABLE') - CALC_TABLE = self.get_cmd('CALC_TABLE') - IMPR_TABLE = self.get_cmd('IMPR_TABLE') - RECU_FONCTION = self.get_cmd('RECU_FONCTION') - IMPR_FONCTION = self.get_cmd('IMPR_FONCTION') - - intespec=INTE_SPEC.EXTR_TABLE() - -# ------------------------------------------------------------------ -# Liste des moments spectraux -# repérer le type de l'interspectre et son nom -# 1- concept interspectre -# 2- table de table d interspectre - - if 'NUME_VITE_FLUI' in intespec.para : - if TOUT_ORDRE!=None : - jnuor=intespec['NUME_VITE_FLUI'].values()['NUME_VITE_FLUI'] - jvite=dict([(i,0) for i in jnuor]).keys() - else : - jvite=[NUME_VITE_FLUI,] - else : - jvite =[None] - -# ------------------------------------------------------------------ -# Repérer les couples d'indices selectionnés -# vérification de l'égalité du nombre d indices en i et j - - if NUME_ORDRE_I!=None : - l_ind_i=NUME_ORDRE_I - l_ind_j=args['NUME_ORDRE_J'] - if type(l_ind_i) not in EnumTypes : l_ind_i=[l_ind_i] - if type(l_ind_j) not in EnumTypes : l_ind_j=[l_ind_j] - if len(l_ind_i)!=len(l_ind_j) : - txt = "il faut autant d indices en I et J" - UTMESS('F',commande, txt) - listpara=['NUME_ORDRE_I','NUME_ORDRE_J'] - listtype=['I','I'] - dicotabl={'NUME_ORDRE_I' : l_ind_i ,\ - 'NUME_ORDRE_J' : l_ind_j , } - elif NOEUD_I!=None : - l_ind_i=NOEUD_I - l_ind_j=args['NOEUD_J'] - l_cmp_i=args['NOM_CMP_I'] - l_cmp_j=args['NOM_CMP_J'] - if type(l_cmp_i) not in EnumTypes : l_cmp_i=[l_cmp_i] - if type(l_cmp_j) not in EnumTypes : l_cmp_j=[l_cmp_j] - if type(l_ind_i) not in EnumTypes : l_ind_i=[l_ind_i] - if type(l_ind_j) not in EnumTypes : l_ind_j=[l_ind_j] - if len(l_ind_i)!=len(l_ind_j) : - txt = "il faut autant d indices en I et J" - UTMESS('F',commande, txt) - if len(l_cmp_i)!=len(l_cmp_j) : - txt = "il faut autant de composantes en I et J" - UTMESS('F',commande, txt) - if len(l_ind_i)!=len(l_cmp_i) : - txt = "il faut autant de composantes que de noeuds" - UTMESS('F',commande, txt) - listpara=['NOEUD_I','NOEUD_J','NOM_CMP_I','NOM_CMP_J'] - listtype=['K8','K8','K8','K8',] - dicotabl={'NOEUD_I' : l_ind_i,\ - 'NOEUD_J' : l_ind_j,\ - 'NOM_CMP_I': l_cmp_i,\ - 'NOM_CMP_J': l_cmp_j } -# ------------------------------------------------------------------ -# Cas de tous les indices centraux - - elif OPTION!=None : - if 'NUME_ORDRE_I' in intespec.para : - inuor=intespec['NUME_ORDRE_I'].values()['NUME_ORDRE_I'] - imode=dict([(i,0) for i in inuor]).keys() - l_ind_i=imode - l_ind_j=imode - listpara=['NUME_ORDRE_I','NUME_ORDRE_J'] - listtype=['I','I'] - dicotabl={'NUME_ORDRE_I' : l_ind_i ,\ - 'NUME_ORDRE_J' : l_ind_j , } - else : - if 'NUME_VITE_FLUI' in intespec.para : - intespec=intespec.NUME_VITE_FLUI==jvite[0] - l_ind_i=intespec['NOEUD_I'].values()['NOEUD_I'] - l_ind_j=intespec['NOEUD_J'].values()['NOEUD_J'] - if len(l_ind_i)!=len(l_ind_j) : - txt = "il faut autant d indices en I et J" - UTMESS('F',commande, txt) - l_cmp_i=intespec['NOM_CMP_I'].values()['NOM_CMP_I'] - l_cmp_j=intespec['NOM_CMP_J'].values()['NOM_CMP_J'] - if (len(l_ind_i)!=len(l_cmp_i) or len(l_ind_j)!=len(l_cmp_j)) : - txt = "il faut autant de composantes que de noeuds" - UTMESS('F',commande, txt) - l_l=zip(zip(l_ind_i,l_cmp_i),zip(l_ind_j,l_cmp_j)) - l_ind_i=[] - l_ind_j=[] - l_cmp_i=[] - l_cmp_j=[] - for ai,aj in l_l : - if ai==aj : - l_ind_i.append(ai[0]) - l_ind_j.append(aj[0]) - l_cmp_i.append(ai[1]) - l_cmp_j.append(aj[1]) - listpara=['NOEUD_I','NOEUD_J','NOM_CMP_I','NOM_CMP_J'] - listtype=['K8','K8','K8','K8',] - dicotabl={'NOEUD_I' : l_ind_i*len(jvite) ,\ - 'NOEUD_J' : l_ind_j*len(jvite) ,\ - 'NOM_CMP_I': l_cmp_i*len(jvite) ,\ - 'NOM_CMP_J': l_cmp_j*len(jvite) } - - if jvite[0]!=None : - listpara.append('NUME_VITE_FLUI') - listtype.append('I') - dicotabl['NUME_VITE_FLUI']=[] -# ------------------------------------------------------------------ -# Liste des moments spectraux - - l_moments=[0,1,2,3,4] - if MOMENT!=None : - l_moments=l_moments+list(MOMENT) - l_moments=dict([(i,0) for i in l_moments]).keys() - -# ------------------------------------------------------------------ -# Boucle sur les tables - - l_ind=zip(l_ind_i,l_ind_j) - for vite in jvite : - if INFO==2 : - texte='POUR LA MATRICE INTERSPECTRALE '+INTE_SPEC.nom+'\n' - aster.affiche('MESSAGE',texte) - for ind in l_ind : - mcfact=[] - if vite!=None : - dicotabl['NUME_VITE_FLUI'].append(vite) - mcfact.append(_F(NOM_PARA='NUME_VITE_FLUI',VALE_I=vite)) - if 'NOEUD_I' in listpara : - mcfact.append(_F(NOM_PARA='NOEUD_I',VALE_K=ind[0])) - mcfact.append(_F(NOM_PARA='NOEUD_I',VALE_K=ind[1])) - if INFO==2 : - aster.affiche('MESSAGE','INDICES :'+ind[0]+' - '+ind[1]+'\n') - else : - mcfact.append(_F(NOM_PARA='NUME_ORDRE_I',VALE_I=ind[0])) - mcfact.append(_F(NOM_PARA='NUME_ORDRE_J',VALE_I=ind[1])) - if INFO==2 : - aster.affiche('MESSAGE','INDICES :'+str(ind[0])+' - '\ - +str(ind[1])+'\n') - __fon1=RECU_FONCTION(TABLE = INTE_SPEC, - NOM_PARA_TABL= 'FONCTION_C', - FILTRE = mcfact, ) - val = __fon1.Valeurs() - fvalx= Numeric.array(val[0]) - fvaly= Numeric.array(val[1]) - frez = fvalx[0] - -#--- moments spectraux - - val_mom={} - for i_mom in l_moments : - trapz = Numeric.zeros(len(fvaly),Numeric.Float) - trapz[0] = 0. - valy = fvaly*(2*pi*fvalx)**i_mom - trapz[1:] = (valy[1:]+valy[:-1])/2*(fvalx[1:]-fvalx[:-1]) - prim_y = Numeric.cumsum(trapz) - val_mom[i_mom] = prim_y[-1] - for i_mom in l_moments : - chmo='LAMBDA_'+str(i_mom).zfill(2) - if dicotabl.has_key(chmo) : dicotabl[chmo].append(val_mom[i_mom]) - else : - dicotabl[chmo]=[val_mom[i_mom],] - listpara.append(chmo) - listtype.append('R') - -#--- fonctions statistiques - - pstat = {'ECART' :0.,\ - 'NB_PASS_ZERO_P_S':0.,\ - 'NB_EXTREMA_P_S' :0.,\ - 'FACT_IRRE' :0.,\ - 'FREQ_APPAR' :0.,} - if (NUME_VITE_FLUI or frez>=0.) : -#--- cas NUME_VITE_FLUI, seule la partie positive du spectre est utilisée -#--- Il faut donc doubler lambda pour calculer le bon écart type - pstat['ECART'] = sqrt(val_mom[0]*2.) - else : - pstat['ECART'] = sqrt(val_mom[0]) - if abs(val_mom[2])>=1e-20 : - pstat['NB_EXTREMA_P_S'] = 1./pi*sqrt(val_mom[4]/val_mom[2]) - if abs(val_mom[0])>=1e-20 : - pstat['NB_PASS_ZERO_P_S'] = 1./pi*sqrt(val_mom[2]/val_mom[0]) - pstat['FREQ_APPAR'] = 0.5*pstat['NB_PASS_ZERO_P_S'] - if abs(val_mom[4])>=1e-20 : - pstat['FACT_IRRE'] = sqrt( val_mom[2]*val_mom[2]/val_mom[0]/val_mom[4]) - - for key in pstat.keys(): - if dicotabl.has_key(key) : dicotabl[key].append(pstat[key]) - else : - dicotabl[key]=[pstat[key],] - listpara.append(key) - listtype.append('R') - -#--- construction de la table produite - - mcfact=[] - for i in range(len(listpara)) : - if listtype[i]=='R': - mcfact.append(_F(PARA=listpara[i] ,LISTE_R=dicotabl[listpara[i]] )) - if listtype[i]=='K8': - mcfact.append(_F(PARA=listpara[i] ,LISTE_K=dicotabl[listpara[i]] )) - if listtype[i]=='I': - mcfact.append(_F(PARA=listpara[i] ,LISTE_I=dicotabl[listpara[i]] )) - tabout = CREA_TABLE(LISTE=mcfact,TITRE = 'POST_DYNA_ALEA concept : '+self.sd.nom) - - return ier diff --git a/Aster/Cata/cataSTA8/Macro/post_gp_ops.py b/Aster/Cata/cataSTA8/Macro/post_gp_ops.py deleted file mode 100644 index c72135c1..00000000 --- a/Aster/Cata/cataSTA8/Macro/post_gp_ops.py +++ /dev/null @@ -1,371 +0,0 @@ -#@ MODIF post_gp_ops Macro DATE 31/10/2006 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from types import ListType, TupleType -EnumTypes = (ListType, TupleType) -from sets import Set - -# ----------------------------------------------------------------------------- -def post_gp_ops(self, **args): - """ - Corps de la macro POST_GP - """ - macro = 'POST_GP' - ier=0 - from Accas import _F - from Utilitai.Utmess import UTMESS - from Utilitai.Table import Table, merge - from Utilitai.t_fonction import t_fonction - import aster - - # ----- On importe les definitions des commandes a utiliser dans la macro - CALC_THETA = self.get_cmd('CALC_THETA') - CALC_G = self.get_cmd('CALC_G') - POST_ELEM = self.get_cmd('POST_ELEM') - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - CREA_TABLE = self.get_cmd('CREA_TABLE') - - # ----- Comptage, commandes + déclaration concept sortant - self.set_icmd(1) - self.DeclareOut('result', self.sd) - self.DeclareOut('tabresult', self['TABL_RESU']) - info = self['INFO'] - - # 0. ----- Type de calcul - identification = self['IDENTIFICATION'] != None - if identification: - # 0.1. --- identification : on boule sur les valeurs de TEMP. - # Pour chaque couple (T, Kjc(T)), on évalue les Ki, Kmoy et - # les valeurs de Gpmax, DeltaLmax, inst.max correspondantes. - mccalc = self['IDENTIFICATION'] - l_crit = mccalc['KJ_CRIT'] - lv_ident = [] - l_temp = mccalc['TEMP'] - else: - # 0.2. --- prédiction : on ne fait qu'une itération. - # Il faut un RESU_THER (sinon on utilise la température du - # premier Gpcrit et cà n'a pas trop d'intéret). - # A chaque instant, on regarde à quelle température est le - # fond d'entaille et on compare Gpmax à cet instant au Gpcrit. - mccalc = self['PREDICTION'] - l_crit = mccalc['GP_CRIT'] - lv_pred = [] - l_temp = mccalc['TEMP'][0] - - if not type(l_temp) in EnumTypes: - l_temp = [l_temp,] - if not type(l_crit) in EnumTypes: - l_crit = [l_crit,] - - # 1. ----- calcul de G-theta - nbcour = len(self['THETA_2D']) - l_tab = [] - for occ in self['THETA_2D']: - dMC = occ.cree_dict_valeurs(occ.mc_liste) - - __theta = CALC_THETA(MODELE=self['MODELE'], - DIRECTION=self['DIRECTION'], - THETA_2D=_F(GROUP_NO=dMC['GROUP_NO'], - MODULE=1.0, - R_INF=dMC['R_INF'], - R_SUP=dMC['R_SUP']),) - - __gtheta = CALC_G(THETA=_F(THETA=__theta), - EXCIT=self['EXCIT'].List_F(), - RESULTAT=self['RESULTAT'], - TOUT_ORDRE='OUI', - SYME_CHAR=self['SYME_CHAR'], - COMP_ELAS=self['COMP_ELAS'].List_F(),) - - tab = __gtheta.EXTR_TABLE() - - # une Table par couronne - l_tab.append(tab) - - # 2. ----- Calcul de l'energie élastique en exploitant les groupes de - # mailles fournis par la procedure de maillage - l_copo = [grma.strip() for grma in self['GROUP_MA']] - nbcop = len(l_copo) - l_charg = [charg['CHARGE'] for charg in self['EXCIT']] - - __ener = POST_ELEM(MODELE=self['MODELE'], - RESULTAT=self['RESULTAT'], - CHARGE=l_charg, - TOUT_ORDRE='OUI', - ENER_ELAS=_F(GROUP_MA=l_copo), - TITRE='Energie élastique',) - - t_enel = __ener.EXTR_TABLE() - - # 2.1. ----- Indice de chaque copeau et deltaL - d_icop = dict(zip(l_copo, range(1, nbcop + 1))) - - l_lieu = [grma.strip() for grma in t_enel.LIEU.values()] - l_icop = [d_icop[grma] for grma in l_lieu] - t_enel['ICOP'] = l_icop - t_enel.fromfunction('DELTAL', fDL, 'ICOP', { 'pascop' : self['PAS_ENTAILLE'] }) - - # 2.2. ----- Calcul de Gp fonction de Ener.Totale et de deltaL - t_enel.fromfunction('GP', fGp_Etot, ('TOTALE', 'ICOP'), - { 'pascop' : self['PAS_ENTAILLE'], - 'syme' : self['SYME_CHAR'] != 'SANS', - 'R' : self['RAYON_AXIS'] }) - - # 2.3. ----- Tableau de Gp = f(icop) pour chaque instant - if info >= 2: - tGp_t_icop = t_enel['INST', 'DELTAL', 'GP'] - tGp_t_icop.titr = "Gp à chaque instant en fonction de la distance au " \ - "fond d'entaille" - tGp_t_icop.ImprTabCroise() - - # 2.4. ----- Table Gpmax - ttmp = t_enel['NUME_ORDRE', 'INST', 'ICOP', 'DELTAL', 'GP'] - l_numord = list(Set(ttmp.NUME_ORDRE.values())) - l_numord.sort() - for j in l_numord: - tj = ttmp.NUME_ORDRE == j - if self['CRIT_MAXI_GP'] == 'ABSOLU': - t = tj.GP.MAXI() - else: - t = MaxRelatif(tj, 'GP') - if j == 1: - tb_Gpmax = t - else: - tb_Gpmax = tb_Gpmax | t - tb_Gpmax.Renomme('GP', 'GPMAX') - tb_Gpmax.Renomme('ICOP', 'ICOPMAX') - tb_Gpmax.Renomme('DELTAL', 'DELTALMAX') - tb_Gpmax.titr = 'Gpmax à chaque instant' - if info >= 2: - print tb_Gpmax - - # 2.5. ----- extraction de la température en fond d'entaille - if self['RESU_THER']: - grno_fond = self['THETA_2D'][0]['GROUP_NO'] - __relev = POST_RELEVE_T(ACTION=_F(RESULTAT=self['RESU_THER'], - OPERATION='EXTRACTION', - INTITULE='Temperature', - NOM_CHAM='TEMP', - TOUT_ORDRE='OUI', - NOM_CMP='TEMP', - GROUP_NO=grno_fond,),) - t_relev = __relev.EXTR_TABLE()['NUME_ORDRE', 'TEMP'] - - - # 3. ----- boucle sur les mots-clés facteurs - # opérations dépendant de la température - MATER = self['MATER'] - flag_mat = True - - for iocc, TEMP in enumerate(l_temp): - # 3.0. ----- Temperature fonction du temps : si on n'a pas de RESU_THER, - # on prend la température d'identification. - if not self['RESU_THER']: - l_rows = [{'NUME_ORDRE' : i, 'TEMP' : TEMP} for i in l_numord] - t_relev = Table(rows=l_rows, para=('NUME_ORDRE', 'TEMP'), typ=('R', 'R')) - flag_mat = True - - # 3.1. ----- extrait du matériau E(TEMP) et NU(TEMP) (si nécessaire) - if flag_mat: - t_relev.fromfunction('YOUNG', CallRCVALE, 'TEMP', - { 'para' : 'E', 'MATER' : MATER }) - t_relev.fromfunction('NU', CallRCVALE, 'TEMP', - { 'para' : 'NU', 'MATER' : MATER }) - #tb_Gpmax = merge(tb_Gpmax, t_relev, 'NUME_ORDRE') - flag_mat = False - - # 3.2. ----- paramètres - dict_constantes = { - 'YOUNG' : CallRCVALE(TEMP, 'E', MATER), - 'NU' : CallRCVALE(TEMP, 'NU', MATER), - 'R' : self['RAYON_AXIS'], - } - - # 3.3. ----- calcul de Kj(G) - l_tabi = [] - for k, tab in enumerate(l_tab): - # fusion avec TEMP, E et nu. - tab = merge(tab, t_relev, 'NUME_ORDRE') - - # calcul de Kj(G) = K_i - new_para = 'K_%d' % (k + 1) - tab.fromfunction(new_para, fKj, ('G', 'YOUNG', 'NU'), - { 'R' : self['RAYON_AXIS'] }) - - # renomme G en G_i - tab.Renomme('G', 'G_%d' % (k + 1)) - l_tabi.append(tab) - - # 3.4 ----- Table des Gi, Ki sur les differentes couronnes + Kmoyen - tabK_G = l_tabi[0]['NUME_ORDRE'] - for tab in l_tabi: - tabK_G = merge(tabK_G, tab, 'NUME_ORDRE') - tabK_G.titr = 'G et K sur les differentes couronnes + moyennes' - tabK_G.fromfunction('GMOY', moyenne, ['G_%d' % (k + 1) for k in range(nbcour)]) - tabK_G.fromfunction('KMOY', moyenne, ['K_%d' % (k + 1) for k in range(nbcour)]) - - # 3.5. ----- Contribution à la table globale - tabres = merge(tabK_G, tb_Gpmax, 'NUME_ORDRE') - tabres['OCCURRENCE'] = [iocc + 1] * len(l_numord) - if info >= 2: - print tabres - - # 3.5.1. --- Table globale - if iocc == 0: - tabl_glob = tabres - else: - tabl_glob = merge(tabl_glob, tabres) - tabl_glob.titr = 'G, K sur les differentes couronnes, Gmoy, Kmoy et ' \ - 'Gpmax fonctions du temps' - - # 3.6. ----- traitement selon identification / prédiction - d_para = { - 'INTERPOL' : ['LIN', 'LIN'], - 'NOM_PARA' : 'INST', - 'PROL_DROITE' : 'CONSTANT', - 'PROL_GAUCHE' : 'CONSTANT', - } - # Gpmax fonction du temps - d_para.update({ 'NOM_RESU' : 'GPMAX' }) - fGp = t_fonction(tabres.INST.values(), tabres.GPMAX.values(), d_para) - - # 3.6.1. --- identification - if identification: - KJ_CRIT = l_crit[iocc] - # définition des fonctions pour faire les interpolations - d_para.update({ 'NOM_RESU' : 'DELTALMAX' }) - fdL = t_fonction(tabres.INST.values(), tabres.DELTALMAX.values(), d_para) - - d_para.update({ 'NOM_PARA' : 'KMOY', - 'NOM_RESU' : 'INST', }) - valkmoy = tabres.KMOY.values() - finv = t_fonction(valkmoy, tabres.INST.values(), d_para) - - if not (min(valkmoy) <= KJ_CRIT <= max(valkmoy)): - UTMESS('A', macro, 'Interpolation hors du domaine (prolongement ' \ - 'constant utilisé).') - # valeurs à mettre dans la table - ti = finv(KJ_CRIT) - Gpi = fGp(ti) - d_ident = { - 'KJ_CRIT' : KJ_CRIT, - 'INST' : ti, - 'GPMAX' : Gpi, - 'KGPMAX' : fKj(Gpi, **dict_constantes), - 'DELTALMAX' : fdL(ti), - } - lv_ident.append(d_ident) - - # 3.6.2. --- prédiction - else: - pass - - # 4. ----- Construction de la table résultat si demandée - # 4.1. --- identification - if identification: - tab_ident = Table(rows=lv_ident, - para=('KJ_CRIT', 'INST', 'GPMAX', 'KGPMAX', 'DELTALMAX'), - typ= ('R', 'R', 'R', 'R', 'R'), - titr='Identification aux valeurs de tenacités critiques') - dprod_result = tab_ident.dict_CREA_TABLE() - if info >= 2: - print tab_ident - - # 4.2. --- prédiction - else: - # définition de la fonction GPcrit = f(TEMP) - d_para.update({ 'NOM_PARA' : 'TEMP', - 'NOM_RESU' : 'GP_CRIT', }) - fGpc = t_fonction(mccalc['TEMP'], mccalc['GP_CRIT'], d_para) - - tab_pred = tabl_glob['NUME_ORDRE', 'INST', 'TEMP', 'DELTALMAX', 'GPMAX'] - tab_pred.fromfunction('GP_CRIT', fGpc, 'TEMP') - tab_pred.fromfunction('PREDICTION', crit, ('GP_CRIT', 'GPMAX')) - tab_pred.titr = 'Comparaison Gpmax à Gpcrit(T)' - dprod_result = tab_pred.dict_CREA_TABLE() - - # 9. ----- création de la table_sdaster résultat - dprod = tabl_glob.dict_CREA_TABLE() - result = CREA_TABLE(**dprod) - tabresult = CREA_TABLE(**dprod_result) - - - -# ----------------------------------------------------------------------------- -def CallRCVALE(TEMP, para, MATER): - """Fonction appelant RCVALE et retourne la valeur d'un paramètre. - """ - valres, flag_ok = MATER.RCVALE('ELAS', 'TEMP', TEMP, para) - assert list(flag_ok).count('OK') != 1, \ - 'Erreur lors de la récupération des valeurs du matériau.' - return valres - -# ----------------------------------------------------------------------------- -def fKj(G, YOUNG, NU, R): - """Calcul de Kj à partir de G (formule d'Irwin) - """ - return (G / R * YOUNG / (1.0 - NU**2))**0.5 - -# ----------------------------------------------------------------------------- -def fDL(ICOP, pascop): - """DeltaL = numéro copeau * pas d'entaille - """ - return ICOP * pascop - -# ----------------------------------------------------------------------------- -def fGp_Etot(TOTALE, ICOP, pascop, R, syme=False): - """Gp(Etotale, K), deltal pris dans le context global. - ICOP : numéro du copeau, - pascop : pas d'entaille. - syme : True s'il y a symétrie. - """ - fact_axis = 1. - if syme: - fact_axis = 2. - return fact_axis * TOTALE / (fDL(ICOP, pascop) * R) - -# ----------------------------------------------------------------------------- -def MaxRelatif(table, nom_para): - """Extrait le dernier maxi du champ `nom_para` de la table. - """ - l_val = getattr(table, nom_para).values() - l_val.reverse() - Vlast = l_val[0] - for val in l_val: - if val < Vlast: - break - Vlast = val - return getattr(table, nom_para) == Vlast - -# ----------------------------------------------------------------------------- -def crit(GP_CRIT, GPMAX): - """Retourne 1 quand GP_CRIT > GPMAX - """ - if GPMAX > GP_CRIT: - return 1 - else: - return 0 - -# ----------------------------------------------------------------------------- -def moyenne(*args): - """Fonction moyenne - """ - return sum(args)/len(args) - diff --git a/Aster/Cata/cataSTA8/Macro/post_k1_k2_k3_ops.py b/Aster/Cata/cataSTA8/Macro/post_k1_k2_k3_ops.py deleted file mode 100644 index a9797446..00000000 --- a/Aster/Cata/cataSTA8/Macro/post_k1_k2_k3_ops.py +++ /dev/null @@ -1,952 +0,0 @@ -#@ MODIF post_k1_k2_k3_ops Macro DATE 06/11/2006 AUTEUR GALENNE E.GALENNE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def 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 moy(t): - m = 0 - for value in t : - m += value - return (m/len(t)) - -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') - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - DETRUIRE = self.get_cmd('DETRUIRE') - DEFI_GROUP = self.get_cmd('DEFI_GROUP') - MACR_LIGN_COUPE = self.get_cmd('MACR_LIGN_COUPE') - -# ------------------------------------------------------------------ -# 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 \n') - LNOFO = map(string.rstrip,LNOFO) - Nbfond = len(LNOFO) - - if MODELISATION=='3D' : -# ----------Mots cles TOUT, NOEUD, SANS_NOEUD ------------- - Typ = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.FOND .TYPE ') - if (Typ[0]=='SEG2 ') or (Typ[0]=='SEG3 ' and TOUT=='OUI') : - pas = 1 - elif (Typ[0]=='SEG3 ') : - pas = 2 - else : - UTMESS('F', macro, 'TYPE DE MAILLES DU FOND DE FISSURE NON DEFINI') -#### - NO_SANS = [] - NO_AVEC = [] - if GROUP_NO!=None : - collgrno=aster.getcolljev(string.ljust(MAILLAGE.nom,8)+'.GROUPENO') - cnom = aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMNOE') - if type(GROUP_NO) not in EnumTypes : GROUP_NO = (GROUP_NO,) - for m in range(len(GROUP_NO)) : - ngrno=GROUP_NO[m].ljust(8).upper() - if ngrno not in collgrno.keys() : - UTMESS('F', macro, "LE GROUP_NO "+ngrno+" N EST PAS DANS LE MAILLAGE") - for i in range(len(collgrno[ngrno])) : NO_AVEC.append(cnom[collgrno[ngrno][i]-1]) - NO_AVEC= map(string.rstrip,NO_AVEC) - if NOEUD!=None : - if type(NOEUD) not in EnumTypes : NO_AVEC = (NOEUD,) - else : NO_AVEC = NOEUD - if SANS_GROUP_NO!=None : - collgrno=aster.getcolljev(string.ljust(MAILLAGE.nom,8)+'.GROUPENO') - cnom = aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMNOE') - if type(SANS_GROUP_NO) not in EnumTypes : SANS_GROUP_NO = (SANS_GROUP_NO,) - for m in range(len(SANS_GROUP_NO)) : - ngrno=SANS_GROUP_NO[m].ljust(8).upper() - if ngrno not in collgrno.keys() : - UTMESS('F', macro, "LE GROUP_NO "+ngrno+" N EST PAS DANS LE MAILLAGE") - for i in range(len(collgrno[ngrno])) : NO_SANS.append(cnom[collgrno[ngrno][i]-1]) - NO_SANS= map(string.rstrip,NO_SANS) - if SANS_NOEUD!=None : - if type(SANS_NOEUD) not in EnumTypes : NO_SANS = (SANS_NOEUD,) - else : NO_SANS = SANS_NOEUD -# Creation de la liste des noeuds du fond a traiter : Lnf1 - Lnf1 = [] - Nbf1 = 0 - if len(NO_AVEC)!=0 : - for i in range(len(NO_AVEC)) : - if NO_AVEC[i] in LNOFO : - Lnf1.append(NO_AVEC[i]) - Nbf1 = Nbf1 +1 - else : - UTMESS('F', macro, 'LE NOEUD %s N APPARTIENT PAS AU FOND DE FISSURE'%NO_AVEC[i]) - else : - for i in range(0,Nbfond,pas) : - if not (LNOFO[i] in NO_SANS) : - Lnf1.append(LNOFO[i]) - Nbf1 = Nbf1 +1 - else : - Lnf1 = LNOFO - Nbf1 = 1 - -##### Cas maillage libre########### -# creation des directions normales et macr_lign_coup - if TYPE_MAILLAGE =='LIBRE': - if not RESULTAT : UTMESS('F', macro, 'MOT CLE RESULTAT OBLIGATOIRE POUR TYPE_MAILLAGE = LIBRE') - Lnofon = Lnf1 - Nbnofo = Nbf1 - ListmaS = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.LEVRESUP .MAIL ') - if SYME_CHAR=='SANS': - ListmaI = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.LEVREINF .MAIL ') - __NCOFON=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees noeuds du fond', - NOEUD=LNOFO, - RESULTAT=RESULTAT, - NOM_CHAM='DEPL',NUME_ORDRE=1,NOM_CMP=('DX',), - OPERATION='EXTRACTION',),); - tcoorf=__NCOFON.EXTR_TABLE() - DETRUIRE(CONCEPT=_F(NOM=__NCOFON),INFO=1) - nbt = len(tcoorf['NOEUD'].values()['NOEUD']) - xs=array(tcoorf['COOR_X'].values()['COOR_X'][:nbt],Float) - ys=array(tcoorf['COOR_Y'].values()['COOR_Y'][:nbt],Float) - if ndim==2 : zs=Numeric.zeros(nbt,Float) - elif ndim==3 : zs=array(tcoorf['COOR_Z'].values()['COOR_Z'][:nbt],Float) - ns = tcoorf['NOEUD'].values()['NOEUD'][:nbt] - ns = map(string.rstrip,ns) - l_coorf = [[ns[i],xs[i],ys[i],zs[i]] for i in range(0,nbt)] - l_coorf = [(i[0],i[1:]) for i in l_coorf] - d_coorf = dict(l_coorf) -# Coordonnee d un pt quelconque des levres pr determination sens de propagation - cmail=aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMMAI') - for i in range(len(cmail)) : - if cmail[i] == ListmaS[0] : break - colcnx=aster.getcolljev(string.ljust(MAILLAGE.nom,8)+'.CONNEX') - cnom = aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMNOE') - NO_TMP = [] - for k in range(len(colcnx[i+1])) : NO_TMP.append(cnom[colcnx[i+1][k]-1]) - __NCOLEV=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees pt levre', - NOEUD = NO_TMP, - RESULTAT=RESULTAT, - NOM_CHAM='DEPL',NUME_ORDRE=1,NOM_CMP=('DX',), - OPERATION='EXTRACTION',),); - tcoorl=__NCOLEV.EXTR_TABLE() - DETRUIRE(CONCEPT=_F(NOM=__NCOLEV),INFO=1) - nbt = len(tcoorl['NOEUD'].values()['NOEUD']) - xl=moy(tcoorl['COOR_X'].values()['COOR_X'][:nbt]) - yl=moy(tcoorl['COOR_Y'].values()['COOR_Y'][:nbt]) - zl=moy(tcoorl['COOR_Z'].values()['COOR_Z'][:nbt]) - Plev = array([xl, yl, zl]) -# Calcul des normales a chaque noeud du fond - v1 = array(VECT_K1) - VN = [None]*Nbfond - absfon = [0,] - if MODELISATION=='3D' : - DTANOR = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.DTAN_ORIGINE') - Pfon2 = array([d_coorf[LNOFO[0]][0],d_coorf[LNOFO[0]][1],d_coorf[LNOFO[0]][2]]) - VLori = Pfon2 - Plev - if DTANOR != None : - VN[0] = array(DTANOR) - else : - Pfon3 = array([d_coorf[LNOFO[1]][0],d_coorf[LNOFO[1]][1],d_coorf[LNOFO[1]][2]]) - VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2)) - VN[0] = array(cross_product(VT,v1)) - for i in range(1,Nbfond-1): - Pfon1 = array([d_coorf[LNOFO[i-1]][0],d_coorf[LNOFO[i-1]][1],d_coorf[LNOFO[i-1]][2]]) - Pfon2 = array([d_coorf[LNOFO[i]][0],d_coorf[LNOFO[i]][1],d_coorf[LNOFO[i]][2]]) - Pfon3 = array([d_coorf[LNOFO[i+1]][0],d_coorf[LNOFO[i+1]][1],d_coorf[LNOFO[i+1]][2]]) - absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1] - absfon.append(absf) - VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2)) - VT = VT+(Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1)) - VN[i] = array(cross_product(VT,v1)) - VN[i] = VN[i]/sqrt(dot(transpose(VN[i]),VN[i])) - i = Nbfond-1 - Pfon1 = array([d_coorf[LNOFO[i-1]][0],d_coorf[LNOFO[i-1]][1],d_coorf[LNOFO[i-1]][2]]) - Pfon2 = array([d_coorf[LNOFO[i]][0],d_coorf[LNOFO[i]][1],d_coorf[LNOFO[i]][2]]) - VLextr = Pfon2 - Plev - absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1] - absfon.append(absf) - DTANEX = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.DTAN_EXTREMITE') - if DTANEX != None : - VN[i] = array(DTANEX) - else : - VT = (Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1)) - VN[i] = array(cross_product(VT,v1)) - dicoF = dict([(LNOFO[i],absfon[i]) for i in range(Nbfond)]) - dicVN = dict([(LNOFO[i],VN[i]) for i in range(Nbfond)]) -#Sens de la tangente - v = cross_product(VLori,VLextr) - sens = sign(dot(transpose(v),v1)) -#Cas 2D - if MODELISATION!='3D' : - DTANOR = False - DTANEX = False - VT = array([0.,0.,1.]) - VN = array(cross_product(v1,VT)) - dicVN = dict([(LNOFO[0],VN)]) - Pfon = array([d_coorf[LNOFO[0]][0],d_coorf[LNOFO[0]][1],d_coorf[LNOFO[0]][2]]) - VLori = Pfon - Plev - sens = sign(dot(transpose(VN),VLori)) -#Extraction dep sup/inf sur les normales - TlibS = [None]*Nbf1 - TlibI = [None]*Nbf1 - if NB_NOEUD_COUPE < 3 : - message = 'LE NOMBRE DE NOEUDS NB_NOEUD_COUPE DOIT ETRE SUPERIEUR A 3 : ON PREND LA VALEUR PAR DEFAUT' - UTMESS('A', macro, message) - NB_NOEUD_COUPE = 5 - MOD = aster.getvectjev(string.ljust(RESULTAT.nom,19)+'.MODL ') - if MOD==None : UTMESS('F', macro, 'PROBLEME A LA RECUPERATION DU MODELE DANS LA SD RESULTAT FOURNIE') - MOD = map(string.rstrip,MOD) - MODEL = self.jdc.sds_dict[MOD[0]] - for i in range(Nbf1): - Porig = array(d_coorf[Lnf1[i]] ) - if Lnf1[i]==LNOFO[0] and DTANOR : Pextr = Porig - ABSC_CURV_MAXI*dicVN[Lnf1[i]] - elif Lnf1[i]==LNOFO[Nbfond-1] and DTANEX : Pextr = Porig - ABSC_CURV_MAXI*dicVN[Lnf1[i]] - else : Pextr = Porig - ABSC_CURV_MAXI*dicVN[Lnf1[i]]*sens - TlibS[i] = MACR_LIGN_COUPE(RESULTAT=RESULTAT, - NOM_CHAM='DEPL',MODELE=MODEL, 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 : - message= 'PROBLEME A LA RECUPERATION DES NOEUDS DE LA LEVRE SUP : VERIFIER ' - message=message+'QUE LE MOT CLE LEVRE_SUP EST BIEN RENSEIGNE DANS DEFI_FOND_FISS\n' - UTMESS('F', macro, message) - NnormS = map(string.rstrip,NnormS) - if LNOFO[0]==LNOFO[-1] and MODELISATION=='3D' : Nbfond=Nbfond-1 # Cas fond de fissure ferme - NnormS = [[LNOFO[i],NnormS[i*20:(i+1)*20]] for i in range(0,Nbfond)] - NnormS = [(i[0],i[1][0:]) for i in NnormS] - dicoS = dict(NnormS) - if SYME_CHAR=='SANS': - NnormI = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.INFNORM .NOEU ') - if NnormI==None : - message= 'PROBLEME A LA RECUPERATION DES NOEUDS DE LA LEVRE INF : VERIFIER ' - message=message+'QUE LE MOT CLE LEVRE_INF EST BIEN RENSEIGNE DANS DEFI_FOND_FISS\n' - UTMESS('F', macro, message) - NnormI = map(string.rstrip,NnormI) - NnormI = [[LNOFO[i],NnormI[i*20:(i+1)*20]] for i in range(0,Nbfond)] - NnormI = [(i[0],i[1][0:]) for i in NnormI] - dicoI = dict(NnormI) - -# ---------- Dictionnaire des coordonnees ------------- - if RESULTAT : - Ltot = LNOFO - for i in range(Nbf1) : - for k in range(0,20) : - if dicoS[Lnf1[i]][k] !='': Ltot.append(dicoS[Lnf1[i]][k]) - if SYME_CHAR=='SANS': - for i in range(Nbf1) : - for k in range(0,20) : - if dicoI[Lnf1[i]][k] !='': Ltot.append(dicoI[Lnf1[i]][k]) - Ltot=dict([(i,0) for i in Ltot]).keys() - __NCOOR=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees noeuds des levres', - NOEUD=Ltot, - RESULTAT=RESULTAT, - NOM_CHAM='DEPL',NUME_ORDRE=1,NOM_CMP=('DX',), - OPERATION='EXTRACTION',),); - tcoor=__NCOOR.EXTR_TABLE() - DETRUIRE(CONCEPT=_F(NOM=__NCOOR),INFO=1) - else : - if SYME_CHAR=='SANS': - __NCOOR=CALC_TABLE(TABLE=TABL_DEPL_SUP, - ACTION=_F(OPERATION = 'COMB',NOM_PARA='NOEUD',TABLE=TABL_DEPL_INF,)) - tcoor=__NCOOR.EXTR_TABLE() - DETRUIRE(CONCEPT=_F(NOM=__NCOOR),INFO=1) - else : - tcoor=TABL_DEPL_SUP.EXTR_TABLE() - nbt = len(tcoor['NOEUD'].values()['NOEUD']) - xs=array(tcoor['COOR_X'].values()['COOR_X'][:nbt],Float) - ys=array(tcoor['COOR_Y'].values()['COOR_Y'][:nbt],Float) - if ndim==2 : zs=Numeric.zeros(nbt,Float) - elif ndim==3 : zs=array(tcoor['COOR_Z'].values()['COOR_Z'][:nbt],Float) - ns = tcoor['NOEUD'].values()['NOEUD'][:nbt] - ns = map(string.rstrip,ns) - l_coor = [[ns[i],xs[i],ys[i],zs[i]] for i in range(0,nbt)] - l_coor = [(i[0],i[1:]) for i in l_coor] - d_coor = dict(l_coor) - -# ---------- Abscisse curviligne du fond ------------- - absfon = [0,] - for i in range(Nbfond-1) : - Pfon1 = array([d_coor[LNOFO[i]][0],d_coor[LNOFO[i]][1],d_coor[LNOFO[i]][2]]) - Pfon2 = array([d_coor[LNOFO[i+1]][0],d_coor[LNOFO[i+1]][1],d_coor[LNOFO[i+1]][2]]) - absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i] - absfon.append(absf) - dicoF = dict([(LNOFO[i],absfon[i]) for i in range(Nbfond)]) - - -# ---Noeuds LEVRE_SUP et LEVRE_INF: ABSC_CURV_MAXI et PREC_VIS_A_VIS----- - - NBTRLS = 0 - NBTRLI = 0 - Lnosup = [None]*Nbf1 - Lnoinf = [None]*Nbf1 - Nbnofo = 0 - Lnofon = [] - precv = PREC_VIS_A_VIS - if ABSC_CURV_MAXI!=None : rmax = ABSC_CURV_MAXI - else : rmax = 100 - precn = precv * rmax - rmprec= rmax*(1.+precv/10.) - for i in range(0,Nbf1) : - Pfon = array([d_coor[Lnf1[i]][0],d_coor[Lnf1[i]][1],d_coor[Lnf1[i]][2]]) - Tmpsup = [] - Tmpinf = [] - itots = 0 - itoti = 0 - NBTRLS = 0 - NBTRLI = 0 - for k in range(0,20) : - if dicoS[Lnf1[i]][k] !='': - itots = itots +1 - Nsup = dicoS[Lnf1[i]][k] - Psup = array([d_coor[Nsup][0],d_coor[Nsup][1],d_coor[Nsup][2]]) - abss = sqrt(dot(transpose(Pfon-Psup),Pfon-Psup)) - if 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 - if Nbnofo == 0 : - message= 'CALCUL POSSIBLE POUR AUCUN NOEUD DU FOND :' - message=message+' VERIFIER LES DONNEES' - UTMESS('F',macro, message) - - 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 - l_inst_tab.sort() - if LIST_ORDRE !=None or NUME_ORDRE !=None : - l_ord_tab = tabsup['NUME_ORDRE'].values()['NUME_ORDRE'] - l_ord_tab.sort() - l_ord_tab=dict([(i,0) for i in l_ord_tab]).keys() - d_ord_tab= [[l_ord_tab[i],l_inst_tab[i]] for i in range(0,len(l_ord_tab))] - d_ord_tab= [(i[0],i[1]) for i in d_ord_tab] - d_ord_tab = dict(d_ord_tab) - if NUME_ORDRE !=None : - if type(NUME_ORDRE) not in EnumTypes : NUME_ORDRE=(NUME_ORDRE,) - l_ord=list(NUME_ORDRE) - elif LIST_ORDRE !=None : - l_ord= aster.getvectjev(string.ljust(LIST_ORDRE.nom,19)+'.VALE') - l_inst = [] - for ord in l_ord : - if ord in l_ord_tab : l_inst.append(d_ord_tab[ord]) - else : - message ='LE NUMERO D ORDRE %i N A PAS ETE ETE TROUVE DANS LA TABLE\n'%ord - UTMESS('F', macro, message) - 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 and MODELISATION=='3D': - mcfact.append(_F(PARA='NOEUD_FOND',LISTE_K=[Lnofon[ino],]*3)) - mcfact.append(_F(PARA='ABSC_CURV',LISTE_R=[dicoF[Lnofon[ino]]]*3)) - mcfact.append(_F(PARA='METHODE',LISTE_I=(1,2,3))) - mcfact.append(_F(PARA='K1_MAX' ,LISTE_R=kg[0].tolist() )) - mcfact.append(_F(PARA='K1_MIN' ,LISTE_R=kg[1].tolist() )) - mcfact.append(_F(PARA='K2_MAX' ,LISTE_R=kg[2].tolist() )) - mcfact.append(_F(PARA='K2_MIN' ,LISTE_R=kg[3].tolist() )) - if ndim==3 : - mcfact.append(_F(PARA='K3_MAX' ,LISTE_R=kg[4].tolist() )) - mcfact.append(_F(PARA='K3_MIN' ,LISTE_R=kg[5].tolist() )) - mcfact.append(_F(PARA='G_MAX' ,LISTE_R=kg[6].tolist() )) - mcfact.append(_F(PARA='G_MIN' ,LISTE_R=kg[7].tolist() )) - if (ino==0 and iord==0) and inst==None : - tabout=CREA_TABLE(LISTE=mcfact,TITRE = titre) - elif iord==0 and ino==0 and inst!=None : - mcfact=[_F(PARA='INST' ,LISTE_R=[inst,]*3 )]+mcfact - tabout=CREA_TABLE(LISTE=mcfact,TITRE = titre) - else : - if inst!=None : mcfact=[_F(PARA='INST' ,LISTE_R=[inst,]*3 )]+mcfact - __tabi=CREA_TABLE(LISTE=mcfact,) - npara = ['K1_MAX','METHODE'] - if inst!=None : npara.append('INST') - if FOND_FISS and MODELISATION=='3D' : npara.append('NOEUD_FOND') - tabout=CALC_TABLE(reuse=tabout,TABLE=tabout,TITRE = titre, - ACTION=_F(OPERATION = 'COMB',NOM_PARA=npara,TABLE=__tabi,)) - -# Tri pour conserver le meme ordre que operateur initial en fortran - if len(l_inst)!=1 and FOND_FISS and MODELISATION=='3D': - 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/post_k_trans_ops.py b/Aster/Cata/cataSTA8/Macro/post_k_trans_ops.py deleted file mode 100644 index 6295395b..00000000 --- a/Aster/Cata/cataSTA8/Macro/post_k_trans_ops.py +++ /dev/null @@ -1,245 +0,0 @@ -#@ MODIF post_k_trans_ops Macro DATE 31/10/2006 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def post_k_trans_ops(self,RESU_TRANS,K_MODAL,TOUT_ORDRE, NUME_ORDRE, LIST_ORDRE, - INST, LIST_INST,INFO,**args): - """ - Ecriture de la macro post_k_trans - """ - import aster - import string - from Accas import _F - from Utilitai.Utmess import UTMESS - from types import ListType, TupleType - from Utilitai.Table import Table, merge - EnumTypes = (ListType, TupleType) - - macro = 'POST_K_TRANS' - ier=0 -#------------------------------------------------------------------ - # On importe les definitions des commandes a utiliser dans la macro - CALC_G =self.get_cmd('CALC_G' ) - IMPR_TABLE =self.get_cmd('IMPR_TABLE' ) - CREA_TABLE =self.get_cmd('CREA_TABLE' ) - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Le concept sortant (de type table_sdaster ou dérivé) est tab - self.DeclareOut('tabout', self.sd) - -#------------------------------------------------------------------ - TABK = K_MODAL['TABL_K_MODA'] - F2D = K_MODAL['FOND_FISS'] - F3D = K_MODAL['FISSURE'] -# -# Calcul du tableau des K modaux -# - if TABK == None : - montit = 'Calcul des K modaux' - resumod = K_MODAL['RESU_MODA'] - thet = K_MODAL['THETA'] - - motscles={} - motscles2={} - motscles['THETA'] = [] - mcthet = {} - if F2D != None : mcthet['FOND_FISS'] = F2D - if thet != None : mcthet['THETA'] = thet - if F3D != None : mcthet['FISSURE'] = F3D - if K_MODAL['DIRECTION']!=None : mcthet['DIRECTION'] = K_MODAL['DIRECTION'] - if K_MODAL['DIRE_THETA']!=None: mcthet['DIRE_THETA'] = K_MODAL['DIRE_THETA'] - if K_MODAL['R_SUP']!=None : mcthet['R_SUP'] = K_MODAL['R_SUP'] - if K_MODAL['R_SUP_FO']!=None : mcthet['R_SUP_FO'] = K_MODAL['R_SUP_FO'] - if K_MODAL['R_INF']!=None : mcthet['R_INF'] = K_MODAL['R_INF'] - if K_MODAL['R_INF_FO']!=None : mcthet['R_INF_FO'] = K_MODAL['R_INF_FO'] - if K_MODAL['MODULE']!=None : mcthet['MODULE'] = K_MODAL['MODULE'] - if K_MODAL['MODULE']==None and F2D : mcthet['MODULE'] = 1 - if K_MODAL['MODULE_FO']!=None : mcthet['MODULE_FO'] = K_MODAL['MODULE_FO'] - - if thet == None and F3D : - motscles2['LISSAGE'] = [] - if K_MODAL['LISSAGE_G'] == None : K_MODAL['LISSAGE_G']='LEGENDRE' - if K_MODAL['LISSAGE_THETA'] == None : K_MODAL['LISSAGE_THETA']='LEGENDRE' - if K_MODAL['DEGRE'] : K_MODAL['DEGRE'] = 5 - motscles2['LISSAGE'].append(_F(LISSAGE_G =K_MODAL['LISSAGE_G'], - LISSAGE_THETA =K_MODAL['LISSAGE_G'], - DEGRE = K_MODAL['DEGRE'] )) - - __kgtheta = CALC_G( RESULTAT = resumod, - OPTION = 'K_G_MODA', - TOUT_MODE = 'OUI', - INFO = INFO, - TITRE = montit, - THETA=mcthet, - **motscles2) - - -# -# Recuperation du tableau des K modaux -# - else : - __kgtheta=TABK - -#----------------------------------------- -# -# Verification de cohérence sur le nombre de modes -# -# RESULTAT TRANSITOIRE - nomresu=RESU_TRANS.nom - coef=aster.getvectjev(nomresu.ljust(19)+'.DEPL') - nmodtr=aster.getvectjev(nomresu.ljust(19)+'.DESC')[1] -# BASE MODALE - if F2D : - n_mode = len((__kgtheta.EXTR_TABLE())['K1']) - nbno = 1 - if F3D : - n_mode = max((__kgtheta.EXTR_TABLE())['NUME_MODE'].values()['NUME_MODE']) - nbno = max((__kgtheta.EXTR_TABLE())['NUM_PT'].values()['NUM_PT']) - labsc = (__kgtheta.EXTR_TABLE())['ABS_CURV'].values()['ABS_CURV'][0:nbno] - - if nmodtr != n_mode : - n_mode = min(nmodtr,n_mode) - message = 'NOMBRE DE MODES DIFFERENT ENTRE LA BASE MODALE' - message = message +'ET %s : ON PREND LE MINIMUM DES DEUX (%i)\n'%(nomresu,n_mode) - UTMESS('A', macro, message) - -# -# Traitement des mots clés ORDRE/INST/LIST_INST et LIST_ORDRE -# - l0_inst = aster.getvectjev(nomresu.ljust(19)+'.INST') - l0_ord = aster.getvectjev(nomresu.ljust(19)+'.ORDR') - nbtrans = len(l0_ord) - li = [[l0_ord[i],l0_inst[i]] for i in range(nbtrans)] - ln = [[l0_ord[i],i] for i in range(nbtrans)] - lo = [[l0_inst[i],l0_ord[i]] for i in range(nbtrans)] - li = [(i[0],i[1:]) for i in li] - ln = [(i[0],i[1:]) for i in ln] - lo = [(i[0],i[1:]) for i in lo] - d_ord = dict(lo) - d_ins = dict(li) - d_num = dict(ln) - - - l_ord =[] - l_inst =[] - if LIST_ORDRE or NUME_ORDRE : - if NUME_ORDRE : - if type(NUME_ORDRE) not in EnumTypes : NUME_ORDRE=(NUME_ORDRE,) - ltmp = list(NUME_ORDRE) - elif LIST_ORDRE : - ltmp = aster.getvectjev(string.ljust(LIST_ORDRE.nom,19)+'.VALE') - for ord in ltmp : - if ord in l0_ord : - l_ord.append(ord) - l_inst.append(d_ins[ord][0]) - else : - message = 'LE NUMERO D ORDRE %i N APPARTIENT PAS AU RESULTAT %s'%(ord,nomresu) - UTMESS('A', macro, message) - elif LIST_INST or INST : - CRITERE = args['CRITERE'] - PRECISION = args['PRECISION'] - if INST : - if type(INST) not in EnumTypes : INST=(INST,) - ltmp = list(INST) - elif LIST_INST : - ltmp = aster.getvectjev(string.ljust(LIST_INST.nom,19)+'.VALE') - for ins in ltmp : - if CRITERE=='RELATIF' and ins!=0.: match=[x for x in l0_inst if abs((ins-x)/ins)=2 : - message = 'PLUSIEURS INSTANTS TROUVES DANS LA TABLE POUR L INSTANT %f\n'%ins - UTMESS('A', macro, message) - else : - l_inst.append(match[0]) - l_ord.append(d_ord[match[0]][0]) - else : - l_ord = l0_ord - l_inst = l0_inst - nbarch = len(l_ord) - if nbarch ==0 : UTMESS('F', macro, 'AUCUN INSTANT OU NUMERO D ORDRE TROUVE') - - -# -# Calcul des K(t) -# - - K1mod = [None]*n_mode*nbno - K2mod = [None]*n_mode*nbno - K1t = [None]*nbarch*nbno - K2t = [None]*nbarch*nbno - if F3D : - K3mod = [None]*n_mode*nbno - K3t = [None]*nbarch*nbno - k1 = 'K1_LOCAL' - k2 = 'K2_LOCAL' - k3 = 'K3_LOCAL' - else : - k1 = 'K1' - k2 = 'K2' - - - for x in range(0,nbno) : - for k in range(0,n_mode) : - K1mod[k*nbno + x] = __kgtheta[k1,k*nbno + x+1] - K2mod[k*nbno + x] = __kgtheta[k2,k*nbno + x+1] - if F3D : K3mod[k*nbno + x] = __kgtheta[k3,k*nbno + x+1] - - for num in range(0,nbarch) : - K1t[num*nbno + x] = 0.0 - K2t[num*nbno + x] = 0.0 - if F3D : K3t[num*nbno + x] = 0.0 - for k in range(0,n_mode) : - num_ord = d_num[l_ord[num]][0] - alpha = coef[n_mode*num_ord+k] - K1t[num*nbno + x] = K1t[num*nbno + x] + alpha*K1mod[k*nbno + x] - K2t[num*nbno + x] = K2t[num*nbno + x] + alpha*K2mod[k*nbno + x] - if F3D : K3t[num*nbno + x] = K3t[num*nbno + x] + alpha*K3mod[k*nbno + x] - - v = aster.__version__ - titre = 'ASTER %s - CONCEPT CALCULE PAR POST_K_TRANS LE &DATE A &HEURE \n'%v - if F2D : - tabout = CREA_TABLE(LISTE = (_F(LISTE_I =l_ord, PARA = 'NUME_ORDRE'), - _F(LISTE_R =l_inst, PARA = 'INST'), - _F(LISTE_R =K1t, PARA = k1), - _F(LISTE_R =K2t, PARA = k2),), - TITRE = titre, ); - if F3D : - lo = [] - li = [] - for i in range(nbarch) : - for j in range(nbno) : - lo.append(l_ord[i]) - li.append(l_inst[i]) - tabout = CREA_TABLE(LISTE = (_F(LISTE_I =lo, PARA = 'NUME_ORDRE'), - _F(LISTE_R =li, PARA = 'INST'), - _F(LISTE_I =range(nbno)*nbarch, PARA ='NUM_PT' ), - _F(LISTE_R =labsc*nbarch, PARA = 'ABS_CURV'), - _F(LISTE_R =K1t, PARA = k1), - _F(LISTE_R =K2t, PARA = k2), - _F(LISTE_R =K3t, PARA = k3),), - TITRE = titre, - ); - -#------------------------------------------------------------------ - return ier diff --git a/Aster/Cata/cataSTA8/Macro/reca_algo.py b/Aster/Cata/cataSTA8/Macro/reca_algo.py deleted file mode 100644 index 4c22e2bf..00000000 --- a/Aster/Cata/cataSTA8/Macro/reca_algo.py +++ /dev/null @@ -1,305 +0,0 @@ -#@ MODIF reca_algo Macro DATE 14/11/2006 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# RESPONSABLE ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import Numeric, MLab -from Numeric import take, size -import copy, os -import LinearAlgebra - -try: - import aster - from Cata.cata import INFO_EXEC_ASTER - from Cata.cata import DETRUIRE - from Accas import _F -except: pass - -try: - from Utilitai.Utmess import UTMESS -except ImportError: - def UTMESS(code,sprg,texte): - fmt='\n <%s> <%s> %s\n\n' - print fmt % (code,sprg,texte) - if code=='F': sys.exit() - - - -def calcul_gradient(A,erreur): - grad = Numeric.dot(Numeric.transpose(A),erreur) - return grad - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ - -class Dimension: - """ - Classe gérant l'adimensionnement et le dimensionnement - """ - - def __init__(self,val_initiales,para): - """ - Le constructeur calcul la matrice D et son inverse - """ - self.val_init = val_initiales - dim =len(self.val_init) - self.D = Numeric.zeros((dim,dim),Numeric.Float) - for i in range(dim): - self.D[i][i] = self.val_init[i] - self.inv_D=LinearAlgebra.inverse(self.D) - - -# ------------------------------------------------------------------------------ - - def adim_sensi(self,A): - for i in range(A.shape[0]): - for j in range(A.shape[1]): - A[i,j] = A[i,j] * self.val_init[j] - return A - - -# ------------------------------------------------------------------------------ - - def redim_sensi(self,A): - for i in range(A.shape[0]): - for j in range(A.shape[1]): - A[i,j] = A[i,j] / self.val_init[j] - return A - - -# ------------------------------------------------------------------------------ - - def adim(self,tab): - tab_adim = Numeric.dot(self.inv_D,copy.copy(tab)) - return tab_adim - - -# ------------------------------------------------------------------------------ - - def redim(self,tab_adim): - tab = Numeric.dot(self.D,tab_adim) - return tab - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ - - - - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ - -def cond(matrix): - e1=LinearAlgebra.eigenvalues(matrix) - e=map(abs,e1) - size=len(e) - e=Numeric.sort(e) - try: - condi=e[size-1]/e[0] - except ZeroDivisionError: - condi=0.0 - return condi,e[size-1],e[0] - - - - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ - -def norm(matrix): - e=LinearAlgebra.Heigenvalues(matrix) - size=len(e) - e=Numeric.sort(e) - norm=e[size-1] - return norm - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ - -def lambda_init(matrix): - """ - Routine qui calcule la valeur initial du parametre de regularisation l. - """ - condi,emax,emin=cond(matrix) - id=Numeric.identity(matrix.shape[0]) - if (condi==0.0): - l=1.e-3*norm(matrix) - elif (condi<=10000): - l=1.e-16*norm(matrix) - elif (condi>10000): - l=abs(10000.*emin-emax)/10001. - return l - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ - -def Levenberg_bornes(val,Dim,val_init,borne_inf,borne_sup,A,erreur,l,ul_out): - """ - On resoud le système par contraintes actives: - Q.dval + s + d =0 - soumis à : - borne_inf < dval < borne_sup - 0 < s - s.(borne_inf - dval)=0 - s.(borne_sup - dval)=0 - """ - dim = len(val) - id = Numeric.identity(dim) - # Matrice du système - Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id - # Second membre du système - d=Numeric.matrixmultiply(Numeric.transpose(A),erreur) - # Ens. de liaisons actives - Act=Numeric.array([]) - k=0 - done=0 - # Increment des parametres - dval=Numeric.zeros(dim,Numeric.Float) - while done <1 : - k=k+1 - I=Numeric.ones(dim) - for i in Act: - I[i]=0 - I=Numeric.nonzero(Numeric.greater(I,0)) - s=Numeric.zeros(dim,Numeric.Float) - for i in Act: - # test sur les bornes (on stocke si on est en butée haute ou basse) - if (val[i]+dval[i]>=borne_sup[i]): - dval[i]=borne_sup[i]-val[i] - s[i]=1. - if (val[i]+dval[i]<=borne_inf[i]): - dval[i]=borne_inf[i]-val[i] - s[i]=-1. - if (len(I)!=0): - # xi=-Q(I)-1.(d(I)+Q(I,Act).dval(Act)) - t_QI = take(Q, I) - t_tQI_Act = take(t_QI, Act, 1) - t_adim_Act = take(Dim.adim(dval), Act) - if size(t_tQI_Act) > 0 and size(t_adim_Act) > 0: - smemb = take(d, I) + Numeric.dot(t_tQI_Act, t_adim_Act) - else: - smemb = take(d, I) - xi=-LinearAlgebra.solve_linear_equations(take(t_QI, I, 1), smemb) - for i in Numeric.arange(len(I)): - dval[I[i]]=xi[i]*val_init[I[i]] - if (len(Act)!=0): - # s(Av)=-d(Act)-Q(Act,:).dval - sa=-take(d,Act)-Numeric.dot(take(Q,Act),Dim.adim(dval)) - for i in range(len(Act)): - if (s[Act[i]]==-1.): - s[Act[i]]=-sa[i] - else: - s[Act[i]]=sa[i] - # Nouvel ens. de liaisons actives - Act=Numeric.concatenate((Numeric.nonzero(Numeric.greater(dval,borne_sup-val)),Numeric.nonzero(Numeric.less(dval,borne_inf-val)),Numeric.nonzero(Numeric.greater(s,0.)))) - done=(max(val+dval-borne_sup)<=0)&(min(val+dval-borne_inf)>=0)&(min(s)>=0.0) - # Pour éviter le cyclage - if (k>50): - try: - l=l*2 - Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id - k=0 - except: - res=open(os.getcwd()+'/fort.'+str(ul_out),'a') - res.write('\n\nQ = \n'+Numeric.array2string(Q-l*id,array_output=1,separator=',')) - res.write('\n\nd = '+Numeric.array2string(d,array_output=1,separator=',')) - res.write('\n\nval = '+Numeric.array2string(val,array_output=1,separator=',')) - res.write('\n\nval_ini= '+Numeric.array2string(val_init,array_output=1,separator=',')) - res.write('\n\nborne_inf= '+Numeric.array2string(borne_inf,array_output=1,separator=',')) - res.write('\n\nborne_sup= '+Numeric.array2string(borne_sup,array_output=1,separator=',')) - UTMESS('F','MACR_RECAL',"Erreur dans l'algorithme de bornes de MACR_RECAL") - return - newval=copy.copy(val+dval) - return newval,s,l,Act - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ - -def actualise_lambda(l,val,new_val,A,erreur,new_J,old_J): - dim = len(val) - id = Numeric.identity(dim) - # Matrice du système - Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id - # Second membre du système - d=Numeric.matrixmultiply(Numeric.transpose(A),erreur) - old_Q=old_J - new_Q=old_J+0.5*Numeric.dot(Numeric.transpose(new_val-val),Numeric.dot(Q,new_val-val))+Numeric.dot(Numeric.transpose(new_val-val),d) - # Ratio de la décroissance réelle et de l'approx. quad. - try: - R=(old_J-new_J)/(old_Q-new_Q) - if (R<0.25): - l = l*10. - elif (R>0.75): - l = l/15. - except ZeroDivisionError: - if (old_J>new_J): - l = l*10. - else: - l = l/10. - return l - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ - -def test_convergence(gradient_init,erreur,A,s): - """ - Renvoie le residu - """ - gradient = calcul_gradient(A,erreur)+s - try: - epsilon = Numeric.dot(gradient,gradient)/Numeric.dot(gradient_init,gradient_init) - except: - UTMESS('F', "MACR_RECAL", "Erreur dans le test de convergence de MACR_RECAL") - return - epsilon = epsilon**0.5 - return epsilon - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ - -def calcul_etat_final(para,A,iter,max_iter,prec,residu,Messg): - """ - Fonction appelée quand la convergence est atteinte - on calcule le Hessien et les valeurs propres et vecteurs - propre associés au Hessien - A = sensibilite - At*A = hessien - """ - - if ((iter < max_iter) or (residu < prec)): - Hessien = Numeric.matrixmultiply(Numeric.transpose(A),A) - - # Desactive temporairement les FPE qui pourraient etre generees (a tord!) par blas - aster.matfpe(-1) - valeurs_propres,vecteurs_propres = LinearAlgebra.eigenvectors(Hessien) -# valeurs_propres,vecteurs_propres = MLab.eig(Hessien) - sensible=Numeric.nonzero(Numeric.greater(abs(valeurs_propres/max(abs(valeurs_propres))),1.E-1)) - insensible=Numeric.nonzero(Numeric.less(abs(valeurs_propres/max(abs(valeurs_propres))),1.E-2)) - # Reactive les FPE - aster.matfpe(1) - - Messg.affiche_calcul_etat_final(para,Hessien,valeurs_propres,vecteurs_propres,sensible,insensible) diff --git a/Aster/Cata/cataSTA8/Macro/reca_calcul_aster.py b/Aster/Cata/cataSTA8/Macro/reca_calcul_aster.py deleted file mode 100644 index ed78aebd..00000000 --- a/Aster/Cata/cataSTA8/Macro/reca_calcul_aster.py +++ /dev/null @@ -1,909 +0,0 @@ -#@ MODIF reca_calcul_aster Macro DATE 14/11/2006 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# RESPONSABLE ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# mode_include = False -# __follow_output = False -# table_sensibilite = False -debug = False - -__commandes_aster__ = False - - -import copy, Numeric, types, os, sys, pprint, math -from glob import glob - -try: - import aster -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) - if code=='F': sys.exit() - -from Utilitai.System import ExecCommand - -# Nom de la routine -nompro = 'MACR_RECAL' - - -# ------------------------------------------------------------------------------ - -class PARAMETRES: - - def __init__(self, METHODE, UNITE_RESU, INFO=1, fich_output='./REPE_OUT/output_esclave.txt', mode_include=False, follow_output=False, table_sensibilite=False, memjeveux_esclave=None, PARA_DIFF_FINI=1.E-3, ITER_MAXI=10, ITER_FONC_MAXI=100): - - self.METHODE = METHODE - self.UNITE_RESU = UNITE_RESU - self.INFO = INFO - self.fich_output = fich_output - self.PARA_DIFF_FINI = PARA_DIFF_FINI - self.ITER_FONC_MAXI = ITER_FONC_MAXI - self.ITER_MAXI = ITER_MAXI, - - try: - import Cata, aster - from Cata.cata import INCLUDE, DETRUIRE, FIN, DEFI_FICHIER, IMPR_TABLE, LIRE_TABLE, INFO_EXEC_ASTER, EXTR_TABLE, CREA_TABLE - from Accas import _F - except: - mode_include = False - - if not mode_include: - try: - from Macro.lire_table_ops import lecture_table - mode_aster = True - except: - try: - sys.path.append( './Python/Macro' ) - from Macro.lire_table_ops import lecture_table - mode_aster = False - except: - UTMESS('F','MACR_RECAL',"Probleme : impossible d'importer le module de lecture des tables!") - self.mode_include = mode_include - self.follow_output = follow_output - self.mode_aster = mode_aster - self.memjeveux_esclave = memjeveux_esclave - self.table_sensibilite = table_sensibilite - - self.vector_output = False - self.error_output = False - - -# ------------------------------------------------------------------------------ - -class CALCUL_ASTER: - - def __init__(self, PARAMETRES, UL, para, reponses, LIST_SENSI=[], LIST_DERIV=[]): - - self.UL = UL - self.para = para - self.reponses = reponses - self.LIST_SENSI = LIST_SENSI - self.LIST_DERIV = LIST_DERIV - - self.METHODE = PARAMETRES.METHODE - self.UNITE_RESU = PARAMETRES.UNITE_RESU - self.INFO = PARAMETRES.INFO - self.fich_output = PARAMETRES.fich_output - self.mode_include = PARAMETRES.mode_include - self.follow_output = PARAMETRES.follow_output - self.table_sensibilite = PARAMETRES.table_sensibilite - self.mode_aster = PARAMETRES.mode_aster - self.memjeveux_esclave = PARAMETRES.memjeveux_esclave - self.PARA_DIFF_FINI = PARAMETRES.PARA_DIFF_FINI - self.ITER_FONC_MAXI = PARAMETRES.ITER_FONC_MAXI - self.vector_output = PARAMETRES.vector_output - self.error_output = PARAMETRES.vector_output - - self.UNITE_GRAPHIQUE = None - self.new_export = 'tmp_export' - self.nom_fichier_mess_fils = None - self.nom_fichier_resu_fils = None - - self.fichier_esclave = None - - self.evaluation_fonction = 0 - - self.L_J_init = None - self.val = None - self.L = None - self.L_deriv_sensible = None - - - - # ------------------------------------------------------------------------------ - - def Lancement_Commande(self, cmd): - - if self.INFO>=1: UTMESS('I','MACR_RECAL',"Lancement de la commande : " + cmd) - - fich_output = self.fich_output - follow_output = self.follow_output - - # Lancement d'Aster avec le deuxieme export - iret, txt_output = ExecCommand(cmd, follow_output=self.follow_output,verbose=False) - - if fich_output: - # Recuperation du .mess 'fils' - f=open(fich_output, 'w') - f.write( txt_output ) - f.close() - - if self.INFO>=1: UTMESS('I','MACR_RECAL',"Fin du lancement de la commande : " + cmd) - - diag = self.Recuperation_Diagnostic(txt_output) - - return - - - # ------------------------------------------------------------------------------ - - def Recuperation_Diagnostic(self, output): - - txt = '--- DIAGNOSTIC JOB :' - diag = None - for ligne in output.splitlines(): - if ligne.find(txt) > -1: - diag = ligne.split(txt)[-1].strip() - break - - if self.INFO>=1: UTMESS('I','MACR_RECAL',"Diagnostic du calcul esclave : " + diag) - - if diag in ['OK', 'NOOK_TEST_RESU', '_ALARM', '_COPY_ERROR']: return True - else: - UTMESS('F','MACR_RECAL',"Le fichier esclave ne s'est pas terminé correctement.") - - - # ------------------------------------------------------------------------------ - - def Remplace_fichier_esclave(self, val_in): pass - - - # ------------------------------------------------------------------------------ - - def calcul_Aster(self, val, INFO=0): - - self.val = val - UL = self.UL - para = self.para - reponses = self.reponses - UNITE_RESU = self.UNITE_RESU - LIST_SENSI = self.LIST_SENSI - LIST_DERIV = self.LIST_DERIV - - mode_include = self.mode_include - follow_output = self.follow_output - table_sensibilite = self.table_sensibilite - - if self.evaluation_fonction > self.ITER_FONC_MAXI: - UTMESS('F', nompro, "Le nombre d'evaluation de la fonctionnelle depasse le critere ITER_FONC_MAXI.") - self.evaluation_fonction += 1 - - - if not mode_include: - - # Creation du repertoire temporaire pour l'execution de l'esclave - tmp_macr_recal = self.Creation_Temporaire_Esclave() - - # Creation du fichier .export de l'esclave - self.Creation_Fichier_Export_Esclave(tmp_macr_recal) - - # Fichier esclave a modifier (si methode EXTERNE alors on prend directement le fichier esclave, sinon c'est le fort.UL dans le repertoire d'execution - try: - if self.METHODE=='EXTERNE': - fic = open(self.fichier_esclave,'r') - else: - fic = open('fort.'+str(UL),'r') - - # On stocke le contenu de fort.UL dans la variable fichier qui est une string - fichier=fic.read() - # On stocke le contenu initial de fort.UL dans la variable fichiersauv - fichiersauv=copy.copy(fichier) - fic.close() - except: - UTMESS('F', nompro, "Impossible de relire le fichier esclave : \n " + str(self.fichier_esclave)) - - # chemin vers as_run - if os.environ.has_key('ASTER_ROOT'): - as_run = os.path.join(os.environ['ASTER_ROOT'], 'ASTK', 'ASTK_SERV', 'bin', 'as_run') - elif os.path.isfile(aster.repout() + os.sep + 'as_run'): - as_run = aster.repout() + os.sep + 'as_run' - else: - as_run = 'as_run' - if INFO>=1: UTMESS('A', nompro, "Variable d'environnement ASTER_ROOT absente, " \ - "on essaiera avec 'as_run' dans le $PATH.") - - if __commandes_aster__: - try: - from Cata.cata import INCLUDE, DETRUIRE, FIN, DEFI_FICHIER, IMPR_TABLE, LIRE_TABLE, INFO_EXEC_ASTER, EXTR_TABLE, CREA_TABLE - except: - message = "Erreur" - UTMESS('F', nompro, message) - - # Utilisation du module Python de LIRE_TABLE - if self.mode_aster: - from Macro.lire_table_ops import lecture_table - else: - try: - sys.path.append( './Python/Macro' ) - from lire_table_ops import lecture_table - except: - UTMESS('F','MACR_RECAL',"Probleme : impossible d'importer le module de lecture des tables!") - - txt = [] - for i in para: - txt.append( "\t\t\t%s : %s" % (i, val[para.index(i)]) ) - if INFO>=1: UTMESS('I','MACR_RECAL',"Calcul de F avec les parametres:\n%s" % '\n'.join(txt)) - - - # MARCHE PAS !! -# # Quelques verifications/modifications sur le fichier esclave, pour blindage -# fichiernew=[] -# for ligne in fichier.split('\n'): -# # DEBUT et FIN (on retire les espaces entre le mot-clé et la premiere parenthese) -# for (txt1, txt2) in [('DEBUT','('), ('FIN','(')]: -# if ligne.find( txt1 )!=-1 and ligne.find( txt2 )!=-1: -# index_deb1 = ligne.index(txt1) -# ligne1 = ligne[ index_deb1+len(txt1):] -# if ligne.find( txt1 )!=-1: -# -# -# for (txt1, txt2) in [('DEBUT','('), ('FIN','(')]: -# if ligne.find( txt1 )!=-1 and ligne.find( txt2 )!=-1: -# index_deb1 = ligne.index(txt1) -# index_fin1 = index_deb1 + len(txt1) -# index_deb2 = ligne.index(txt2) -# index_fin2 = index_deb1 + len(txt2) -# ligne = ligne[:index_fin1]+ligne[index_deb2:] -# # on retire les parametes en commentaires -# for txt in para: -# if ligne.find(txt)!=-1: -# if ligne.replace(' ', '')[0] == '#': ligne = '' -# fichiernew.append(ligne) -# fichier = '\n'.join(fichiernew) - - #Fichier_Resu est une liste ou l'on va stocker le fichier modifié - #idée générale :on délimite des 'blocs' dans fichier - #on modifie ou non ces blocs suivant les besoins - #on ajoute ces blocs dans la liste Fichier_Resu - Fichier_Resu=[] - - # Dans le cas du mode INCLUDE on enleve le mot-clé DEBUT - if mode_include: - try: - #cherche l'indice de DEBUT() - index_deb=fichier.index('DEBUT(') - while( fichier[index_deb]!='\n'): - index_deb=index_deb+1 - #on restreint fichier en enlevant 'DEBUT();' - fichier = fichier[index_deb+1:] - except: - #on va dans l'except si on a modifié le fichier au moins une fois - pass - -# print 60*'o' -# print fichier -# print 60*'o' - - # On enleve le mot-clé FIN() - try: - #cherche l'indice de FIN() - index_fin = fichier.index('FIN(') - #on restreint fichier en enlevant 'FIN();' - fichier = fichier[:index_fin] - except : pass - -# print 60*'o' -# print fichier -# print 60*'o' - - #-------------------------------------------------------------------------------- - #on cherche à délimiter le bloc des parametres dans le fichier - #Tout d'abord on cherche les indices d'apparition des paras dans le fichier - #en effet l'utilisateur n'est pas obligé de rentrer les paras dans optimise - #avec le meme ordre que son fichier de commande - index_para = Numeric.zeros(len(para)) - for i in range(len(para)): - index_para[i] = fichier.index(para[i]) - - #On range les indices par ordre croissant afin de déterminer - #les indice_max et indice_min - index_para = Numeric.sort(index_para) - index_first_para = index_para[0] - index_last_para = index_para[len(index_para)-1] - - - #on va délimiter les blocs intermédiaires entre chaque para "utiles" à l'optimsation - bloc_inter ='\n' - for i in range(len(para)-1): - j = index_para[i] - k = index_para[i+1] - while(fichier[j]!= '\n'): - j=j+1 - bloc_inter=bloc_inter + fichier[j:k] + '\n' - - #on veut se placer sur le premier retour chariot que l'on trouve sur la ligne du dernier para - i = index_last_para - while(fichier[i] != '\n'): - i = i + 1 - index_last_para = i - #on délimite les blocs suivants: - pre_bloc = fichier[:index_first_para] #fichier avant premier parametre - post_bloc = fichier[ index_last_para+ 1:] #fichier après dernier parametre - - #on ajoute dans L tous ce qui est avant le premier paramètre - Fichier_Resu.append(pre_bloc) - Fichier_Resu.append('\n') - - # Liste des parametres utilisant la SENSIBILITE - liste_sensibilite = [] - if len(LIST_SENSI)>0: - for i in LIST_SENSI: - liste_sensibilite.append( i ) - - #On ajoute la nouvelle valeur des parametres - dim_para=len(para) - for j in range(dim_para): - if not para[j] in liste_sensibilite: - Fichier_Resu.append(para[j]+'='+str(val[j]) + ';' + '\n') - else: - Fichier_Resu.append(para[j]+'=DEFI_PARA_SENSI(VALE='+str(val[j]) + ',);' + '\n') - - - #On ajoute à Fichier_Resu tous ce qui est entre les parametres - Fichier_Resu.append(bloc_inter) - - Fichier_Resu.append(post_bloc) - - #-------------------------------------------------------------------------------- - #on va ajouter la fonction d'extraction du numarray de la table par la méthode Array - #et on stocke les réponses calculées dans la liste Lrep - #qui va etre retournée par la fonction calcul_Aster - if mode_include: - self.g_context['Lrep'] = [] - Fichier_Resu.append('Lrep=[]'+'\n') - for i in range(len(reponses)): - Fichier_Resu.append('t'+str(reponses[i][0])+'='+str(reponses[i][0])+'.EXTR_TABLE()'+'\n') - Fichier_Resu.append('F = '+'t'+str(reponses[i][0])+'.Array('+"'"+str(reponses[i][1])+"'"+','+"'"+str(reponses[i][2])+"'"+')'+'\n') - Fichier_Resu.append('Lrep.append(F)'+'\n') - - #ouverture du fichier fort.3 et mise a jour de celui ci - x=open('fort.'+str(UL),'w') - if mode_include: - x.writelines('from Accas import _F \nfrom Cata.cata import * \n') - x.writelines(Fichier_Resu) - x.close() - - del(pre_bloc) - del(post_bloc) - del(fichier) - - # ---------------------------------------------------------------------------------- - # Execution d'une deuxieme instance d'Aster - - if not mode_include: - - # Ajout des commandes d'impression des tables Resultats et Derivees à la fin du fichier esclave - Fichier_Resu = [] - num_ul = '99' - - # Tables correspondant aux Resultats - for i in range(len(reponses)): - _ul = str(int(100+i)) - - try: os.remove( tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+_ul ) - except: pass - - Fichier_Resu.append("\n# Recuperation de la table : " + str(reponses[i][0]) + "\n") - Fichier_Resu.append("DEFI_FICHIER(UNITE="+num_ul+", FICHIER='"+tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+_ul+"',);\n") - Fichier_Resu.append("IMPR_TABLE(TABLE="+str(reponses[i][0])+", FORMAT='ASTER', UNITE="+num_ul+", INFO=1, FORMAT_R='E30.20',);\n") - Fichier_Resu.append("DEFI_FICHIER(ACTION='LIBERER', UNITE="+num_ul+",);\n") - - # Tables correspondant aux Derivees - if len(LIST_SENSI)>0: - i = 0 - for _para in LIST_SENSI: - _lst_tbl = LIST_DERIV[_para][0] - for _lst_tbl in LIST_DERIV[_para]: - i += 1 - _tbl = _lst_tbl[0] - - _ul = str(int(100+len(reponses)+i)) - try: os.remove( tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+_ul ) - except: pass - - Fichier_Resu.append("\n# Recuperation de la table derivee : " + _tbl + " (parametre " + _para + ")\n") - Fichier_Resu.append("DEFI_FICHIER(UNITE="+num_ul+", FICHIER='"+tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+_ul+"',);\n") - if table_sensibilite: - Fichier_Resu.append("IMPR_TABLE(TABLE="+_tbl+", SENSIBILITE="+_para+", FORMAT='ASTER', UNITE="+num_ul+", INFO=1, FORMAT_R='E30.20',);\n") - else: - Fichier_Resu.append("IMPR_TABLE(TABLE="+_tbl+", FORMAT='ASTER', UNITE="+num_ul+", INFO=1, FORMAT_R='E30.20',);\n") - Fichier_Resu.append("DEFI_FICHIER(ACTION='LIBERER', UNITE="+num_ul+",);\n") - - # Ecriture du "nouveau" fichier .comm - x=open('fort.'+str(UL),'a') - x.write( '\n'.join(Fichier_Resu) ) - x.write('\nFIN();\n') - x.close() - -# os.system("cat %s" % self.new_export) - - # Lancement du calcul Aster esclave - cmd = '%s %s' % (as_run, self.new_export) - self.Lancement_Commande(cmd) - - # Recuperation du .mess et du .resu 'fils' - if self.METHODE != 'EXTERNE': - if self.nom_fichier_mess_fils: - cmd = 'cp ' + tmp_macr_recal + os.sep + self.nom_fichier_mess_fils + ' ./REPE_OUT/' - os.system( cmd ) - if self.nom_fichier_resu_fils: - cmd = 'cp ' + tmp_macr_recal + os.sep + self.nom_fichier_resu_fils + ' ./REPE_OUT/' - os.system( cmd ) - - if __commandes_aster__: - # Unite logique libre - _tbul_libre=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE') - _ul_libre=_tbul_libre['UNITE_LIBRE',1] - - - # ------------------------------------------------------ - # Recuperation des tableaux resultats - Lrep=[] - _TB = [None]*len(reponses) - for i in range(len(reponses)): - - if __commandes_aster__: - - # Version par des commandes Aster - # ------- - - - DEFI_FICHIER(UNITE=_ul_libre, FICHIER=tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+str(int(100+i)), ); - try: - _TB[i]=LIRE_TABLE(UNITE=_ul_libre, - FORMAT='ASTER', - NUME_TABLE=1, - SEPARATEUR=' ',); - DEFI_FICHIER(ACTION='LIBERER', UNITE=_ul_libre,); - tREPONSE=_TB[i].EXTR_TABLE() - - F = tREPONSE.Array( str(reponses[i][1]), str(reponses[i][2]) ) - Lrep.append(F) - except: - message = "Impossible de recuperer les resultats de calcul esclave!" - UTMESS('F', nompro, message) - - else: - - # Version par utilisation directe du python de lire_table - # ------- - - # Chemin vers le fichier contenant la table - _fic_table = tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+str(int(100+i)) - - try: - file=open(_fic_table,'r') - texte=file.read() - file.close() - except Exception, err: - ier=1 - message = """Impossible de recuperer les resultats de calcul esclave (lecture des tables)! -Le calcul esclave n'a pas du se terminer correctement (ajouter un repertoire en Resultat avec -le type repe et voir l'output du fichier esclave dans ce repertoire. -Message: -""" - message += str(err) - UTMESS('F', nompro, message) - - try: - ier, message, table_lue = lecture_table(texte, 1, ' ') - list_para = table_lue.para - tab_lue = table_lue.values() - except Exception, err: - ier=1 - message = "Impossible de recuperer les resultats de calcul esclave (lecture des tables)!\nMessage:\n" + str(err) - - if ier!=0 : - UTMESS('F', nompro, message) - - try: - nb_val = len(tab_lue[ list_para[0] ]) - F = Numeric.zeros((nb_val,2), Numeric.Float) - for k in range(nb_val): -# F[k][0] = tab_lue[ list_para[0] ][1][k] -# F[k][1] = tab_lue[ list_para[1] ][1][k] - F[k][0] = tab_lue[ str(reponses[i][1]) ][k] - F[k][1] = tab_lue[ str(reponses[i][2]) ][k] - Lrep.append(F) - except Exception, err: - message = "Impossible de recuperer les resultats de calcul esclave (recuperation des tables)!\nMessage:\n" + str(err) - UTMESS('F', nompro, message) - - - # ------------------------------------------------------ - # Recuperation des tableaux des derivees (SENSIBILITE) - L_deriv={} - if len(LIST_SENSI)>0: - _lon = 0 - for _para in LIST_SENSI: - _lon += len(LIST_DERIV[_para]) - _TBD = [None]*_lon - - i = 0 - for _para in LIST_SENSI: - - L_deriv[_para] = [] - _lst_tbl = LIST_DERIV[_para][0] - - for _lst_tbl in LIST_DERIV[_para]: - j = LIST_DERIV[_para].index(_lst_tbl) - _tbl = _lst_tbl[0] - - if __commandes_aster__: - - # Version par des commandes Aster - # ------- - - DEFI_FICHIER(UNITE=_ul_libre, FICHIER=tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+str(int(100+len(reponses)+1+i)),); - _TBD[i]=LIRE_TABLE(UNITE=_ul_libre, - FORMAT='ASTER', - NUME_TABLE=1, - SEPARATEUR=' ',); - DEFI_FICHIER(ACTION='LIBERER', UNITE=_ul_libre,); - tREPONSE=_TBD[i].EXTR_TABLE() - DF = tREPONSE.Array( str(LIST_DERIV[_para][j][1]), str(LIST_DERIV[_para][j][2]) ) - L_deriv[_para].append(DF) - i+=1 - - else: - - # Version par utilisation directe du python de lire_table - # ------- - - # Chemin vers le fichier contenant la table - _fic_table = tmp_macr_recal+os.sep+"REPE_TABLE"+os.sep+"fort."+str(int(100+len(reponses)+1+i)) - - try: - file=open(_fic_table,'r') - texte=file.read() - file.close() - except Exception, err: - message = """Impossible de recuperer les resultats de calcul esclave (lecture des tables)! -Le calcul esclave n'a pas du se terminer correctement (ajouter un repertoire en Resultat avec -le type repe et voir l'output du fichier esclave dans ce repertoire. -Message: -""" - message += str(err) - UTMESS('F', nompro, message) - - try: - ier, message, table_lue = lecture_table(texte, 1, ' ') - list_para = table_lue.para - tab_lue = table_lue.values() - except Exception, err: - ier=1 - message = "Impossible de recuperer les resultats de calcul esclave (lecture des tables)!\nMessage:\n" + str(err) - - - if ier!=0 : - UTMESS('F', nompro, message) - - try: - nb_val = len(tab_lue[ list_para[0] ]) - DF = Numeric.zeros((nb_val,2), Numeric.Float) - for k in range(nb_val): -# DF[k][0] = tab_lue[ list_para[0] ][1][k] -# DF[k][1] = tab_lue[ list_para[1] ][1][k] - DF[k][0] = tab_lue[ str(LIST_DERIV[_para][j][1]) ][k] - DF[k][1] = tab_lue[ str(LIST_DERIV[_para][j][2]) ][k] - L_deriv[_para].append(DF) - i+=1 - except Exception, err: - message = "Impossible de recuperer les resultats de calcul esclave (recuperation des tables)!\nMessage:\n" + str(err) - UTMESS('F', nompro, message) - - - # Nettoyage du export - try: os.remove(self.new_export) - except: pass - - # Nettoyage du repertoire temporaire - if self.METHODE == 'EXTERNE': listdir = ['REPE_TABLE', 'base', 'REPE_IN'] - else: listdir = ['.', 'REPE_TABLE', 'base', 'REPE_OUT', 'REPE_IN'] - for dir in listdir: - try: - for fic in os.listdir(tmp_macr_recal+os.sep+dir): - try: os.remove(tmp_macr_recal+os.sep+dir+os.sep+fic) - except: pass - except: pass - - - - # ---------------------------------------------------------------------------------- - # Ou bien on inclue le fichier Esclave - - elif mode_include: - - if debug: os.system('cp fort.'+str(UL)+' REPE_OUT/') - - INCLUDE(UNITE = UL) - - Lrep = self.g_context['Lrep'] - L_deriv = None - - # Destruction des concepts Aster - reca_utilitaires.detr_concepts(self) - - - # ---------------------------------------------------------------------------------- - # Ou alors probleme ? - else: sys.exit(1) - - - del(Fichier_Resu) - - # on remet le fichier dans son etat initial - x=open('fort.'+str(UL),'w') - x.writelines(fichiersauv) - x.close() - - return Lrep, L_deriv - - - - # ------------------------------------------------------------------------------ - - def calcul_FG(self, val): - - self.L, self.L_deriv_sensible = self.calcul_Aster(val, INFO=self.INFO) - self.L_J, self.erreur = self.Simul.multi_interpole(self.L, self.reponses) - if not self.L_J_init: self.L_J_init = copy.copy(self.L_J) - self.J = self.Simul.norme_J(self.L_J_init, self.L_J, self.UNITE_RESU) - - # Calcul des derivees - self.A_nodim = self.Simul.sensibilite(self, self.L, self.L_deriv_sensible, val, self.PARA_DIFF_FINI) - -# print 50*'+' -# print self.A_nodim -# print 50*'+' -# print 50*'+' -# print 'self.L=', self.L -# print 50*'+' -# print 'self.reponses=', self.reponses -# print 50*'+' -# print 'self.resu_exp=', self.Simul.resu_exp -# print 50*'+' -# print 'self.L_J=', self.L_J -# print 50*'+' -# print 'self.erreur=', self.erreur -# print 50*'+' - -# A_nodim = copy.copy(self.A_nodim) - self.A = self.Dim.adim_sensi( copy.copy(self.A_nodim) ) -# self.residu = self.reca_algo.test_convergence(self.gradient_init, self.erreur, self.A, Numeric.zeros(len(self.gradient_init),Numeric.Float) ) - self.residu = 0. - -# print 50*'+' -# print self.A_nodim -# print 50*'+' -# print self.A -# print 50*'+' -# print "Numeric.sum(self.A_nodim,0)=", Numeric.sum(self.A_nodim,0) -# print "Numeric.sum(self.A,0)=", Numeric.sum(self.A,0) - - if self.vector_output: - return self.erreur, self.residu, self.A_nodim, self.A - else: - # norme de l'erreur - self.norme = Numeric.dot(self.erreur, self.erreur)**0.5 - - self.norme_A_nodim = Numeric.zeros( (1,len(self.para)), Numeric.Float ) - self.norme_A = Numeric.zeros( (1,len(self.para)), Numeric.Float ) - for c in range(len(self.A[0,:])): - norme_A_nodim = 0 - norme_A = 0 - for l in range(len(self.A[:,0])): - norme_A_nodim += self.A_nodim[l,c] * self.A_nodim[l,c] - norme_A += self.A[l,c] * self.A[l,c] - self.norme_A_nodim[0,c] = math.sqrt( norme_A_nodim ) - self.norme_A[0,c] = math.sqrt( norme_A ) - -# print self.norme_A_nodim -# print self.norme_A - - return self.norme, self.residu, self.norme_A_nodim, self.norme_A - - - # ------------------------------------------------------------------------------ - - def calcul_F(self, val): - - self.L, self.L_deriv_sensible = self.calcul_Aster(val, INFO=self.INFO) - L_J, erreur = self.Simul.multi_interpole(self.L, self.reponses) - if not self.L_J_init: self.L_J_init = copy.copy(L_J) - J = self.Simul.norme_J(self.L_J_init, L_J, self.UNITE_RESU) - - # norme de l'erreur - norme = Numeric.sum( [x**2 for x in erreur] ) - - if debug: - print 'erreur=', erreur - print "norme de l'erreur=", norme - print "norme de J (fonctionnelle)=", str(J) - - if self.INFO>=1: - txt = "Informations de convergence :" - txt += '\n=======================================================\n' - if self.evaluation_fonction >1: txt += "\n Nombre d'evaluation de la fonction = " + str(self.evaluation_fonction) - txt += "\n=> Fonctionnelle = "+str(J) - - if self.vector_output: - if self.INFO>=1: - txt += "\n=> Norme de l'erreur = " + str(norme) - txt += '\n=======================================================\n' - UTMESS('I','MACR_RECAL',txt) - return erreur - else: - if self.INFO>=1: - txt += "\n=> Erreur = " + str(norme) - txt += '\n=======================================================\n' - UTMESS('I','MACR_RECAL',txt) - return norme - -# if self.error_output: -# print "erreur:", erreur -# return erreur -# else: -# print "norme:", norme -# return norme - - - - # ------------------------------------------------------------------------------ - - def calcul_G(self, val): - - # Si le calcul Aster est deja effectue pour val on ne le refait pas - if (self.val == val) and self.L and self.L_deriv_sensible: pass - else: - self.L, self.L_deriv_sensible = self.calcul_Aster(val, INFO=self.INFO) - A = self.Simul.sensibilite(self, self.L, self.L_deriv_sensible, val, self.PARA_DIFF_FINI) - A = self.Dim.adim_sensi(A) - L_J, erreur = self.Simul.multi_interpole(self.L, self.reponses) - grad = Numeric.dot(Numeric.transpose(A),erreur) - if debug: print 'grad=', grad - print 'grad=', grad - return grad - - - # ------------------------------------------------------------------------------ - - def Creation_Temporaire_Esclave(self): - """ - Creation du repertoire temporaire d'execution du calcul esclace - """ - - - # Creation du repertoire temporaire - tmp_macr_recal = os.getcwd() + os.sep + 'tmp_macr_recal' - try: os.mkdir(tmp_macr_recal) - except: pass - if not os.path.exists(tmp_macr_recal): UTMESS('F','MACR_RECAL',"Probleme : Impossible de creer le repertoire temporaire : " + tmp_macr_recal) - try: os.mkdir(tmp_macr_recal + os.sep + 'REPE_TABLE') - except: pass - if not os.path.exists(tmp_macr_recal + os.sep + 'REPE_TABLE'): UTMESS('F','MACR_RECAL',"Probleme : Impossible de creer le repertoire temporaire : " + tmp_macr_recal + os.sep + 'REPE_TABLE') - - return tmp_macr_recal - - - # ------------------------------------------------------------------------------ - - def Creation_Fichier_Export_Esclave(self, tmp_macr_recal): - """ - Creation du fichier .export pour le calcul esclave - """ - - from as_profil import ASTER_PROFIL - - # Recuperation du fichier .export - list_export = glob('*.export') - - if len(list_export) == 0: UTMESS('F','MACR_RECAL',"Probleme : il n'y a pas de fichier .export dans le repertoire de travail!") - elif len(list_export) >1: UTMESS('F','MACR_RECAL',"Probleme : il y a plus d'un fichier .export dans le repertoire de travail!") - - # On modifie le profil - prof = ASTER_PROFIL(list_export[0]) - - # xterm - if prof.param.has_key('xterm'): - del prof.param['xterm'] - # memjeveux - prof.args['memjeveux'] = self.memjeveux_esclave - - # fichier/répertoire - for lab in ('data', 'resu'): - l_fr = getattr(prof, lab) - l_tmp = l_fr[:] - - for dico in l_tmp: - - print dico - - # répertoires - if dico['isrep']: - - # base non prise en compte - if dico['type'] in ('base', 'bhdf'): - l_fr.remove(dico) - - if lab == 'resu': - dico['path'] = os.path.join(tmp_macr_recal, os.path.basename(dico['path'])) - - # fichiers - else: - - # Nom du fichier .mess (pour recuperation dans REPE_OUT) - if dico['ul'] == '6': - self.nom_fichier_mess_fils = os.path.basename(dico['path']) -# self.nom_fichier_mess_fils = os.path.join(os.getcwd(), 'fort.%d' % self.UL) - - # Nom du fichier .resu (pour recuperation dans REPE_OUT) - if dico['ul'] == '8': - self.nom_fichier_resu_fils = os.path.basename(dico['path']) - - # Ancien .comm non pris en compte - # Fichier d'unite logique UNITE_RESU (rapport de MACR_RECAL) non pris en compte - if dico['type'] == 'comm' or (dico['ul'] == str(self.UNITE_RESU) and lab == 'resu'): - l_fr.remove(dico) - - # Fichier d'unite logique UL devient le nouveau .comm - elif dico['ul'] == str(self.UL): - self.fichier_esclave = dico['path'] - dico['type'] = 'comm' - dico['ul'] = '1' - dico['path'] = os.path.join(os.getcwd(), 'fort.%d' % self.UL) - - # Tous les autres fichiers en Resultat - elif lab == 'resu': - if self.UNITE_GRAPHIQUE and dico['ul'] == str(self.UNITE_GRAPHIQUE): l_fr.remove(dico) - else: - dico['path'] = os.path.join(tmp_macr_recal, os.path.basename(dico['path'])) - - # Tous les autres fichiers en Donnees - elif lab == 'data': - dico['path'] = os.path.join(os.getcwd(), 'fort.%s' % dico['ul']) - - # sinon on garde la ligne - setattr(prof, lab, l_fr) - - # Ecriture du nouveau fichier export - prof.WriteExportTo(self.new_export) - -# os.system('cp ' + self.new_export + ' /tmp') - - # --FIN CLASSE ---------------------------------------------------------------------------- - - - diff --git a/Aster/Cata/cataSTA8/Macro/reca_controles.py b/Aster/Cata/cataSTA8/Macro/reca_controles.py deleted file mode 100644 index 43f8dc3a..00000000 --- a/Aster/Cata/cataSTA8/Macro/reca_controles.py +++ /dev/null @@ -1,228 +0,0 @@ -#@ MODIF reca_controles Macro DATE 31/10/2006 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# RESPONSABLE ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import string, copy, Numeric, types, os, sys, pprint - -try: - from Utilitai.Utmess import UTMESS -except ImportError: - def UTMESS(code,sprg,texte): - fmt='\n <%s> <%s> %s\n\n' - print fmt % (code,sprg,texte) - if code=='F': sys.exit() - - -# Nom de la routine -nompro = 'MACR_RECAL' - - - -#_____________________________________________ -# -# CONTROLE DES ENTREES UTILISATEUR -#_____________________________________________ - -# ------------------------------------------------------------------------------ - -def erreur_de_type(code_erreur,X): - #code_erreur ==0 --> X est une liste - #code erreur ==1 --> X est un char - #code erreur ==2 --> X est un float - #test est un boolean (test = 0 défaut et 1 si un test if est verifier - txt="" - if(code_erreur == 0 ): - if type(X) is not types.ListType: - txt="\nCette entrée: " +str(X)+" n'est pas une liste valide" - if(code_erreur == 1 ): - if type(X) is not types.StringType: - txt="\nCette entrée: " +str(X)+" n'est pas une chaine de caractère valide ; Veuillez la ressaisir en lui appliquant le type char de python" - if(code_erreur == 2 ): - if type(X) is not types.FloatType: - txt="\nCette entrée: " +str(X)+" n'est pas une valeur float valide ; Veuillez la ressaisir en lui appliquant le type float de python" - return txt - - -# ------------------------------------------------------------------------------ - -def erreur_dimension(PARAMETRES,REPONSES): -#On verifie que la dimension de chaque sous_liste de parametre est 4 -#et que la dimension de chaque sous_liste de REPONSES est 3 - txt="" - for i in range(len(PARAMETRES)): - if (len(PARAMETRES[i]) != 4): - txt=txt + "\nLa sous-liste de la variable paramètre numéro " + str(i+1)+" n'est pas de longueur 4" - for i in range(len(REPONSES)): - if (len(REPONSES[i]) != 3): - txt=txt + "\nLa sous-liste de la variable réponse numéro " + str(i+1)+" n'est pas de longueur 3" - return txt - - -# ------------------------------------------------------------------------------ - -def compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP): - # X et Y sont deux arguments qui doivent avoir la meme dimension - # pour éviter l'arret du programme - txt="" - if( len(REPONSES) != len(RESU_EXP)): - txt="\nVous avez entré " +str(len(REPONSES))+ " réponses et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de réponses que de résultats expérimentaux" - return txt - - -# ------------------------------------------------------------------------------ - -def compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP): - # POIDS et Y sont deux arguments qui doivent avoir la meme dimension - # pour éviter l'arret du programme - txt="" - if( len(POIDS) != len(RESU_EXP)): - txt="\nVous avez entré " +str(len(POIDS))+ " poids et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de poids que de résultats expérimentaux" - return txt - - -# ------------------------------------------------------------------------------ - -def verif_fichier(UL,PARAMETRES,REPONSES): -#On verifie les occurences des noms des PARAMETRES et REPONSES -#dans le fichier de commande ASTER - txt="" - - try: - fichier = open('fort.'+str(UL),'r') - fic=fichier.read() - except: - txt += "\nImpossible d'ouvrir le fichier esclave declare avec l'unite logique " + str(UL) - return txt - for i in range(len(PARAMETRES)): - if((string.find(fic,PARAMETRES[i][0])==-1) or ((string.find(fic,PARAMETRES[i][0]+'=')==-1) and (string.find(fic,PARAMETRES[i][0]+' ')==-1))): - txt += "\nLe paramètre "+PARAMETRES[i][0]+" que vous avez entré pour la phase d'optimisation n'a pas été trouvé dans votre fichier de commandes ASTER" - for i in range(len(REPONSES)): - if((string.find(fic,REPONSES[i][0])==-1) or ((string.find(fic,REPONSES[i][0]+'=')==-1) and (string.find(fic,REPONSES[i][0]+' ')==-1))): - txt += "\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="" - if GRAPHIQUE: - GRAPHE_UL_OUT=GRAPHIQUE['UNITE'] - if (GRAPHE_UL_OUT==UNITE_RESU): - txt=txt + "\nLes unités logiques des fichiers de résultats graphiques et de résultats d'optimisation sont les memes." - return txt - - -# ------------------------------------------------------------------------------ - -def gestion(UL,PARAMETRES,REPONSES,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU,METHODE): - #Cette methode va utiliser les methodes de cette classe declarée ci-dessus - #test est un boolean: test=0 -> pas d'erreur - # test=1 -> erreur détectée - - texte="" - #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 - if METHODE != 'EXTERNE': # pour celui-ci le fort.UL n'est pas l'esclave... voir comment faire - texte = texte + verif_fichier(UL,PARAMETRES,REPONSES) - - #verification des valeurs des PARAMETRES entrées par l'utilisteur - if METHODE == 'LEVENBERG': - texte = texte + verif_valeurs_des_PARAMETRES(PARAMETRES) - - #verification des unités logiques renseignées par l'utilisateur - if METHODE != 'EXTERNE': - texte = texte + verif_UNITE(GRAPHIQUE,UNITE_RESU) - - return texte - diff --git a/Aster/Cata/cataSTA8/Macro/reca_graphique.py b/Aster/Cata/cataSTA8/Macro/reca_graphique.py deleted file mode 100644 index bab1d8c2..00000000 --- a/Aster/Cata/cataSTA8/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/cataSTA8/Macro/reca_interp.py b/Aster/Cata/cataSTA8/Macro/reca_interp.py deleted file mode 100644 index d441a5e7..00000000 --- a/Aster/Cata/cataSTA8/Macro/reca_interp.py +++ /dev/null @@ -1,325 +0,0 @@ -#@ MODIF reca_interp Macro DATE 31/10/2006 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# RESPONSABLE ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import os, sys, pprint -import Numeric - -try: import Macro -except: pass - -try: - from Utilitai.Utmess import UTMESS -except ImportError: - def UTMESS(code,sprg,texte): - fmt='\n <%s> <%s> %s\n\n' - print fmt % (code,sprg,texte) - if code=='F': sys.exit() - - -#=========================================================================================== - - -# INTERPOLATION, CALCUL DE SENSIBILITE, ETC.... - -#-------------------------------------- -class Sim_exp : - - def __init__ (self,result_exp,poids) : - self.resu_exp = result_exp - self.poids = poids - -# ------------------------------------------------------------------------------ - - def InterpolationLineaire (self, x0, points) : - """ - Interpolation Lineaire de x0 sur la fonction discrétisée yi=points(xi) i=1,..,n - """ - # x0 = Une abscisse (1 colonne, 1 ligne) - # points = Tableau de n points (2 colonnes, n lignes) - # on suppose qu'il existe au moins 2 points, - # et que les points sont classés selon les abscisses croissantes - - n = len(points) - if ( x0 < points[0][0] ) or ( x0 > points[n-1][0] ) : - txt = "Problème lors de l'interpolation du calcul dérivé sur les données expérimentale!" - txt += "\nValeur à interpoler : " + str(x0) - txt += "\nDomaine couvert par l'experience : [" + str(points[0][0]) + ":" + str(points[n-1][0]) + "]" - UTMESS('F','MACR_RECAL', txt) - - i = 1 - while x0 > points[i][0]: - i = i+1 - - y0 = (x0-points[i-1][0]) * (points[i][1]-points[i-1][1]) / (points[i][0]-points[i-1][0]) + points[i-1][1] - - return y0 - - - - -# ------------------------------------------------------------------------------ - - def DistVertAdimPointLigneBrisee (self, M, points) : - """ - Distance verticale d'un point M à une ligne brisée composée de n points - """ - # M = Point (2 colonnes, 1 ligne) - # points = Tableau de n points (2 colonnes, n lignes) - # on suppose qu'il existe au moins 2 points, - # et que les points sont classés selon les abscisses croissantes - n = len(points) - if ( M[0] < points[0][0] ) or ( M[0] > points[n-1][0] ): - return 0. - i = 1 - while M[0] > points[i][0]: - i = i+1 - y_proj_vert = (M[0]-points[i-1][0]) * (points[i][1]-points[i-1][1]) / (points[i][0]-points[i-1][0]) + points[i-1][1] - d = (M[1] - y_proj_vert) - # Attention: la distance n'est pas normalisée - # Attention: problème si points[0][0] = points[1][0] = M[0] - # Attention: problème si M[1] = 0 - return d - - -# ------------------------------------------------------------------------------ - - def _Interpole(self, F_calc,experience,poids) : #ici on passe en argument "une" experience - """ - La Fonction Interpole interpole une et une seule F_calc sur F_exp et renvoie l'erreur seulement - """ - - n = 0 - resu_num = F_calc - n_exp = len(experience) # nombre de points sur la courbe expérimentale num.i - stockage = Numeric.ones(n_exp, Numeric.Float) # matrice de stockage des erreurs en chaque point - for j in xrange(n_exp) : - d = self.DistVertAdimPointLigneBrisee(experience[j], resu_num) - try: - stockage[n] = d/experience[j][1] - except ZeroDivisionError: - stockage[n] = d - - n = n + 1 # on totalise le nombre de points valables - err = Numeric.ones(n, Numeric.Float) - - for i in xrange(n) : - err[i] = poids*stockage[i] - return err - - -# ------------------------------------------------------------------------------ - - def multi_interpole(self, L_F, reponses): - """ - Cette fonction appelle la fonction interpole et retourne les sous-fonctionnelles J et l'erreur. - On interpole toutes les reponses une à une en appelant la methode interpole. - """ - - L_erreur=[] - for i in range(len(reponses)): - err = self._Interpole(L_F[i],self.resu_exp[i],self.poids[i]) - L_erreur.append(err) - -# print "L_erreur=", L_erreur - - # On transforme L_erreur en tab num - dim=[] - J=[] - for i in range(len(L_erreur)): - dim.append(len(L_erreur[i])) - dim_totale = Numeric.sum(dim) - L_J = self.calcul_J(L_erreur) - a=0 - erreur = Numeric.zeros((dim_totale),Numeric.Float) - for n in range(len(L_erreur)): - for i in range(dim[n]): - erreur[i+a] = L_erreur[n][i] - a = dim[n] - del(L_erreur) #on vide la liste puisqu'on n'en a plus besoin - return L_J,erreur - - -# ------------------------------------------------------------------------------ - - def multi_interpole_sensib(self, L_F, reponses): - """ - Cette fonction retourne seulement l'erreur, elle est appelée dans la methode sensibilité. - On interpole toutes les reponses une à une en appelant la methode interpole. - """ - - L_erreur=[] - for i in range(len(reponses)): - err = self._Interpole(L_F[i], self.resu_exp[i], self.poids[i]) - L_erreur.append(err) - # On transforme L_erreur en tab num - return L_erreur - - -# ------------------------------------------------------------------------------ - - def calcul_J(self,L_erreur): - L_J = [] - for i in range(len(L_erreur)): - total = 0 - for j in range(len(L_erreur[i])): - total = total + L_erreur[i][j]**2 - L_J.append(total) - return L_J - - -# ------------------------------------------------------------------------------ - - def norme_J(self,L_J_init,L_J,unite_resu=None): - """ - Cette fonction calcul une valeur normée de J - """ - for i in range(len(L_J)): - try: - L_J[i] = L_J[i]/L_J_init[i] - except ZeroDivisionError: - message= 'Problème de division par zéro dans la normalisation de la fonctionnelle.\n' - message=message+'Une des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine : %.2f \n'%L_J_init - if unite_resu: - fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') - fic.write(message) - fic.close() - UTMESS('F', "MACR_RECAL", message) - return - - J = Numeric.sum(L_J) - J = J/len(L_J) - return J - - -# ------------------------------------------------------------------------------ - -# def sensibilite(self,objet,UL,F,L_deriv_sensible,val,para,reponses,pas,unite_resu,LIST_SENSI=[],LIST_DERIV=[],INFO=1): - - def sensibilite(self, CALCUL_ASTER, F, L_deriv_sensible, val, pas): - - # CALCUL_ASTER est l'objet regroupant le calcul de F et des derivées, ainsi que les options - UL = CALCUL_ASTER.UL - para = CALCUL_ASTER.para - reponses = CALCUL_ASTER.reponses - unite_resu = CALCUL_ASTER.UNITE_RESU - LIST_SENSI = CALCUL_ASTER.LIST_SENSI - LIST_DERIV = CALCUL_ASTER.LIST_DERIV - INFO = CALCUL_ASTER.INFO - - - - # Erreur de l'interpolation de F_interp : valeur de F interpolée sur les valeurs experimentales - F_interp = self.multi_interpole_sensib(F, reponses) #F_interp est une liste contenant des tab num des reponses interpolés - - # Creation de la liste des matrices de sensibilités - L_A=[] - for i in range(len(reponses)): - L_A.append(Numeric.zeros((len(self.resu_exp[i]),len(val)),Numeric.Float) ) - - for k in range(len(val)): # pour une colone de A (dim = nb parametres) - - # On utilise les differences finies pour calculer la sensibilité - # -------------------------------------------------------------- - # Dans ce cas, un premier calcul_Aster pour val[k] a deja ete effectué, on effectue un autre calcul_Aster pour val[k]+h - - if para[k] not in LIST_SENSI: - - # Message - if INFO>=2: UTMESS('I','MACR_RECAL','On utilise les differences finies pour calculer la sensibilite de : %s ' % para[k]) - - fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') - fic.write('\nCalcul de la sensibilité par differences finies pour : '+para[k]) - fic.close() - - # Perturbation - h = val[k]*pas - val[k] = val[k] + h - - # Calcul_Aster pour la valeur perturbée - F_perturbe, L_deriv = CALCUL_ASTER.calcul_Aster(val) - - # Erreur de l'interpolation de F_perturb : valeur de F (perturbée) interpolée sur les valeurs experimentales - F_perturbe_interp =self.multi_interpole_sensib(F_perturbe, reponses) - - # On replace les parametres a leurs valeurs initiales - val[k] = val[k] - h - - # Calcul de L_A (matrice sensibilité des erreurs sur F interpolée) - for j in range(len(reponses)): - for i in range(len(self.resu_exp[j])): - try: - L_A[j][i,k] = -1*(F_interp[j][i] - F_perturbe_interp[j][i])/h - except ZeroDivisionError: - fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') - fic.write('\n Probleme de division par zéro dans le calcul de la matrice de sensiblité') - fic.write('\n Le parametre '+para[k]+'est nul ou plus petit que la précision machine') - fic.close() - UTMESS('F','MACR_RECAL',"Probleme de division par zéro dans le calcul de la matrice de sensiblité.\n Le parametre "+para[k]+"est nul ou plus petit que la précision machine") - return - - - # On utilise le calcul de SENSIBILITE - # -------------------------------------------------------------- - # Dans ce cas, L_deriv_sensible a deja ete calculé pour le premier calcul pour val[k], aucun autre calcul_F n'est a lancer - else: - if INFO>=2: UTMESS('I','MACR_RECAL','On utilise le calcul de SENSIBILITE pour : %s ' % para[k]) - - # Message - fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a') - fic.write('\nCalcul de la sensibilité par la SENSIBILITE pour : '+para[k]) - fic.close() - - L_deriv_sensible_interp = L_deriv_sensible - - # Calcul de L_A (matrice sensibilité des erreurs sur F interpolée) - for j in range(len(reponses)): - for i in range(len(self.resu_exp[j])): - - # On interpole la fonction derivée aux points experimentaux - val_derivee_interpolee = self.InterpolationLineaire( self.resu_exp[j][i][0], L_deriv_sensible_interp[ para[k] ][:][j] ) - - # Application du poids de la reponse courante j - val_derivee_interpolee = val_derivee_interpolee*self.poids[j] - - try: - L_A[j][i,k] = -1.* ( val_derivee_interpolee ) / self.resu_exp[j][i][1] - except ZeroDivisionError: - L_A[j][i,k] = -1.* ( val_derivee_interpolee ) - - # fin - # -------------------------------------------------------------- - - # On construit la matrice de sensiblité sous forme d'un tab num - dim =[] - for i in range(len(L_A)): - dim.append(len(L_A[i])) - dim_totale = Numeric.sum(dim) - a=0 - A = Numeric.zeros((dim_totale,len(val)),Numeric.Float) - for n in range(len(L_A)): - for k in range(len(val)): - for i in range(dim[n]): - A[i+a][k] = L_A[n][i,k] - a=dim[n] - - del(L_A) # On ecrase tout ce qu'il y a dans L_A puisqu'on n'en a plus besoin - - return A diff --git a/Aster/Cata/cataSTA8/Macro/reca_message.py b/Aster/Cata/cataSTA8/Macro/reca_message.py deleted file mode 100644 index ec5d87fa..00000000 --- a/Aster/Cata/cataSTA8/Macro/reca_message.py +++ /dev/null @@ -1,173 +0,0 @@ -#@ MODIF reca_message Macro DATE 31/10/2006 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# RESPONSABLE ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import os, Numeric - -try: - from Utilitai.Utmess import UTMESS -except: - def UTMESS(code,sprg,texte): - fmt='\n <%s> <%s> %s\n\n' - print fmt % (code,sprg,texte) - if code=='F': sys.exit() - -#=========================================================================================== - - -# AFFICHAGE DES MESSAGES - -class Message : - """classe gérant l'affichage des messages concernant le déroulement de l'optmisation """ - #Constructeur de la classe - -# ------------------------------------------------------------------------------ - - def __init__(self,para,val_init,resu_exp,ul_out): - self.nom_para = para - self.resu_exp = resu_exp - self.val_init = val_init - self.resu_exp = resu_exp - self.ul_out = ul_out - -# ------------------------------------------------------------------------------ - - def initialise(self): - res=open(os.getcwd()+'/fort.'+str(self.ul_out),'w') - res.close() - - txt = ' MACR_RECAL\n\n' - self.ecrire(txt) - -# ------------------------------------------------------------------------------ - - def ecrire(self,txt): - res=open(os.getcwd()+'/fort.'+str(self.ul_out),'a') - res.write(txt+'\n') - res.flush() - res.close() - - -# ------------------------------------------------------------------------------ - - def affiche_valeurs(self,val): - - txt = '\n=> Paramètres = ' - for i in range(len(val)): - txt += '\n '+ self.nom_para[i]+' = '+str(val[i]) - self.ecrire(txt) - -# ------------------------------------------------------------------------------ - - def affiche_fonctionnelle(self,J): - - txt = '\n=> Fonctionnelle = '+str(J) - self.ecrire(txt) - -# ------------------------------------------------------------------------------ - - def affiche_result_iter(self,iter,J,val,residu,Act=[],): - - txt = '\n=======================================================\n' - txt += 'Iteration '+str(iter)+' :\n' - txt += '\n=> Fonctionnelle = '+str(J) - txt += '\n=> Résidu = '+str(residu) - - self.ecrire(txt) - - txt = '' - self.affiche_valeurs(val) - - if (len(Act)!=0): - if (len(Act)==1): - txt += '\n\n Le paramètre ' - else: - txt += '\n\n Les paramètres ' - for i in Act: - txt += self.nom_para[i]+' ' - if (len(Act)==1): - txt += '\n est en butée sur un bord de leur domaine admissible.' - else: - txt += '\n sont en butée sur un bord de leur domaine admissible.' - txt += '\n=======================================================\n\n' - self.ecrire(txt) - - -# ------------------------------------------------------------------------------ - - def affiche_etat_final_convergence(self,iter,max_iter,iter_fonc,max_iter_fonc,prec,residu,Act=[]): - - txt = '' - if ((iter <= max_iter) or (residu <= prec) or (iter_fonc <= max_iter_fonc) ): - txt += '\n=======================================================\n' - txt += ' CONVERGENCE ATTEINTE ' - if (len(Act)!=0): - txt += "\n\n ATTENTION : L'OPTIMUM EST ATTEINT AVEC " - txt += "\n DES PARAMETRES EN BUTEE SUR LE BORD " - txt += "\n DU DOMAINE ADMISSIBLE " - txt += '\n=======================================================\n' - else: - txt += "\n=======================================================\n" - txt += ' CONVERGENCE NON ATTEINTE ' - if (iter > max_iter): - txt += "\n Le nombre maximal d'itération ("+str(max_iter)+") a été dépassé" - if (iter_fonc > max_iter_fonc): - txt += "\n Le nombre maximal d'evaluation de la fonction ("+str(max_iter_fonc)+") a été dépassé" - txt += '\n=======================================================\n' - self.ecrire(txt) - - -# ------------------------------------------------------------------------------ - - def affiche_calcul_etat_final(self,para,Hessien,valeurs_propres,vecteurs_propres,sensible,insensible): - - txt = '\n\nValeurs propres du Hessien:\n' - txt += str( valeurs_propres) - txt += '\n\nVecteurs propres associés:\n' - txt += str( vecteurs_propres) - txt += '\n\n --------' - txt += '\n\nOn peut en déduire que :' - # Paramètres sensibles - if (len(sensible)!=0): - txt += '\n\nLes combinaisons suivantes de paramètres sont prépondérantes pour votre calcul :\n' - k=0 - for i in sensible: - k=k+1 - colonne=vecteurs_propres[:,i] - numero=Numeric.nonzero(Numeric.greater(abs(colonne/max(abs(colonne))),1.E-1)) - txt += '\n '+str(k)+') ' - for j in numero: - txt += '%+3.1E ' %colonne[j]+'* '+para[j]+' ' - txt += '\n associée à la valeur propre %3.1E \n' %valeurs_propres[i] - # Paramètres insensibles - if (len(insensible)!=0): - txt += '\n\nLes combinaisons suivantes de paramètres sont insensibles pour votre calcul :\n' - k=0 - for i in insensible: - k=k+1 - colonne=vecteurs_propres[:,i] - numero=Numeric.nonzero(Numeric.greater(abs(colonne/max(abs(colonne))),1.E-1)) - txt += '\n '+str(k)+') ' - for j in numero: - txt += '%+3.1E ' %colonne[j]+'* '+para[j]+' ' - txt += '\n associée à la valeur propre %3.1E \n' %valeurs_propres[i] - - self.ecrire(txt) - diff --git a/Aster/Cata/cataSTA8/Macro/reca_utilitaires.py b/Aster/Cata/cataSTA8/Macro/reca_utilitaires.py deleted file mode 100644 index c2c3cd27..00000000 --- a/Aster/Cata/cataSTA8/Macro/reca_utilitaires.py +++ /dev/null @@ -1,225 +0,0 @@ -#@ MODIF reca_utilitaires Macro DATE 31/10/2006 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# RESPONSABLE ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import Numeric, LinearAlgebra, copy, os, string, types, sys, glob -from Numeric import take - -try: - from Cata.cata import INFO_EXEC_ASTER, DEFI_FICHIER, IMPR_FONCTION, DETRUIRE - from Accas import _F -except: pass - -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) - if code=='F': sys.exit() - - - -# ------------------------------------------------------------------------------ -# ------------------------------------------------------------------------------ - -#_____________________________________________ -# -# DIVERS UTILITAIRES POUR LA MACRO -#_____________________________________________ - - -def transforme_list_Num(parametres,res_exp): - """ - Transforme les données entrées par l'utilisateur en tableau Numeric - """ - - dim_para = len(parametres) #donne le nb de parametres - val_para = Numeric.zeros(dim_para,Numeric.Float) - borne_inf = Numeric.zeros(dim_para,Numeric.Float) - borne_sup = Numeric.zeros(dim_para,Numeric.Float) - para = [] - for i in range(dim_para): - para.append(parametres[i][0]) - val_para[i] = parametres[i][1] - borne_inf[i] = parametres[i][2] - borne_sup[i] = parametres[i][3] - return para,val_para,borne_inf,borne_sup - - -# ------------------------------------------------------------------------------ - -def mes_concepts(list_concepts=[],base=None): - """ - Fonction qui liste les concepts créés - """ - for e in base.etapes: - if e.nom in ('INCLUDE','MACR_RECAL',) : - list_concepts=list(mes_concepts(list_concepts=list_concepts,base=e)) - elif (e.sd != None) and (e.parent.nom=='INCLUDE') : - nom_concept=e.sd.get_name() - if not(nom_concept in list_concepts): - list_concepts.append( nom_concept ) - return tuple(list_concepts) - - -# ------------------------------------------------------------------------------ - -def detr_concepts(self): - """ - Fonction qui detruit les concepts créés - """ - liste_concepts=mes_concepts(base=self.parent) - for e in liste_concepts: - nom = string.strip(e) - DETRUIRE( CONCEPT =self.g_context['_F'](NOM = nom), INFO=1, ALARME='NON') - if self.jdc.g_context.has_key(nom) : del self.jdc.g_context[nom] - del(liste_concepts) - - -# ------------------------------------------------------------------------------ - - - - - - - - -#_____________________________________________ -# -# CALCUL DU TEMPS CPU RESTANT -#_____________________________________________ - - -#def temps_CPU(self,restant_old,temps_iter_old): -def temps_CPU(restant_old,temps_iter_old): - """ - Fonction controlant le temps CPU restant - """ - CPU=INFO_EXEC_ASTER(LISTE_INFO = ("CPU_RESTANT",)) - TEMPS=CPU['CPU_RESTANT',1] - DETRUIRE(CONCEPT=_F(NOM='CPU'),INFO=1) - err=0 - # Indique une execution interactive - if (TEMPS>1.E+9): - return 0.,0.,0 - # Indique une execution en batch - else: - restant=TEMPS - # Initialisation - if (restant_old==0.): - temps_iter=-1. - else: - # Première mesure - if (temps_iter_old==-1.): - temps_iter=(restant_old-restant) - # Mesure courante - else: - temps_iter=(temps_iter_old + (restant_old-restant))/2. - if ((temps_iter>0.96*restant)or(restant<0.)): - err=1 - UTMESS('F','MACR_RECAL',"Arret de MACR_RECAL par manque de temps CPU.") - - return restant,temps_iter,err - - - - -#_____________________________________________ -# -# IMPRESSIONS GRAPHIQUES -#_____________________________________________ - - -def graphique(FORMAT, L_F, res_exp, reponses, iter, UL_out, interactif, fichier=None, INFO=0): - - if iter: txt_iter = 'Iteration : ' + str(iter) - else: txt_iter = '' - - # Le try/except est la pour eviter de planter betement dans un trace de courbes (DISPLAY non defini, etc...) - try: - if FORMAT=='XMGRACE': - for i in range(len(L_F)): - _tmp = [] - courbe1 = res_exp[i] - _tmp.append( { 'ABSCISSE': courbe1[:,0].tolist(), 'ORDONNEE': courbe1[:,1].tolist(), 'COULEUR': 1 } ) - 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' - - IMPR_FONCTION(FORMAT='XMGRACE', - UNITE=int(UL_out), - TITRE='Courbe de : ' + reponses[i][0], - SOUS_TITRE=txt_iter, - LEGENDE_X=reponses[i][1], - LEGENDE_Y=reponses[i][2], - **motscle2 - ); - - elif FORMAT=='GNUPLOT': - if INFO>=2: UTMESS('I','MACR_RECAL',"Trace des courbes dans le fichier " + fichier ) - - if fichier: - # On efface les anciens graphes - liste = glob.glob(fichier + '*.ps') - for fic in liste: - try: os.remove(fic) - except: pass - - graphe=[] - impr=Gnuplot.Gnuplot() - Gnuplot.GnuplotOpts.prefer_inline_data=1 - impr('set data style linespoints') - impr('set grid') - impr('set pointsize 2.') - impr('set terminal postscript color') - impr('set output "fort.'+str(UL_out)+'"') - - for i in range(len(L_F)): - graphe.append(Gnuplot.Gnuplot(persist=0)) - graphe[i]('set data style linespoints') - graphe[i]('set grid') - graphe[i]('set pointsize 2.') - graphe[i].xlabel(reponses[i][1]) - graphe[i].ylabel(reponses[i][2]) - graphe[i].title(reponses[i][0]+' ' + txt_iter) - graphe[i].plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental')) - if interactif: - graphe[i]('pause 5') - else: - if fichier: - if INFO>=2: UTMESS('I','MACR_RECAL',"Trace des courbes dans le fichier " + fichier + '_' + str(i) + '.ps' ) - graphe[i].hardcopy(fichier + '_' + str(i) + '.ps', enhanced=1, color=1) - - impr.xlabel(reponses[i][1]) - impr.ylabel(reponses[i][2]) - impr.title(reponses[i][0]+' Iteration '+str(iter)) - impr.plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental')) - - except Exception, err: - UTMESS('A','MACR_RECAL',"Probleme lors de l'affichage des courbes. On ignore et on continue. Erreur :\n" + str(err) ) - diff --git a/Aster/Cata/cataSTA8/Macro/recal.py b/Aster/Cata/cataSTA8/Macro/recal.py deleted file mode 100644 index 684df91c..00000000 --- a/Aster/Cata/cataSTA8/Macro/recal.py +++ /dev/null @@ -1,358 +0,0 @@ -#@ MODIF recal Macro DATE 29/08/2006 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - - -import string, copy, Numeric, types -import Cata -from Cata.cata import INCLUDE, DETRUIRE - - -#_____________________________________________ -# -# DIVERS UTILITAIRES POUR LA MACRO -#_____________________________________________ - - -# Transforme les données entrées par l'utilisateur en tableau Numeric -def transforme_list_Num(parametres,res_exp): - dim_para = len(parametres) #donne le nb de parametres - val_para = Numeric.zeros(dim_para,Numeric.Float) - borne_inf = Numeric.zeros(dim_para,Numeric.Float) - borne_sup = Numeric.zeros(dim_para,Numeric.Float) - para = [] - for i in range(dim_para): - para.append(parametres[i][0]) - val_para[i] = parametres[i][1] - borne_inf[i] = parametres[i][2] - borne_sup[i] = parametres[i][3] - return para,val_para,borne_inf,borne_sup - -def mes_concepts(list_concepts=[],base=None): - # Fonction qui liste les concepts créés - for e in base.etapes: - if e.nom in ('INCLUDE','MACR_RECAL',) : - list_concepts=list(mes_concepts(list_concepts=list_concepts,base=e)) - elif (e.sd != None) and (e.parent.nom=='INCLUDE') : - nom_concept=e.sd.get_name() - if not(nom_concept in list_concepts): - list_concepts.append( nom_concept ) - return tuple(list_concepts) - - -def detr_concepts(self): - liste_concepts=mes_concepts(base=self.parent) - for e in liste_concepts: - nom = string.strip(e) - DETRUIRE( CONCEPT =self.g_context['_F'](NOM = nom),INFO=1) - if self.jdc.g_context.has_key(nom) : del self.jdc.g_context[nom] - del(liste_concepts) - - -def calcul_F(self,UL,para,val,reponses): - fic = open('fort.'+str(UL),'r') - #On stocke le contenu de fort.UL dans la variable fichier qui est un string - fichier=fic.read() - #On stocke le contenu initial de fort.UL dans la variable fichiersauv - fichiersauv=copy.copy(fichier) - fic.close() - - #Fichier_Resu est une liste ou l'on va stocker le fichier modifié - #idée générale :on délimite des 'blocs' dans fichier - #on modifie ou non ces blocs suivant les besoins - #on ajoute ces blocs dans la liste Fichier_Resu - Fichier_Resu=[] - - try: - #cherche l'indice de DEBUT() - index_deb=string.index(fichier,'DEBUT(') - while( fichier[index_deb]!='\n'): - index_deb=index_deb+1 - #on restreind fichier en enlevant 'DEBUT();' - fichier = fichier[index_deb+1:] - except : - #on va dans l'except si on a modifié le fichier au moins une fois - pass - - try: - #cherche l'indice de FIN() - index_fin = string.index(fichier,'FIN(') - #on restreind fichier en enlevant 'FIN();' - fichier = fichier[:index_fin] - except : pass - #-------------------------------------------------------------------------------- - #on cherche à délimiter le bloc des parametres dans le fichier - #Tout d'abord on cherche les indices d'apparition des paras dans le fichier - #en effet l'utilisateur n'est pas obligé de rentrer les paras dans optimise - #avec le meme ordre de son fichier de commande - index_para = Numeric.zeros(len(para)) - for i in range(len(para)): - index_para[i] = string.index(fichier,para[i]) - #On range les indices par ordre croissant afin de déterminer - #les indice_max et indice_min - index_para = Numeric.sort(index_para) - index_first_para = index_para[0] - index_last_para = index_para[len(index_para)-1] - - - #on va délimiter les blocs intermédiaires entre chaque para "utiles" à l'optimsation - bloc_inter ='\n' - for i in range(len(para)-1): - j = index_para[i] - k = index_para[i+1] - while(fichier[j]!= '\n'): - j=j+1 - bloc_inter=bloc_inter + fichier[j:k] + '\n' - - #on veut se placer sur le premier retour chariot que l'on trouve sur la ligne du dernier para - i = index_last_para - while(fichier[i] != '\n'): - i = i + 1 - index_last_para = i - #on délimite les blocs suivants: - pre_bloc = fichier[:index_first_para] #fichier avant premier parametre - post_bloc = fichier[ index_last_para+ 1:] #fichier après dernier parametre - - #on ajoute dans L tous ce qui est avant le premier paramètre - Fichier_Resu.append(pre_bloc) - Fichier_Resu.append('\n') - #On ajoute la nouvelle valeur des parametres - dim_para=len(para) - for j in range(dim_para): - Fichier_Resu.append(para[j]+'='+str(val[j]) + ';' + '\n') - #On ajoute à Fichier_Resu tous ce qui est entre les parametres - Fichier_Resu.append(bloc_inter) - - Fichier_Resu.append(post_bloc) - #-------------------------------------------------------------------------------- - #on va ajouter la fonction d'extraction du numarray de la table par la méthode Array - #et on stocke les réponses calculées dans la liste Lrep - #qui va etre retournée par la fonction calcul_F - self.g_context['Lrep'] = [] - Fichier_Resu.append('Lrep=[]'+'\n') - for i in range(len(reponses)): - Fichier_Resu.append('t'+str(reponses[i][0])+'='+str(reponses[i][0])+'.EXTR_TABLE()'+'\n') - Fichier_Resu.append('_F_ = '+'t'+str(reponses[i][0])+'.Array('+"'"+str(reponses[i][1])+"'"+','+"'"+str(reponses[i][2])+"'"+')'+'\n') - Fichier_Resu.append('Lrep.append(_F_)'+'\n') - - #ouverture du fichier fort.3 et mise a jour de celui ci - x=open('fort.'+str(UL),'w') - x.writelines('from Accas import _F \nfrom Cata.cata import * \n') - x.writelines(Fichier_Resu) - x.close() - del(Fichier_Resu) - del(pre_bloc) - del(post_bloc) - del(fichier) - - INCLUDE(UNITE = UL) - detr_concepts(self) - # on remet le fichier dans son etat initial - x=open('fort.'+str(UL),'w') - x.writelines(fichiersauv) - x.close() - return self.g_context['Lrep'] - - -#_____________________________________________ -# -# CONTROLE DES ENTREES UTILISATEUR -#_____________________________________________ - -def erreur_de_type(code_erreur,X): - #code_erreur ==0 --> X est une liste - #code erreur ==1 --> X est un char - #code erreur ==2 --> X est un float - #test est un boolean (test = 0 défaut et 1 si un test if est verifier - txt="" - if(code_erreur == 0 ): - if type(X) is not types.ListType: - txt="\nCette entrée: " +str(X)+" n'est pas une liste valide" - if(code_erreur == 1 ): - if type(X) is not types.StringType: - txt="\nCette entrée: " +str(X)+" n'est pas une chaine de caractère valide ; Veuillez la ressaisir en lui appliquant le type char de python" - if(code_erreur == 2 ): - if type(X) is not types.FloatType: - txt="\nCette entrée: " +str(X)+" n'est pas une valeur float valide ; Veuillez la ressaisir en lui appliquant le type float de python" - return txt - - -def erreur_dimension(PARAMETRES,REPONSES): -#On verifie que la dimension de chaque sous_liste de parametre est 4 -#et que la dimension de chaque sous_liste de REPONSES est 3 - txt="" - for i in range(len(PARAMETRES)): - if (len(PARAMETRES[i]) != 4): - txt=txt + "\nLa sous-liste de la variable paramètre numéro " + str(i+1)+" n'est pas de longueur 4" - for i in range(len(REPONSES)): - if (len(REPONSES[i]) != 3): - txt=txt + "\nLa sous-liste de la variable réponse numéro " + str(i+1)+" n'est pas de longueur 3" - return txt - - -def compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP): - # X et Y sont deux arguments qui doivent avoir la meme dimension - # pour éviter l'arret du programme - txt="" - if( len(REPONSES) != len(RESU_EXP)): - txt="\nVous avez entré " +str(len(REPONSES))+ " réponses et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de réponses que de résultats expérimentaux" - return txt - -def verif_RESU_EXP(RESU_EXP): - # RESU_EXP doit etre une liste de tableaux Numeric de taille Nx2 - # pour éviter l'arret du programme - txt="" - for index,resu in enumerate(RESU_EXP): - if (isinstance(resu,Numeric.ArrayType)): - if (len(Numeric.shape(resu)) != 2): - txt="\nLa courbe experimentale no " +str(index+1)+ " n'est pas un tableau de N lignes et 2 colonnes." - else: - if (Numeric.shape(resu)[1] != 2): - txt="\nLa courbe experimentale no " +str(index+1)+ " n'est pas un tableau de N lignes et 2 colonnes." - else: - txt="\nLa courbe experimentale no " +str(index+1)+ " n'est pas un tableau Numeric." - return txt - -def compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP): - # POIDS et Y sont deux arguments qui doivent avoir la meme dimension - # pour éviter l'arret du programme - txt="" - if( len(POIDS) != len(RESU_EXP)): - txt="\nVous avez entré " +str(len(POIDS))+ " poids et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de poids que de résultats expérimentaux" - return txt - - -def verif_fichier(UL,PARAMETRES,REPONSES): -#On verifie les occurences des noms des PARAMETRES et REPONSES -#dans le fichier de commande ASTER - txt="" - fichier = open('fort.'+str(UL),'r') - fic=fichier.read() - for i in range(len(PARAMETRES)): - if((string.find(fic,PARAMETRES[i][0])==-1) or ((string.find(fic,PARAMETRES[i][0]+'=')==-1) and (string.find(fic,PARAMETRES[i][0]+' ')==-1))): - txt=txt + "\nLe paramètre "+PARAMETRES[i][0]+" que vous avez entré pour la phase d'optimisation n'a pas été trouvé dans votre fichier de commandes ASTER" - for i in range(len(REPONSES)): - if((string.find(fic,REPONSES[i][0])==-1) or ((string.find(fic,REPONSES[i][0]+'=')==-1) and (string.find(fic,REPONSES[i][0]+' ')==-1))): - txt=txt + "\nLa réponse "+REPONSES[i][0]+" que vous avez entrée pour la phase d'optimisation n'a pas été trouvée dans votre fichier de commandes ASTER" - return txt - - -def verif_valeurs_des_PARAMETRES(PARAMETRES): -#On verifie que pour chaque PARAMETRES de l'optimisation -# les valeurs entrées par l'utilisateur sont telles que : -# val_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 le type et la dimension des résultats expérimentaux - texte = texte + verif_RESU_EXP(RESU_EXP) - #on verifie que l'on a autant de réponses que de résultats expérimentaux - texte = texte + compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP) - #on verifie que l'on a autant de poids que de résultats expérimentaux - texte = texte + compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP) - - #on verifie les types des arguments de chaque sous liste de PARAMETRES et REPONSES - #verification du type stringet type float des arguments de PARAMETRES - for i in range(len(PARAMETRES)): - texte = texte + erreur_de_type(1,PARAMETRES[i][0]) - for k in [1,2,3]: - texte = texte + erreur_de_type(2,PARAMETRES[i][k]) - - #verification du type string pour les arguments de REPONSES - for i in range(len(REPONSES)): - for j in range(len(REPONSES[i])): - texte = texte + erreur_de_type(1,REPONSES[i][j]) - - #verification du fichier de commndes ASTER - texte = texte + verif_fichier(UL,PARAMETRES,REPONSES) - - #verifiaction des valeurs des PARAMETRES entrées par l'utilisteur - texte = texte + verif_valeurs_des_PARAMETRES(PARAMETRES) - - #verifiaction des unités logiques renseignées par l'utilisateur - texte = texte + verif_UNITE(GRAPHIQUE,UNITE_RESU) - - return texte - - diff --git a/Aster/Cata/cataSTA8/Macro/simu_point_mat_ops.py b/Aster/Cata/cataSTA8/Macro/simu_point_mat_ops.py deleted file mode 100644 index 54873925..00000000 --- a/Aster/Cata/cataSTA8/Macro/simu_point_mat_ops.py +++ /dev/null @@ -1,327 +0,0 @@ -#@ MODIF simu_point_mat_ops Macro DATE 10/10/2006 AUTEUR REZETTE C.REZETTE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def simu_point_mat_ops(self, COMP_INCR, MATER, INCREMENT, NEWTON,CONVERGENCE, - SUIVI_DDL,SIGM_IMPOSE,EPSI_IMPOSE, INFO, **args) : - - """Simulation de la reponse d'un point materiel""" - - ier = 0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - DEFI_FONCTION = self.get_cmd('DEFI_FONCTION') - LIRE_MAILLAGE = self.get_cmd('LIRE_MAILLAGE') - AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU') - AFFE_MODELE = self.get_cmd('AFFE_MODELE') - AFFE_CHAR_MECA = self.get_cmd('AFFE_CHAR_MECA') - STAT_NON_LINE = self.get_cmd('STAT_NON_LINE') - STAT_NON_LINE = self.get_cmd('STAT_NON_LINE') - POST_RELEVE_T = self.get_cmd('POST_RELEVE_T') - CALC_TABLE = self.get_cmd('CALC_TABLE') - CALC_ELEM = self.get_cmd('CALC_ELEM') - - from Accas import _F - from Utilitai.UniteAster import UniteAster - - -# -- Tests de cohérence - __fonczero = DEFI_FONCTION(NOM_PARA = 'INST', - VALE = ( 0,0, 10,0 ),PROL_DROITE='CONSTANT',PROL_GAUCHE='CONSTANT') - - EPS={} - SIG={} - - CMP_EPS=['EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'] - CMP_SIG=['SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'] - - if SIGM_IMPOSE: - SIG=SIGM_IMPOSE[0].cree_dict_valeurs(SIGM_IMPOSE[0].mc_liste) - for i in SIG.keys(): - if SIG[i]==None : SIG[i]=__fonczero - else: - for i in range(6): - SIG[CMP_SIG[i]]=__fonczero - - if EPSI_IMPOSE: - EPS=EPSI_IMPOSE[0].cree_dict_valeurs(EPSI_IMPOSE[0].mc_liste) -# for i in EPS.keys(): -# if EPS[i]==None : EPS[i]=__fonczero - else: - for i in range(6): - EPS[CMP_EPS[i]]=None - - for index in range(6): - iks=CMP_SIG[index] - ike=CMP_EPS[index] - if EPS[ike]!=None and SIG[iks] != __fonczero : - raise ' un seul parmi :' + str(iks) +' '+ str(ike) - -# print 'EPS=',EPS -# print 'SIG=',SIG -# -- Definition du maillage - - texte_ma = """ - COOR_3D - P0 0.0 0.0 0.0 - P1 1.0 0.0 0.0 - P2 0.0 1.0 0.0 - P3 0.0 0.0 1.0 - FINSF - TRIA3 - F1 P0 P3 P2 - F2 P0 P1 P3 - F3 P0 P2 P1 - F4 P1 P2 P3 - FINSF - TETRA4 - VOLUME = P0 P1 P2 P3 - FINSF - FIN - """ - UL = UniteAster() - umail = UL.Libre(action='ASSOCIER', nom='simu.mail' ) - - fi_mail = open('simu.mail','w') - fi_mail.write(texte_ma) - fi_mail.close() - - __MA = LIRE_MAILLAGE(UNITE=umail) - UL.EtatInit() - - -# -- Materiau et modele - - __CHMAT = AFFE_MATERIAU( - MAILLAGE = __MA, - AFFE = _F( - MAILLE = 'VOLUME', - MATER = MATER - ) - ) - - - __MO = AFFE_MODELE( - MAILLAGE = __MA, - AFFE = _F( - MAILLE = ('VOLUME','F1','F2','F3','F4'), - PHENOMENE = 'MECANIQUE', - MODELISATION = '3D' - ) - ) - - -# -- Mouvement de corps rigide - - __C_RIGIDE = AFFE_CHAR_MECA( - MODELE = __MO, - DDL_IMPO = _F(NOEUD = 'P0',DX = 0,DY = 0,DZ = 0), - LIAISON_DDL = ( - _F(NOEUD=('P2','P1'),DDL=('DX','DY'),COEF_MULT=(1,-1),COEF_IMPO=0), - _F(NOEUD=('P3','P1'),DDL=('DX','DZ'),COEF_MULT=(1,-1),COEF_IMPO=0), - _F(NOEUD=('P3','P2'),DDL=('DY','DZ'),COEF_MULT=(1,-1),COEF_IMPO=0), - ) - ) - -# -- Chargement en deformation - - __E = [None]*6 - - __E[0] = AFFE_CHAR_MECA( - MODELE = __MO, - DDL_IMPO = _F(NOEUD='P1', DX=1) - ) - - __E[1] = AFFE_CHAR_MECA( - MODELE = __MO, - DDL_IMPO = _F(NOEUD='P2', DY=1) - ) - - __E[2] = AFFE_CHAR_MECA( - MODELE = __MO, - DDL_IMPO = _F(NOEUD='P3', DZ=1) - ) - - __E[3] = AFFE_CHAR_MECA( - MODELE = __MO, - DDL_IMPO = _F(NOEUD='P1', DY=1) - ) - - __E[4] = AFFE_CHAR_MECA( - MODELE = __MO, - DDL_IMPO = _F(NOEUD='P1', DZ=1) - ) - - __E[5] = AFFE_CHAR_MECA( - MODELE = __MO, - DDL_IMPO = _F(NOEUD='P2', DZ=1) - ) - - -# -- Chargement en contrainte - - __S = [None]*6 - - r33 = 3**-0.5 - - __S[0] = AFFE_CHAR_MECA( - MODELE = __MO, - FORCE_FACE = ( - _F(MAILLE='F1', FX=-1), - _F(MAILLE='F4', FX= r33), - ) - ) - - __S[1] = AFFE_CHAR_MECA( - MODELE = __MO, - FORCE_FACE = ( - _F(MAILLE='F2', FY=-1), - _F(MAILLE='F4', FY= r33), - ) - ) - - __S[2] = AFFE_CHAR_MECA( - MODELE = __MO, - FORCE_FACE = ( - _F(MAILLE='F3', FZ=-1), - _F(MAILLE='F4', FZ= r33), - ) - ) - - __S[3] = AFFE_CHAR_MECA( - MODELE = __MO, - FORCE_FACE = ( - _F(MAILLE='F1', FY=-1), - _F(MAILLE='F2', FX=-1), - _F(MAILLE='F4', FX= r33, FY=r33), - ) - ) - - __S[4] = AFFE_CHAR_MECA( - MODELE = __MO, - FORCE_FACE = ( - _F(MAILLE='F1', FZ=-1), - _F(MAILLE='F3', FX=-1), - _F(MAILLE='F4', FX= r33, FZ=r33), - ) - ) - - __S[5] = AFFE_CHAR_MECA( - MODELE = __MO, - FORCE_FACE = ( - _F(MAILLE='F2', FZ=-1), - _F(MAILLE='F3', FY=-1), - _F(MAILLE='F4', FY= r33, FZ=r33), - ) - ) - - -# -- Construction de la charge - - l_char = [ _F(CHARGE=__C_RIGIDE) ] - - for i in xrange(6) : - ike=CMP_EPS[i] - if EPS[ike]: - l_char.append( _F(CHARGE=__E[i],FONC_MULT=EPS[ike]) ) - - for i in xrange(6) : - iks=CMP_SIG[i] - l_char.append( _F(CHARGE=__S[i],FONC_MULT=SIG[iks]) ) - -# -- Deroulement du calcul - motscles={} - motscles['COMP_INCR'] = COMP_INCR.List_F() - motscles['CONVERGENCE'] = CONVERGENCE.List_F() - motscles['NEWTON'] = NEWTON.List_F() - motscles['INCREMENT'] = INCREMENT.List_F() - - if SUIVI_DDL : - motscles['SUIVI_DDL'] = SUIVI_DDL.List_F() - - - __EVOL = STAT_NON_LINE( - MODELE = __MO, - CHAM_MATER = __CHMAT, - EXCIT = l_char, - ARCHIVAGE = _F(ARCH_ETAT_INIT = 'OUI'),**motscles) - - - __EVOL = CALC_ELEM(reuse = __EVOL, - RESULTAT = __EVOL, - OPTION = ('SIEF_ELNO_ELGA','EPSI_ELNO_DEPL','VARI_ELNO_ELGA') - ) - - -# -- Recuperation des courbes - - __REP_VARI = POST_RELEVE_T( - ACTION = ( - _F( - INTITULE = 'VARI_INT', - RESULTAT = __EVOL, - NOM_CHAM = 'VARI_ELNO_ELGA', - TOUT_CMP = 'OUI', - OPERATION = 'EXTRACTION', - NOEUD = 'P0' - ), - ) - ) - - - __REP_EPSI = POST_RELEVE_T( - ACTION = ( - _F( - INTITULE = 'EPSILON', - RESULTAT = __EVOL, - NOM_CHAM = 'EPSI_ELNO_DEPL', - TOUT_CMP = 'OUI', - OPERATION = 'EXTRACTION', - NOEUD = 'P0' - ), - ) - ) - - __REP_SIGM = POST_RELEVE_T( - ACTION = ( - _F( - INTITULE = 'SIGMA', - RESULTAT = __EVOL, - NOM_CHAM = 'SIEF_ELNO_ELGA', - TOUT_CMP = 'OUI', - OPERATION = 'EXTRACTION', - NOEUD = 'P0' - ), - ) - ) - self.DeclareOut('REPONSE',self.sd) - REPONSE=CALC_TABLE( TABLE=__REP_EPSI, - ACTION=_F(OPERATION='COMB',TABLE=__REP_SIGM,NOM_PARA=('INST'), ) ) - - REPONSE=CALC_TABLE(reuse=REPONSE, TABLE=REPONSE, - ACTION=_F(OPERATION='COMB',TABLE=__REP_VARI,NOM_PARA=('INST'), ) ) - - - return ier - - - - diff --git a/Aster/Cata/cataSTA8/Macro/stanley_ops.py b/Aster/Cata/cataSTA8/Macro/stanley_ops.py deleted file mode 100644 index 761b45fb..00000000 --- a/Aster/Cata/cataSTA8/Macro/stanley_ops.py +++ /dev/null @@ -1,89 +0,0 @@ -#@ MODIF stanley_ops Macro DATE 12/09/2006 AUTEUR ASSIRE A.ASSIRE -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - - - -def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,DISPLAY,**args): - - """ - Importation et lancement de Stanley - """ - - import os,string - import aster - from Accas import _F - from Noyau.N_utils import AsType - from Utilitai.Utmess import UTMESS - from Utilitai.UniteAster import UniteAster - - prev_onFatalError = aster.onFatalError() - aster.onFatalError('EXCEPTION') - - ier=0 - - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # Redefinition eventuelle du DISPLAY - if DISPLAY: - UTMESS('I','STANLEY', 'Redefinition du DISPLAY vers : ' + DISPLAY) - os.environ['DISPLAY'] = DISPLAY - - # Mode validation de la non-regression - if args['UNITE_VALIDATION']: - UTMESS('I','STANLEY', 'Stanley fonctionne en mode validation de non-regresion') - UL = UniteAster() - FICHIER_VALID=UL.Nom(args['UNITE_VALIDATION']) - else: - FICHIER_VALID=None - - # On ne lance Stanley que si la variable DISPLAY est définie - if os.environ.has_key('DISPLAY'): - - import Stanley - from Stanley import stanley - - if (RESULTAT and MODELE and CHAM_MATER): - _MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE .NOMA ' ) - _MAIL = string.strip(_MAIL[0]) - MAILLAGE = self.jdc.g_context[_MAIL] - if CARA_ELEM: - stanley.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM) - else: - stanley.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,None) - else: - stanley.PRE_STANLEY(FICHIER_VALID) - - else: - UTMESS('A','STANLEY', - """Aucune variable d'environnement DISPLAY définie ! - STANLEY ne pourra pas fonctionner. On l'ignore. - - Si vous etes en Interactif, cochez le bouton Suivi Interactif - dans ASTK. - - Vous pouvez également préciser votre DISPLAY dans les arguments - de la commande STANLEY : - - STANLEY(DISPLAY='adresse_ip:0.0');""") - - aster.onFatalError(prev_onFatalError) - - return ier diff --git a/Aster/Cata/cataSTA8/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA8/Macro/test_fichier_ops.py deleted file mode 100644 index 35d34da1..00000000 --- a/Aster/Cata/cataSTA8/Macro/test_fichier_ops.py +++ /dev/null @@ -1,277 +0,0 @@ -#@ MODIF test_fichier_ops Macro DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS -# -*- coding: iso-8859-1 -*- -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -import sys -import os.path -import re -from math import floor, log10 -from types import StringType -import md5 - -#------------------------------------------------------------------------------- -def test_fichier_ops(self, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **args): - """ - Macro TEST_FICHIER permettant de tester la non-regression d'un fichier - 'a une tolerance' pres pour les nombres reels en calculant - le md5sum. - """ - ier = 0 - # La macro compte pour 1 dans la numerotation des commandes - self.set_icmd(1) - - # On importe les definitions des commandes a utiliser dans la macro - # Le nom de la variable doit etre obligatoirement le nom de la commande - INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER') - DETRUIRE = self.get_cmd('DETRUIRE') - CREA_TABLE = self.get_cmd('CREA_TABLE') - TEST_TABLE = self.get_cmd('TEST_TABLE') - - import aster - from Accas import _F - from Macro.test_fichier_ops import md5file - from Utilitai.Utmess import UTMESS - - # vérifie la syntaxe des expressions régulières fournies - l_regexp = [] - if args['EXPR_IGNORE']: - if type(args['EXPR_IGNORE']) is StringType: - lexp = [args['EXPR_IGNORE']] - else: - lexp = args['EXPR_IGNORE'] - for exp in lexp: - try: - obj = re.compile(exp) - except re.error, s: - UTMESS('F', 'TEST_FICHIER', - ' %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)) - - 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/cataSTA8/__init__.py b/Aster/Cata/cataSTA8/__init__.py deleted file mode 100644 index b9a4d6df..00000000 --- a/Aster/Cata/cataSTA8/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -import os,sys -sys.modules["Cata"]=sys.modules[__name__] -rep_macro = os.path.dirname(__file__) -sys.path.insert(0,rep_macro) -rep_macro=os.path.join(rep_macro,'Macro') -sys.path.insert(0,rep_macro) - - -#compatibilite avec V9 -import Noyau -import Accas -class ASSD(Accas.ASSD,Noyau.AsBase):pass -class GEOM(Accas.GEOM,ASSD):pass -class formule(Accas.formule,ASSD):pass -Accas.ASSD=ASSD -Accas.GEOM=GEOM -Accas.formule=formule -#fin compatibilite - -from cata import * -from math import ceil -from Extensions import param2 -pi=param2.Variable('pi',pi) diff --git a/Aster/Cata/cataSTA8/cata.py b/Aster/Cata/cataSTA8/cata.py deleted file mode 100755 index e2654e5b..00000000 --- a/Aster/Cata/cataSTA8/cata.py +++ /dev/null @@ -1,24244 +0,0 @@ -#& MODIF ENTETE DATE 07/05/2008 AUTEUR MACOCCO K.MACOCCO -# -*- 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 os -import Accas -from Accas import * -from Accas import _F -import string -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 - -try: - import aster -except: - pass - -__version__="$Name: V6_main $" - -EnumTypes = (ListType, TupleType) - -# ----------------------------------------------------------------------------- -JdC = JDC_CATA(code='ASTER', - execmodul=None, - regles = (AU_MOINS_UN('DEBUT','POURSUITE'), - AU_MOINS_UN('FIN'), - A_CLASSER(('DEBUT','POURSUITE'),'FIN'))) -# Type le plus general -class entier (ASSD): - def __init__(self,valeur=None,**args): - ASSD.__init__(self,**args) - self.valeur=valeur - - def __adapt__(self,validator): - if validator.name == "list": - #validateur liste,cardinalité - return (self,) - elif validator.name == "type": - #validateur type - return validator.adapt(self.valeur or 0) - else: - #validateur into et valid - return self - -class reel(ASSD): - def __init__(self,valeur=None,**args): - ASSD.__init__(self,**args) - self.valeur=valeur - - def __call__(self): - return self.valeur - - def __adapt__(self,validator): - if validator.name == "list": - #validateur liste,cardinalité - return (self,) - elif validator.name == "type": - #validateur type - return validator.adapt(self.valeur or 0.) - else: - #validateur into et valid - return self - - -# ----------------------------------------------------------------------------- -# Type geometriques -class no (GEOM):pass -class grno(GEOM):pass -class ma (GEOM):pass -class grma(GEOM):pass - -# ----------------------------------------------------------------------------- -# 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 melasflu_sdaster(ASSD):pass -class nume_ddl_sdaster(ASSD):pass -class nume_ddl_gene (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""" - if self.par_lot(): - raise Accas.AsException("Erreur dans modele_gene.LIST_SOUS_STRUCT en PAR_LOT='OUI'") - nommodgen=self.get_name() - ncham=nommodgen+(8-len(nommodgen))*' ' - ssno=aster.getvectjev(ncham+(14-len(ncham))*' '+'.MODG.SSNO') - ssme=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.SSME') - return [([ssno[ind], ssme[ind+1]]) for ind in range(len(ssno))] - def LIST_LIAIS_STRUCT(self) : - """ retourne la liste des liaisons entre sous structures du modele generalise sous la forme : - [ (ss1, nom_liais1, ss2 , nom_liais2), ...] """ - if self.par_lot() : - raise Accas.AsException("Erreur dans modele_gene.LIST_LIAIS_STRUCT en PAR_LOT='OUI'") - nommodgen=self.get_name() - ncham=nommodgen+(8-len(nommodgen))*' ' - lidf=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.LIDF') - return [([(lidf[ind][indb]) for indb in range(4)]) for ind in lidf] - - -# ----------------------------------------------------------------------------- -# 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 type(nompar) in EnumTypes: - nompar = [nompar,] - if not type(valpar) in EnumTypes: - valpar = [valpar,] - if not type(nomres) in EnumTypes: - nomres = [nomres,] - nompar = tuple(nompar) - valpar = tuple(valpar) - nomres = tuple(nomres) - if len(nompar) != len(valpar): - UTMESS('F', 'RCVALE', """Arguments incohérents : - Nom des paramètres : %s - Valeur des paramètres : %s""" \ - % (', '.join(nompar), ', '.join([repr(v) for v in valpar]))) - if len(nomres) < 1: - UTMESS('F', 'RCVALE', 'Argument invalide : "nomres" vide !') - # appel à l'interface Python/C - return aster.rcvale(self.nom, phenomene, nompar, valpar, nomres, stop) - -# ----------------------------------------------------------------------------- -# 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+'_REFE')[0] - nbmode=Numeric.array(aster.getvectjev(nombase[0:8]+(19-len(nombase[0:8]))*' '+'.UTIL')) - nbmodtot=nbmode[1] - nbmoddyn=nbmode[2] - nbmodint=nbmode[3] - return [nbmodtot,nbmoddyn,nbmodint] - - def EXTR_MATR_GENE(self,typmat) : - """ retourne les valeurs des matrices generalisees reelles - dans un format Numerical Array - typmat='MASS_GENE' pour obtenir la matrice de masse generalisee - typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee - typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee - Attributs retourne - - self.valeurs : Numeric.array contenant les valeurs """ - if self.par_lot() : - raise Accas.AsException("Erreur dans macr_elem_dyna.EXTR_MATR_GENE en PAR_LOT='OUI'") - - nommacr=self.get_name() - if (typmat=='MASS_GENE') : - ext='.MAEL_MASS' - elif (typmat=='RIGI_GENE') : - ext='.MAEL_RAID' - elif (typmat=='AMOR_GENE') : - ext='.MAEL_AMOR' - else: - raise Accas.AsException("Le type de la matrice est incorrect") - ncham=nommacr+(8-len(nommacr))*' '+ext - desc=Numeric.array(aster.getvectjev(ncham+'_DESC')) - - # On teste si le DESC du vecteur existe - if (desc==None): - raise Accas.AsException("L'objet matrice n'existe pas ou \ - est mal cree par Code Aster") - - tmp=Numeric.array(aster.getvectjev(ncham+'_VALE')) - matrice=Numeric.zeros([desc[1],desc[1]],Numeric.Float) - for j in range(desc[1]+1): - for i in range(j): - k=j*(j-1)/2+i - matrice[j-1,i]=tmp[k] - matrice=(matrice+Numeric.transpose(matrice)) - for i in range(desc[1]): - matrice[i,i]=0.5*matrice[i,i] - return matrice - - def RECU_MATR_GENE(self,typmat,matrice) : - """ envoie les valeurs d'un Numerical Array dans des matrices generalisees - reelles definies dans jeveux - typmat='MASS_GENE' pour obtenir la matrice de masse generalisee - typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee - typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee - Attributs ne retourne rien """ - if self.par_lot() : - raise Accas.AsException("Erreur dans macr_elem_dyna.RECU_MATR_GENE en PAR_LOT='OUI'") - from Utilitai.Utmess import UTMESS - - # avertissement generique - UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') - - nommacr=self.get_name() - if (typmat=='MASS_GENE') : - ext='.MAEL_MASS' - elif (typmat=='RIGI_GENE') : - ext='.MAEL_RAID' - elif (typmat=='AMOR_GENE') : - ext='.MAEL_AMOR' - else: - raise Accas.AsException("Le type de la matrice \ - est incorrect") - ncham=nommacr+(8-len(nommacr))*' '+ext - desc=Numeric.array(aster.getvectjev(ncham+'_DESC')) - - # On teste si le DESC de la matrice jeveux existe - if (desc==None): - raise Accas.AsException("L'objet matrice n'existe pas ou \ - est mal cree par Code Aster") - Numeric.asarray(matrice) - - # On teste si la matrice python est de dimension 2 - if (len(Numeric.shape(matrice))<>2): - raise Accas.AsException("La dimension de la matrice \ - est incorrecte") - - # On teste si les tailles de la matrice jeveux et python sont identiques - if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) : - raise Accas.AsException("La dimension de la matrice \ - est incorrecte") - taille=desc[1]*desc[1]/2.0+desc[1]/2.0 - tmp=Numeric.zeros([int(taille)],Numeric.Float) - for j in range(desc[1]+1): - for i in range(j): - k=j*(j-1)/2+i - tmp[k]=matrice[j-1,i] - aster.putvectjev(ncham+'_VALE',len(tmp),tuple(( - range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) - return - -class macr_elem_stat (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() - 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 - 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 - - -# ----------------------------------------------------------------------------- -# champ_gd/carte -class cham_gd_sdaster(ASSD):pass -class carte_sdaster (cham_gd_sdaster):pass - -# ----------------------------------------------------------------------------- -# 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 - 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) - -# ----------------------------------------------------------------------------- -# 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) - -# ----------------------------------------------------------------------------- -# 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 -class dyna_harmo (resultat_sdaster):pass -class dyna_trans (resultat_sdaster):pass -class fourier_elas (resultat_sdaster):pass -class fourier_ther (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' } - 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'], - 'NOM_RESU' : self.etape['NOM_RESU'], - 'PROL_DROITE' : self.etape['PROL_DROITE'], - 'PROL_GAUCHE' : self.etape['PROL_GAUCHE'], - } - if type(dico['INTERPOL'])==TupleType : - dico['INTERPOL']=list(dico['INTERPOL']) - elif type(dico['INTERPOL'])==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']], - Leg=os.linesep.join(self.TITR.get()) ) - 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 not self.par_lot(): - vale = '%-19s.VALE' % self.get_name() - lbl = aster.getvectjev(vale) - if lbl == None: - UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % vale) - lbl = list(lbl) - dim = len(lbl)/2 - lx = lbl[0:dim] - ly = lbl[dim:2*dim] - elif hasattr(self, 'etape') and self.etape.nom == 'DEFI_FONCTION' : - if self.etape['VALE'] != None: - lbl = list(self.etape['VALE']) - dim = len(lbl) - lx = [lbl[i] for i in range(0,dim,2)] - ly = [lbl[i] for i in range(1,dim,2)] - elif self.etape['VALE_PARA']!=None: - lx = self.etape['VALE_PARA'].Valeurs() - ly = self.etape['VALE_FONC'].Valeurs() - else: - raise Accas.AsException("Erreur (fonction.Valeurs) : ne fonctionne en " \ - "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \ - "dans le jdc courant.") - return [lx, ly] - def Absc(self): - """Retourne la liste des abscisses""" - return self.Valeurs()[0] - def Ordo(self): - """Retourne la liste des ordonnées""" - return self.Valeurs()[1] - def __call__(self,val): - ### Pour EFICAS : substitution de l'instance de classe - ### parametre par sa valeur - if 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(), - 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 not self.par_lot(): - vale = '%-19s.VALE' % self.get_name() - lbl = aster.getvectjev(vale) - if lbl == None: - UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % vale) - lbl = list(lbl) - dim=len(lbl)/3 - lx=lbl[0:dim] - lr=[] - li=[] - for i in range(dim): - lr.append(lbl[dim+2*i]) - li.append(lbl[dim+2*i+1]) - elif hasattr(self, 'etape') and self.etape.nom == 'DEFI_FONCTION': - lbl=list(self.etape['VALE_C']) - dim=len(lbl) - lx=[lbl[i] for i in range(0,dim,3)] - lr=[lbl[i] for i in range(1,dim,3)] - li=[lbl[i] for i in range(2,dim,3)] - else: - raise Accas.AsException("Erreur (fonction_c.Valeurs) : ne fonctionne en " \ - "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \ - "dans le jdc courant.") - return [lx, lr, li] - def Absc(self): - """Retourne la liste des abscisses""" - return self.Valeurs()[0] - def Ordo(self): - """Retourne la liste des parties réelles des ordonnées""" - return self.Valeurs()[1] - def OrdoImg(self): - """Retourne la liste des parties imaginaires des ordonnées""" - return self.Valeurs()[2] - def Trace(self,FORMAT='TABLEAU',**kargs): - """Tracé d'une fonction complexe""" - if self.par_lot() : - raise Accas.AsException("Erreur dans fonction_c.Trace en PAR_LOT='OUI'") - from Utilitai.Graph import Graph - para = self.Parametres() - gr=Graph() - gr.AjoutCourbe(Val=self.Valeurs(), - Lab=[para['NOM_PARA'], '%s_R' % para['NOM_RESU'], '%s_I' % para['NOM_RESU']], - Leg=os.linesep.join(self.TITR.get()) ) - gr.Trace(FORMAT=FORMAT,**kargs) - def __call__(self,val): - ### Pour EFICAS : substitution de l'instance de classe - ### parametre par sa 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=[] - 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. - """ - if self.par_lot(): - raise Accas.AsException("Erreur dans nappe.Valeurs en PAR_LOT='OUI'") - nsd = '%-19s' % self.get_name() - dicv=aster.getcolljev(nsd+'.VALE') - # les cles de dicv sont 1,...,N (indice du parametre) - lpar=aster.getvectjev(nsd+'.PARA') - if lpar == None: - UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % (nsd+'.PARA')) - lval=[] - for k in range(len(dicv)): - lbl=dicv[k+1] - dim=len(lbl)/2 - lval.append([lbl[0:dim],lbl[dim:2*dim]]) - return [list(lpar),lval] - def Parametres(self): - """ - Retourne un dictionnaire contenant les parametres de la nappe, - le type jeveux (NAPPE) n'est pas retourne, - le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel, - et une liste de dictionnaire des parametres de chaque fonction. - """ - if self.par_lot(): - raise Accas.AsException("Erreur dans nappe.Parametres en PAR_LOT='OUI'") - TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } - objev = '%-19s.PROL' % self.get_name() - prol=aster.getvectjev(objev) - if prol == None: - UTMESS('F', 'fonction.Parametres', "Objet '%s' inexistant" % objev) - dico={ - 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], - 'NOM_PARA' : 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""" - 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']], - Leg=os.linesep.join(self.TITR.get()) ) - 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 """ - if self.par_lot(): - raise Accas.AsException("Erreur dans matr_asse_gene.EXTR_MATR_GENE en PAR_LOT='OUI'") - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) - # On teste si le DESC de la matrice existe - if (desc==None): - raise Accas.AsException("L'objet matrice n'existe pas ou \ - est mal cree par Code Aster") - # Si le stockage est plein - if desc[2]==2 : - tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1]) - valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Float) - for j in range(desc[1]+1): - for i in range(j): - k=j*(j-1)/2+i - valeur[j-1,i]=tmp[k] - valeur=(valeur+Numeric.transpose(valeur)) - for i in range(desc[1]): - valeur[i,i]=0.5*valeur[i,i] - # Si le stockage est diagonal - elif desc[2]==1 : - tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1]) - valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Float) - for i in range(desc[1]): - valeur[i,i]=tmp[i] - # Sinon on arrete tout - else: - raise KeyError - return valeur - - def RECU_MATR_GENE(self,matrice) : - """ envoie les valeurs d'un Numerical Array dans des matrices - generalisees reelles definies dans jeveux - Attributs ne retourne rien """ - if self.par_lot(): - raise Accas.AsException("Erreur dans matr_asse_gene.RECU_MATR_GENE en PAR_LOT='OUI'") - from Utilitai.Utmess import UTMESS - - # avertissement generique - UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) - - # On teste si le DESC de la matrice existe - if (desc==None): - raise Accas.AsException("L'objet matrice n'existe pas ou \ - est mal cree par Code Aster") - Numeric.asarray(matrice) - - # On teste si la dimension de la matrice python est 2 - if (len(Numeric.shape(matrice))<>2) : - raise Accas.AsException("La dimension de la matrice est incorrecte ") - - # On teste si les tailles des matrices jeveux et python sont identiques - if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) : - raise Accas.AsException("La taille de la matrice est incorrecte ") - - # Si le stockage est plein - if desc[2]==2 : - taille=desc[1]*desc[1]/2.0+desc[1]/2.0 - tmp=Numeric.zeros([int(taille)],Numeric.Float) - for j in range(desc[1]+1): - for i in range(j): - k=j*(j-1)/2+i - tmp[k]=matrice[j-1,i] - aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALM',len(tmp),tuple((\ - range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) - # Si le stockage est diagonal - elif desc[2]==1 : - tmp=Numeric.zeros(desc[1],Numeric.Float) - for j in range(desc[1]): - tmp[j]=matrice[j,j] - aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALM',len(tmp),tuple((\ - range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1) - # Sinon on arrete tout - else: - raise KeyError - return - - -class matr_asse_gene_c(matr_asse_gene): - def EXTR_MATR_GENE(self) : - """ retourne les valeurs de la matrice generalisee complexe - dans un format Numerical Array - Attributs retourne - - self.valeurs : Numeric.array contenant les valeurs """ - if self.par_lot(): - raise Accas.AsException("Erreur dans matr_asse_gene_c.EXTR_MATR_GENE en PAR_LOT='OUI'") - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) - if (desc==None): - raise Accas.AsException("L'objet matrice n'existe pas ou \ - est mal cree par Code Aster ") - # Si le stockage est plein - if desc[2]==2 : - tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1]) - valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Complex) - for j in range(desc[1]+1): - for i in range(j): - k=j*(j-1)/2+i - valeur[j-1,i]=tmp[k] - valeur=(valeur+Numeric.transpose(valeur)) - for i in range(desc[1]): - valeur[i,i]=0.5*valeur[i,i] - # Si le stockage est diagonal - elif desc[2]==1 : - tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1]) - valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Complex) - for i in range(desc[1]): - valeur[i,i]=tmp[i] - # Sinon on arrete tout - else: - raise KeyError - return valeur - - def RECU_MATR_GENE(self,matrice) : - """ envoie les valeurs d'un Numerical Array dans des matrices - generalisees reelles definies dans jeveux - Attributs ne retourne rien """ - if self.par_lot(): - raise Accas.AsException("Erreur dans matr_asse_gene_c.RECU_MATR_GENE en PAR_LOT='OUI'") - from Utilitai.Utmess import UTMESS - - # avertissement generique - UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') - - Numeric.asarray(matrice) - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) - - # On teste si le DESC de la matrice existe - if (desc==None): - raise Accas.AsException("L'objet matrice n'existe pas ou \ - est mal cree par Code Aster") - Numeric.asarray(matrice) - - # On teste si la dimension de la matrice python est 2 - if (len(Numeric.shape(matrice))<>2) : - raise Accas.AsException("La dimension de la matrice est incorrecte ") - - # On teste si la taille de la matrice jeveux et python est identique - if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) : - raise Accas.AsException("La taille de la matrice est incorrecte ") - - # Si le stockage est plein - if desc[2]==2 : - taille=desc[1]*desc[1]/2.0+desc[1]/2.0 - tmpr=Numeric.zeros([int(taille)],Numeric.Float) - tmpc=Numeric.zeros([int(taille)],Numeric.Float) - for j in range(desc[1]+1): - for i in range(j): - k=j*(j-1)/2+i - tmpr[k]=matrice[j-1,i].real - tmpc[k]=matrice[j-1,i].imag - aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALM',len(tmpr),tuple((\ - range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) - # Si le stockage est diagonal - elif desc[2]==1 : - tmpr=Numeric.zeros(desc[1],Numeric.Float) - tmpc=Numeric.zeros(desc[1],Numeric.Float) - for j in range(desc[1]): - tmpr[j]=matrice[j,j].real - tmpc[j]=matrice[j,j].imag - aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALM',len(tmpr),tuple((\ - range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) - # Sinon on arrete tout - else: - raise KeyError - return - -# ----------------------------------------------------------------------------- -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): - 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 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 - # 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={} - # 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) - return Table(lisdic, lpar, ltyp, titr) - -# ----------------------------------------------------------------------------- -class table_fonction(table_sdaster): - """Table contenant en plus une colonne FONCTION et/ou FONCTION_C dont les - valeurs des cellules sont des noms de fonction_sdaster ou fonction_c. - """ - -class table_jeveux(table_sdaster): - """Classe permettant d'accéder à une table jeveux qui n'a pas d'ASSD associée, - c'est le cas des concepts résultats (table, evol_xxxx) dérivés.""" - def __init__(self,nom_jeveux): - self.nom=nom_jeveux - -# ----------------------------------------------------------------------------- -# vect_asse : -class vect_asse(ASSD):pass - -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_R(self,vecteur) : - """ envoie les valeurs d'un Numerical Array dans un vecteur generalise - reel definie dans jeveux - Attributs ne retourne rien """ - if self.par_lot(): - raise Accas.AsException("Erreur dans vect_asse_gene_r.RECU_VECT_GENE en PAR_LOT='OUI'") - from Utilitai.Utmess import UTMESS - - # avertissement generique - UTMESS('A','RECU_VECT_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') - - Numeric.asarray(vecteur) - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) - # On teste si le DESC du vecteur existe - if (desc==None): - raise Accas.AsException("L'objet vecteur n'existe pas ou \ - est mal cree par Code Aster") - # On teste si la taille du vecteur jeveux et python est identique - if desc[1]<>Numeric.shape(vecteur)[0] : - raise Accas.AsException("La taille du vecteur python est incorrecte") - aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(vecteur),tuple((\ - range(1,len(vecteur)+1))),tuple(vecteur),tuple(vecteur),1) - return - - def EXTR_VECT_GENE_C(self) : - """ retourne les valeurs du vecteur generalisee - dans un format Numerical Array - Attributs retourne - - self.valeurs : Numeric.array contenant les valeurs """ - if self.par_lot(): - raise Accas.AsException("Erreur dans vect_asse_gene_c.EXTR_VECT_GENE en PAR_LOT='OUI'") - - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - valeur=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'),Numeric.Complex) - - return valeur - - def RECU_VECT_GENE_C(self,vecteur) : - """ envoie les valeurs d'un Numerical Array dans un vecteur generalise - complexe definie dans jeveux - Attributs ne retourne rien """ - if self.par_lot(): - raise Accas.AsException("Erreur dans vect_asse_gene_c.RECU_VECT_GENE en PAR_LOT='OUI'") - from Utilitai.Utmess import UTMESS - - # avertissement generique - UTMESS('A','RECU_VECT_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS') - - Numeric.asarray(vecteur) - ncham=self.get_name() - ncham=ncham+(8-len(ncham))*' ' - desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC')) - # On teste si le DESC de la matrice existe - if (desc==None): - raise Accas.AsException("L'objet vecteur n'existe pas ou \ - est mal cree par Code Aster") - # On teste si la taille de la matrice jeveux et python est identique - if desc[1]<>Numeric.shape(vecteur)[0] : - raise Accas.AsException("La taille du vecteur python est incorrecte") - tmpr=vecteur.real - tmpc=vecteur.imag - aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmpr),tuple(( - range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) - return - -# ----------------------------------------------------------------------------- -# 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/11/2006 AUTEUR MARKOVIC D.MARKOVIC -# CONFIGURATION MANAGEMENT OF EDF VERSION -# RESPONSABLE JMBHH01 J.M.PROIX -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN# - RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC", - into=( "ELAS", - "ELAS_HYPER", - "VMIS_ISOT_TRAC", - "VISC_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VISC_ISOT_LINE", - "VMIS_ISOT_PUIS", - "VMIS_ECMI_TRAC", - "VMIS_ECMI_LINE", - "LABORD_1D", - "ENDO_FRAGILE", - "ENDO_ISOT_BETON", - "ENDO_ORTH_BETON", - "BETON_REGLE_PR", - "MAZARS", - "JOINT_BA", - "RUPT_FRAG", - "CZM_EXP_REG", - "CZM_EXP", - "META_P_IL", - "META_P_IL_PT", - "META_P_IL_RE", - "META_P_IL_PT_RE", - "META_V_IL", - "META_V_IL_PT", - "META_V_IL_RE", - "META_V_IL_PT_RE", - "META_P_INL", - "META_P_INL_PT", - "META_P_INL_RE", - "META_P_INL_PT_RE", - "META_V_INL", - "META_V_INL_PT", - "META_V_INL_RE", - "META_V_INL_PT_RE", - "META_P_CL", - "META_P_CL_PT", - "META_P_CL_RE", - "META_P_CL_PT_RE", - "META_V_CL", - "META_V_CL_PT", - "META_V_CL_RE", - "META_V_CL_PT_RE", - "VMIS_CINE_LINE", - "VISC_TAHERI", - "VISCOCHAB", - "VMIS_CIN1_CHAB", - "VMIS_CIN2_CHAB", - "VISC_CIN1_CHAB", - "VISC_CIN2_CHAB", - "LMARC", - "LMARC_IRRA", - "ROUSSELIER", - "ROUSS_PR", - "ROUSS_VISC", - "VMIS_POU_LINE", - "VMIS_POU_FLEJOU", - "ARME", - "ASSE_CORN", - "NORTON_HOFF", - "LEMAITRE", - "LEMAITRE_IRRA", - "LEMA_SEUIL", - "IRRAD3M", - "ZIRC_CYRA2", - "VISC_IRRA_LOG", - "GRAN_IRRA_LOG", - "ZIRC_EPRI", - "VENDOCHAB", - "NADAI_B", - "DIS_CONTACT", - "DIS_CHOC", - "DIS_GRICRA", - "DIS_GOUJ2E_PLAS", - "DIS_GOUJ2E_ELAS", - "GRILLE_ISOT_LINE", - "GRILLE_CINE_LINE", - "GRILLE_PINTO_MEN", - "PINTO_MENEGOTTO", - "CJS", - "CAM_CLAY", - "BARCELONE", - "LAIGLE", - "DRUCKER_PRAGER", - "HOEK_BROWN", - "HOEK_BROWN_EFF", - "HOEK_BROWN_TOT", - "GRANGER_FP", - "GRANGER_FP_INDT", - "GRANGER_FP_V", - "BAZANT_FD", - "BETON_UMLV_FP", - "BETON_DOUBLE_DP", - "KIT_HM", - "KIT_HHM", - "KIT_THH", - "KIT_THV", - "KIT_THM", - "KIT_THHM", - "VMIS_ASYM_LINE", - "ELAS_THER", - "KIT_DDI", - "GLRC_DAMAGE", - "GLRC_DM", - "SANS", - "CORR_ACIER", - "MONOCRISTAL", - "POLYCRISTAL", - "ZMAT", - "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,)), - VISC_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - VMIS_ISOT_LINE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VISC_ISOT_LINE =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - VMIS_ISOT_PUIS =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VMIS_ECMI_TRAC =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - VMIS_ECMI_LINE =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - LABORD_1D =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ENDO_ISOT_BETON =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ENDO_ORTH_BETON =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - BETON_REGLE_PR =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - MAZARS =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - 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,)), - VISCOCHAB =SIMP(statut='c',typ='I',defaut=28,into=(28,)), - VMIS_CIN1_CHAB =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - VMIS_CIN2_CHAB =SIMP(statut='c',typ='I',defaut=14,into=(14,)), - VISC_CIN1_CHAB =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - VISC_CIN2_CHAB =SIMP(statut='c',typ='I',defaut=14,into=(14,)), - LMARC =SIMP(statut='c',typ='I',defaut=20,into=(20,)), - LMARC_IRRA =SIMP(statut='c',typ='I',defaut=20,into=(20,)), - VISC_TAHERI =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - ROUSSELIER =SIMP(statut='c',typ='I',defaut=9,into=(9,)), - ROUSS_PR =SIMP(statut='c',typ='I',defaut=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,)), - IRRAD3M =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - LEMAITRE_IRRA =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ZIRC_CYRA2 =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - ZIRC_EPRI =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - VISC_IRRA_LOG =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - GRAN_IRRA_LOG =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - NADAI_B =SIMP(statut='c',typ='I',defaut=34,into=(34,)), - VENDOCHAB =SIMP(statut='c',typ='I',defaut=10,into=(10,)), - GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)), - GRILLE_CINE_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)), - GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,)), - DIS_CONTACT =SIMP(statut='c',typ='I',defaut=6,into=(6,)), - DIS_CHOC =SIMP(statut='c',typ='I',defaut=7,into=(7,)), - DIS_GRICRA =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - DIS_GOUJ2E_PLAS =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - DIS_GOUJ2E_ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - PINTO_MENEGOTTO =SIMP(statut='c',typ='I',defaut=8,into=(8,)), - CJS =SIMP(statut='c',typ='I',defaut=16,into=(16,)), - 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,)), - HOEK_BROWN_EFF =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - HOEK_BROWN_TOT =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - GRANGER_FP =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - GRANGER_FP_INDT =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - GRANGER_FP_V =SIMP(statut='c',typ='I',defaut=55,into=(55,)), - BAZANT_FD =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - KIT_HM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_HHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THH =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THV =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - KIT_THHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)), - VMIS_ASYM_LINE =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - BETON_UMLV_FP =SIMP(statut='c',typ='I',defaut=21,into=(21,)), - GLRC_DAMAGE =SIMP(statut='c',typ='I',defaut=21,into=(21,)), - GLRC_DM =SIMP(statut='c',typ='I',defaut=4,into=(4,)), - GATT_MONERIE =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - - b_monox = BLOC(condition = "RELATION == 'MONOCRISTAL' ", - fr="SD issue de DEFI_COMPOR", - COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),), -# - b_polyx = BLOC(condition = "RELATION == 'POLYCRISTAL' ", - fr="SD issue de DEFI_COMPOR", - COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),), -# - b_zmat = BLOC(condition = "RELATION == 'ZMAT' ", - fr="Comportement de la bibliotheque Zmat", - NB_VARI =SIMP(statut='o',typ='I',max=1), - UNITE =SIMP(statut='o',typ='I',max=1),), - - - - RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(), - into=( -# MECA - "ELAS", - "CJS", - "CAM_CLAY", - "BARCELONE", - "LAIGLE", - "DRUCKER_PRAGER", - "HOEK_BROWN_EFF", - "HOEK_BROWN_TOT", - "ELAS_THER", - "MAZARS", - "ENDO_ISOT_BETON", -# THMC - "GAZ", - "LIQU_SATU", - "LIQU_GAZ_ATM", - "LIQU_VAPE_GAZ", - "LIQU_AD_GAZ_VAPE", - "LIQU_VAPE", - "LIQU_GAZ", -# HYDR - "HYDR_UTIL", - "HYDR", - "HYDR_ENDO", -# MECA_META - "ACIER", - "ZIRC", -# MECA KIT_DDI - "VMIS_ISOT_TRAC", - "VMIS_ISOT_LINE", - "VMIS_ISOT_CINE", - "VMIS_ISOT_PUIS", - "GRANGER_FP", - "GRANGER_FP_INDT", - "GRANGER_FP_V", - "BETON_UMLV_FP", - "ROUSS_PR", - "NADAI_B", - "BETON_DOUBLE_DP", - ),), - - - 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_GAZ_ATM =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - LIQU_VAPE_GAZ =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_AD_GAZ_VAPE=SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_VAPE =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - LIQU_GAZ =SIMP(statut='c',typ='I',defaut=2,into=(2,)), - HYDR_UTIL =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - HYDR =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - HYDR_ENDO =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ACIER =SIMP(statut='c',typ='I',defaut=5,into=(5,)), - ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT", - into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN","COROTATIONNEL","REAC_GEOM")), - ALGO_C_PLAN =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)), - 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")), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 1. ), - ) ; -#& MODIF COMMUN DATE 07/11/2006 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -# ce fichier contient la liste des "into" possibles pour le mot cle NOM_CHAM -# c'est a dire les noms de champs des SD RESULTAT (DATA de la routine RSCRSD) -def C_NOM_CHAM_INTO() : return ("ACCE", #COMMUN# - "ACCE_ABSOLU", - "ALPH0_ELGA_EPSP", - "ALPHP_ELGA_ALPH0", - "ARCO_ELNO_SIGM", - "ARCO_NOEU_SIGM", - "COMPORTEMENT", - "COMPORTHER", - "CRIT_ELNO_RUPT", - "DCHA_ELGA_SIGM", - "DCHA_ELNO_SIGM", - "DCHA_NOEU_SIGM", - "DEDE_ELNO_DLDE", - "DEDE_NOEU_DLDE", - "DEGE_ELNO_DEPL", - "DEGE_NOEU_DEPL", - "DEPL", - "DEPL_ABSOLU", - "DESI_ELNO_DLSI", - "DESI_NOEU_DLSI", - "DETE_ELNO_DLTE", - "DETE_NOEU_DLTE", - "DURT_ELGA_META", - "DURT_ELNO_META", - "DURT_NOEU_META", - "ECIN_ELEM_DEPL", - "EFGE_ELNO_CART", - "EFGE_ELNO_DEPL", - "EFGE_NOEU_CART", - "EFGE_NOEU_DEPL", - "ENDO_ELGA", - "ENDO_ELNO_ELGA", - "ENDO_ELNO_SIGA", - "ENDO_ELNO_SINO", - "ENDO_NOEU_SINO", - "ENEL_ELGA", - "ENEL_ELNO_ELGA", - "ENEL_NOEU_ELGA", - "EPEQ_ELNO_TUYO", - "EPVC_ELGA", - "EPVC_ELNO", - "EPFD_ELGA", - "EPFD_ELNO", - "EPFP_ELGA", - "EPFP_ELNO", - "EPME_ELGA_DEPL", - "EPME_ELNO_DEPL", - "EPMG_ELGA_DEPL", - "EPMG_ELNO_DEPL", - "EPMG_NOEU_DEPL", - "EPOT_ELEM_DEPL", - "EPSA_ELNO", - "EPSA_NOEU", - "EPSG_ELGA_DEPL", - "EPSG_ELNO_DEPL", - "EPSG_NOEU_DEPL", - "EPSI_ELGA_DEPL", - "EPSI_ELNO_DEPL", - "EPSI_ELNO_TUYO", - "EPSI_NOEU_DEPL", - "EPSP_ELGA", - "EPSP_ELNO", - "EPSP_ELNO_ZAC", - "EPSP_NOEU", - "EPSP_NOEU_ZAC", - "EQUI_ELGA_EPME", - "EQUI_ELGA_EPSI", - "EQUI_ELGA_SIGM", - "EQUI_ELNO_EPME", - "EQUI_ELNO_EPSI", - "EQUI_ELNO_SIGM", - "EQUI_NOEU_EPME", - "EQUI_NOEU_EPSI", - "EQUI_NOEU_SIGM", - "ERRE_ELEM_SIGM", - "ERRE_ELEM_TEMP", - "ERRE_ELNO_ELEM", - "ERRE_NOEU_ELEM", - "ERZ1_ELEM_SIGM", - "ERZ2_ELEM_SIGM", - "QIRE_ELEM_SIGM", - "QIRE_ELNO_ELEM", - "QIZ1_ELEM_SIGM", - "QIZ2_ELEM_SIGM", - "SING_ELEM", - "SING_ELNO_ELEM", - "ETOT_ELEM", - "ETOT_ELGA", - "ETOT_ELNO_ELGA", - "EXTR_ELGA_VARI", - "EXTR_ELNO_VARI", - "EXTR_NOEU_VARI", - "FLUX_ELGA_TEMP", - "FLUX_ELNO_TEMP", - "FLUX_NOEU_TEMP", - "FORC_NODA", - "FSUR_2D", - "FSUR_3D", - "FVOL_2D", - "FVOL_3D", - "GRAD_NOEU_THETA", - "HYDR_ELNO_ELGA", - "HYDR_NOEU_ELGA", - "INDI_LOCA_ELGA", - "INTE_ELNO_ACTI", - "INTE_ELNO_REAC", - "INTE_NOEU_ACTI", - "INTE_NOEU_REAC", - "IRRA", - "LANL_ELGA", - "META_ELGA_TEMP", - "META_ELNO_TEMP", - "META_NOEU_TEMP", - "MODE_FLAMB", - "PMPB_ELGA_SIEF", - "PMPB_ELNO_SIEF", - "PMPB_NOEU_SIEF", - "PRES", - "PRES_DBEL_DEPL", - "PRES_ELNO_DBEL", - "PRES_ELNO_IMAG", - "PRES_ELNO_REEL", - "PRES_NOEU_DBEL", - "PRES_NOEU_IMAG", - "PRES_NOEU_REEL", - "RADI_ELGA_SIGM", - "RADI_ELNO_SIGM", - "RADI_NOEU_SIGM", - "REAC_NODA", - "SIEF_ELGA", - "SIEF_ELGA_DEPL", - "SIEF_ELNO", - "SIEF_ELNO_ELGA", - "SIEF_NOEU", - "SIEF_NOEU_ELGA", - "SIEQ_ELNO_TUYO", - "SIGM_ELNO_CART", - "SIGM_ELNO_COQU", - "SIGM_ELNO_DEPL", - "SIGM_ELNO_SIEF", - "SIGM_ELNO_TUYO", - "SIGM_ELNO_ZAC", - "SIGM_NOEU_CART", - "SIGM_NOEU_COQU", - "SIGM_NOEU_DEPL", - "SIGM_NOEU_SIEF", - "SIGM_NOEU_ZAC", - "SIGM_NOZ1_ELGA", - "SIGM_NOZ2_ELGA", - "SIPO_ELNO_DEPL", - "SIPO_ELNO_SIEF", - "SIPO_NOEU_DEPL", - "SIPO_NOEU_SIEF", - "SIRE_ELNO_DEPL", - "SIRE_NOEU_DEPL", - "SOUR_ELGA_ELEC", - "TEMP", - "THETA", - "VALE_CONT", - "VALE_NCOU_MAXI", - "VARI_ELGA", - "VARI_ELGA_ZAC", - "VARI_ELNO", - "VARI_ELNO_COQU", - "VARI_ELNO_ELGA", - "VARI_ELNO_TUYO", - "VARI_NOEU", - "VARI_NOEU_ELGA", - "VARI_NON_LOCAL", - "VITE", - "VITE_ABSOLU", - "VITE_VENT", - ) -#& MODIF COMMUN DATE 04/04/2006 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# ce fichier contient la liste des noms des grandeurs de CODE_ASTER -def C_NOM_GRANDEUR() : return ( #COMMUN# -"ABSC_R", -"ADRSJEVE", -"ADRSJEVN", -"CAARPO", -"CACABL", -"CACOQU", -"CADISA", -"CADISK", -"CADISM", -"CAFI_R", -"CAGEBA", -"CAGEPO", -"CAGNBA", -"CAGNPO", -"CAMASS", -"CAORIE", -"CAPOUF", -"CARCRI", -"CASECT", -"CHLI_R", -"CODE_I", -"COEH_F", -"COEH_R", -"COMPOR", -"CORR_R", -"CRRU_R", -"DBEL_R", -"DCEL_I", -"DDLI_C", -"DDLI_F", -"DDLI_R", -"DDLM_C", -"DDLM_R", -"DEPL_C", -"DEPL_F", -"DEPL_R", -"DOMMAG", -"DURT_R", -"ENER_R", -"EPSI_F", -"EPSI_R", -"ERREUR", -"FACY_R", -"FELECR", -"FISS_R", -"FLAPLA", -"FLUN_F", -"FLUN_R", -"FLUX_F", -"FLUX_R", -"FORC_C", -"FORC_F", -"FORC_R", -"FREQ_R", -"FTHM_F", -"FTHM_R", -"G", -"GEOM_R", -"G_DEPL_R", -"HARMON", -"HYDR_R", -"IMPE_C", -"IMPE_F", -"IMPE_R", -"IND_LOCA", -"INFC_R", -"INST_R", -"INTE_R", -"INTLOC", -"IRRA_R", -"ITECREL", -"ITEDEC", -"J", -"LISTMA", -"MACOMP", -"MASS_R", -"MATE_F", -"NBSP_I", -"NEUT_F", -"NEUT_I", -"NEUT_K16", -"NEUT_K24", -"NEUT_K8", -"NEUT_R", -"NUMC_I", -"NUMMOD", -"ONDE_F", -"ONDE_R", -"PESA_R", -"PILO_K", -"PILO_R", -"POSI", -"PREC", -"PRES_C", -"PRES_F", -"PRES_R", -"RAYO_F", -"RAYO_R", -"RCCM_K", -"RCCM_R", -"RESCREL", -"RICE_TRA", -"ROTA_R", -"SECTION", -"SIEF_C", -"SIEF_R", -"SIZZ_R", -"SOUR_F", -"SOUR_R", -"SPMA_R", -"STAOUDYN", -"TEMP_C", -"TEMP_F", -"TEMP_R", -"THETA", -"VALO_R", -"VANL_R", -"VAR2_R", -"VARI_R", -"VENTCX_F", -"VNOR_C", -"VNOR_F", -"VOISIN", -"WEIBULL", -"XCONTAC", - ) -#& MODIF COMMUN DATE 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/2007 AUTEUR SALMONA 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 MJBHHPE J.L.FLEJOU -AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, - fr="Affectation de caractéristiques à des éléments de structure", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','DISCRET_2D','MASSIF', - 'GRILLE','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' ), - EXCLUS('ANGL_REP','VECTEUR'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - EPAIS =SIMP(statut='o',typ='R' ), - ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2), - VECTEUR =SIMP(statut='f',typ='R',min=3,max=3), - A_CIS =SIMP(statut='c',typ='R',defaut= 0.8333333E0), - COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-5 ), - COQUE_NCOU =SIMP(statut='f',typ='I',defaut= 1 ), - EXCENTREMENT =SIMP(statut='f',typ='R' ), - INER_ROTA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MODI_METRIQUE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - -#============================================================================ - CABLE =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - N_INIT =SIMP(statut='f',typ='R',defaut= 5000. ), - SECTION =SIMP(statut='f',typ='R' ), - FCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - -#============================================================================ - DISCRET =FACT(statut='f',max='**', - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - AMOR_HYST =SIMP(statut='f',typ='R' ), - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, - fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", - into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L", - "K_T_N", "K_T_L", "K_TR_N", "K_TR_L", - "M_T_D_N","M_TR_D_N","M_T_N", - "M_T_L", "M_TR_N", "M_TR_L", - "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L", - "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ), - -# affection des caractéristiques de RIGIDITE/AMORTISSEMENT - b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),), - b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),), - b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),), - b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),), - b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),), - b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=21,max=21), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),), - b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=21,max=21), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),), - b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=78,max=78), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=78 ,max=78 ),), - -# affection des caractéristiques de MASSE - b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", - fr="NOEUD: 1 valeur de masse", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=1 ,max=1 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),), - b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", - fr="NOEUD: 1 valeur de masse, 6 valeurs du tenseur d'inertie, 3 composantes du vecteur d'excentricité", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=10,max=10), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=10 ,max=10 ),), - b_M_T_N =BLOC(condition = "CARA=='M_T_N'", - fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),), - b_M_T_L =BLOC(condition = "CARA=='M_T_L'", - fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=21,max=21), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),), - b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", - fr="NOEUD: 21 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=21,max=21), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),), - b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", - fr="SEGMENT: 78 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=78,max=78), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=78 ,max=78 ),), - ), - -#============================================================================ - DISCRET_2D =FACT(statut='f',max='**', - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - AMOR_HYST =SIMP(statut='f',typ='R' ), - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, - fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds", - into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L", - "K_T_N", "K_T_L", "K_TR_N", "K_TR_L", - "M_T_D_N","M_T_N", "M_TR_D_N", - "M_T_L", "M_TR_N", "M_TR_L", - "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L", - "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ), - -# affection des caractéristiques de RIGIDITE/AMORTISSEMENT - b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=2 ,max=2 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=2 ,max=2 ),), - b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=2 ,max=2 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=2 ,max=2 ),), - b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),), - b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),), - b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),), - b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=10,max=10), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=10 ,max=10 ),), - b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=6 ,max=6), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),), - b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", - regles=(UN_PARMI('MAILLE','GROUP_MA'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=21,max=21), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),), - -# affection des caractéristiques de MASSE - b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", - fr="NOEUD: 1 valeur de masse", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=1 ,max=1 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=1 ,max=1 ),), - b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", - fr="NOEUD: 1 valeur de masse(m), 1 valeur d'inertie(Izz), 2 composantes du vecteur d'excentricité(ex,ey) ", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=4 ,max=4 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=4 ,max=4 ),), - b_M_T_N =BLOC(condition = "CARA=='M_T_N'", - fr="NOEUD: 3 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=3 ,max=3 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=3 ,max=3 ),), - b_M_T_L =BLOC(condition = "CARA=='M_T_L'", - fr="SEGMENT: 10 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=10,max=10), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=10 ,max=10 ),), - b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", - fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=6 ,max=6 ), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=6 ,max=6 ),), - b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", - fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", - regles=(UN_PARMI('MAILLE','GROUP_MA'), - AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - VALE =SIMP(statut='f',typ='R',min=21,max=21), - VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),), - ), - -#============================================================================ - ORIENTATION =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - CARA =SIMP(statut='o',typ='TXM', - into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ), - VALE =SIMP(statut='o',typ='R',max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-4 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - -#============================================================================ - DEFI_ARC =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE', - 'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'), - PRESENT_PRESENT('ORIE_ARC','RAYON'), - EXCLUS('COEF_FLEX','COEF_FLEX_XY'), - EXCLUS('COEF_FLEX','COEF_FLEX_XZ'), - EXCLUS('INDI_SIGM','INDI_SIGM_XY'), - EXCLUS('INDI_SIGM','INDI_SIGM_XZ'), - PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'), - PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ORIE_ARC =SIMP(statut='f',typ='R'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - POIN_TANG =SIMP(statut='f',typ='R',max='**'), - NOEUD_POIN_TANG =SIMP(statut='f',typ=no), - GROUP_NO_POIN_TG=SIMP(statut='f',typ=grno), - RAYON =SIMP(statut='f',typ='R'), - COEF_FLEX =SIMP(statut='f',typ='R'), - INDI_SIGM =SIMP(statut='f',typ='R'), - COEF_FLEX_XY =SIMP(statut='f',typ='R'), - INDI_SIGM_XY =SIMP(statut='f',typ='R'), - COEF_FLEX_XZ =SIMP(statut='f',typ='R'), - INDI_SIGM_XZ =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - -#============================================================================ - MASSIF =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('ANGL_REP','ANGL_AXE','ANGL_EULER'), - EXCLUS('ANGL_REP','ANGL_EULER'), - EXCLUS('ANGL_REP','ANGL_AXE'), - EXCLUS('ANGL_REP','ORIG_AXE'), - PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ANGL_REP =SIMP(statut='f',typ='R',max=3), - ANGL_EULER =SIMP(statut='f',typ='R',min=3,max=3), - ANGL_AXE =SIMP(statut='f',typ='R',max=2), - ORIG_AXE =SIMP(statut='f',typ='R',max=3), - ), - - -#============================================================================ - POUTRE_FLUI =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - B_T =SIMP(statut='o',typ='R'), - B_N =SIMP(statut='o',typ='R'), - B_TN =SIMP(statut='o',typ='R',defaut= 0.E+0 ), - A_FLUI =SIMP(statut='o',typ='R'), - A_CELL =SIMP(statut='o',typ='R'), - COEF_ECHELLE =SIMP(statut='o',typ='R'), - ), - -#============================================================================ - GRILLE =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - EXCLUS('ANGL_REP','ORIG_AXE'), - ENSEMBLE('ORIG_AXE','AXE')), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SECTION =SIMP(statut='o',typ='R'), - ANGL_REP =SIMP(statut='f',typ='R',max=2), - EXCENTREMENT =SIMP(statut='f',typ='R'), - ORIG_AXE =SIMP(statut='f',typ='R',max='**'), - AXE =SIMP(statut='f',typ='R',max='**'), - COEF_RIGI_DRZ =SIMP(statut='f',typ='R',defaut= 1.0E-10 ), - GRILLE_NCOU =SIMP(statut='f',typ='I',defaut= 1,), - ), - -#============================================================================ - RIGI_PARASOL =FACT(statut='f',max='**', - regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'), - UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'), - EXCLUS('GROUP_MA_POI1','GROUP_MA_SEG2'),), - GROUP_MA =SIMP(statut='o',typ=ma,validators=NoRepeat(),max='**', - fr="Surface servant à répartir les caractéristiques des discrets"), - GROUP_MA_POI1 =SIMP(statut='f',typ=ma,validators=NoRepeat(),max=1, - fr="Mailles de type point correspondant aux discrets"), - GROUP_MA_SEG2 =SIMP(statut='f',typ=ma,validators=NoRepeat(),max=1, - fr="Mailles de type seg2 correspondant aux discrets"), - FONC_GROUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_GROUP =SIMP(statut='f',typ='R',max='**'), - REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), - CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2, - into=("K_TR_D_N","K_T_D_N","K_TR_D_L","K_T_D_L", - "A_TR_D_N","A_T_D_N","A_TR_D_L","A_T_D_L") ), - VALE =SIMP(statut='o',typ='R',max='**'), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - COOR_CENTRE =SIMP(statut='f',typ='R',min=2,max=3), - ), - -#============================================================================ - RIGI_MISS_3D =FACT(statut='f',max='**', - GROUP_MA_POI1 =SIMP(statut='o',typ=ma,max=1), - GROUP_MA_SEG2 =SIMP(statut='f',typ=ma,max=1), - FREQ_EXTR =SIMP(statut='o',typ='R',max=1), - UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), - ), - -#============================================================================ - 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 27/11/2006 AUTEUR PELLET J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -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'),), - TOUT =SIMP(statut='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' ), - ), - 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 02/06/2008 AUTEUR DESOZA T.DESOZA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op= 7,sd_prod=char_meca, - fr="Affectation de charges et conditions aux limites mécaniques constantes", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','CHAMNO_IMPO','LIAISON_DDL','LIAISON_XFEM','FORCE_NODALE', - 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', - 'PRES_REP','FORCE_POUTRE','FORCE_COQUE','LIAISON_OBLIQUE', - 'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE', - 'VITE_FACE','TEMP_CALCULEE','RELA_CINE_BP','EPSI_INIT','CONTACT', - 'LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP','LIAISON_SOLIDE', - 'LIAISON_ELEM','ONDE_FLUI','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE', - 'LIAISON_MAIL','LIAISON_CYCL','FORCE_TUYAU', - 'EFFE_FOND','EVOL_CHAR','ARLEQUIN','DDL_POUTRE','GRAPPE_FLUIDE', - 'LIAISON_UNILATER'), - ), - VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - TEMP_CALCULEE =SIMP(statut='f',fr="Champ de température issu d'un autre calcul", - typ=(evol_ther,cham_no_sdaster,carte_sdaster) ), - EVOL_CHAR =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul", - typ=evol_char ), - - PESANTEUR =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=4,max=4), - ROTATION =SIMP(statut='f',typ='R',fr="Champ de rotation", min=4,max=4), - b_rotation =BLOC ( condition = "ROTATION != None", - CENTRE =SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=3),), - - DDL_IMPO =FACT(statut='f',max='**', - fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2', - 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4', - 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6', - 'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX', - 'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', - 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PRE1 =SIMP(statut='f',typ='R' ), - PRE2 =SIMP(statut='f',typ='R' ), - UI2 =SIMP(statut='f',typ='R' ), - UI3 =SIMP(statut='f',typ='R' ), - UI4 =SIMP(statut='f',typ='R' ), - UI5 =SIMP(statut='f',typ='R' ), - UI6 =SIMP(statut='f',typ='R' ), - UO2 =SIMP(statut='f',typ='R' ), - UO3 =SIMP(statut='f',typ='R' ), - UO4 =SIMP(statut='f',typ='R' ), - UO5 =SIMP(statut='f',typ='R' ), - UO6 =SIMP(statut='f',typ='R' ), - VI2 =SIMP(statut='f',typ='R' ), - VI3 =SIMP(statut='f',typ='R' ), - VI4 =SIMP(statut='f',typ='R' ), - VI5 =SIMP(statut='f',typ='R' ), - VI6 =SIMP(statut='f',typ='R' ), - VO2 =SIMP(statut='f',typ='R' ), - VO3 =SIMP(statut='f',typ='R' ), - VO4 =SIMP(statut='f',typ='R' ), - VO5 =SIMP(statut='f',typ='R' ), - VO6 =SIMP(statut='f',typ='R' ), - WI2 =SIMP(statut='f',typ='R' ), - WI3 =SIMP(statut='f',typ='R' ), - WI4 =SIMP(statut='f',typ='R' ), - WI5 =SIMP(statut='f',typ='R' ), - WI6 =SIMP(statut='f',typ='R' ), - WO2 =SIMP(statut='f',typ='R' ), - WO3 =SIMP(statut='f',typ='R' ), - WO4 =SIMP(statut='f',typ='R' ), - WO5 =SIMP(statut='f',typ='R' ), - WO6 =SIMP(statut='f',typ='R' ), - WO =SIMP(statut='f',typ='R' ), - WI1 =SIMP(statut='f',typ='R' ), - WO1 =SIMP(statut='f',typ='R' ), - GONF =SIMP(statut='f',typ='R' ), - DCX =SIMP(statut='f',typ='R' ), - DCY =SIMP(statut='f',typ='R' ), - DCZ =SIMP(statut='f',typ='R' ), - H1X =SIMP(statut='f',typ='R' ), - H1Y =SIMP(statut='f',typ='R' ), - H1Z =SIMP(statut='f',typ='R' ), - E1X =SIMP(statut='f',typ='R' ), - E1Y =SIMP(statut='f',typ='R' ), - E1Z =SIMP(statut='f',typ='R' ), - E2X =SIMP(statut='f',typ='R' ), - E2Y =SIMP(statut='f',typ='R' ), - E2Z =SIMP(statut='f',typ='R' ), - E3X =SIMP(statut='f',typ='R' ), - E3Y =SIMP(statut='f',typ='R' ), - E3Z =SIMP(statut='f',typ='R' ), - E4X =SIMP(statut='f',typ='R' ), - E4Y =SIMP(statut='f',typ='R' ), - E4Z =SIMP(statut='f',typ='R' ), - LAGS_C =SIMP(statut='f',typ='R' ), - ), - - - - DDL_POUTRE =FACT(statut='f',max='**', - fr="Bloque des DDLs dans un repère local d'une poutre", - regles=(AU_MOINS_UN('GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'), - UN_PARMI('VECT_Y','ANGL_VRIL'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), -# définition du repère local - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - ANGL_VRIL =SIMP(statut='f',typ='R',), -# restriction sur les mailles servant à définir le repère local - GROUP_MA =SIMP(statut='f',typ=grma,), - MAILLE =SIMP(statut='f',typ=ma,), - ), - - - - FACE_IMPO =FACT(statut='f',max='**', - fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)", - regles=(UN_PARMI('GROUP_MA','MAILLE',), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','DNOR','DTAN'), - EXCLUS('DNOR','DX'), - EXCLUS('DNOR','DY'), - EXCLUS('DNOR','DZ'), - EXCLUS('DNOR','DRX'), - EXCLUS('DNOR','DRY'), - EXCLUS('DNOR','DRZ'), - EXCLUS('DTAN','DX'), - EXCLUS('DTAN','DY'), - EXCLUS('DTAN','DZ'), - EXCLUS('DTAN','DRX'), - EXCLUS('DTAN','DRY'), - EXCLUS('DTAN','DRZ'),), -# rajout d'un mot clé REPERE :/ LOCAL /GLOBAL - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - DNOR =SIMP(statut='f',typ='R' ), - DTAN =SIMP(statut='f',typ='R' ), - GRX =SIMP(statut='f',typ='R' ), - PRES =SIMP(statut='f',typ='R' ), - PHI =SIMP(statut='f',typ='R' ), - TEMP =SIMP(statut='f',typ='R' ), - PRE1 =SIMP(statut='f',typ='R' ), - PRE2 =SIMP(statut='f',typ='R' ), - ), - - CHAMNO_IMPO =FACT(statut='f',max='**', - fr="Impose des DDLs aux valeurs d'un concept cham_no_sdaster", -# type de cham_no_sdaster CO() - CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), #CO() - COEF_MULT =SIMP(statut='o',typ='R' ), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - - LIAISON_DDL =FACT(statut='f',max='**', - fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='o',typ='R' ,max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - ), - - LIAISON_OBLIQUE =FACT(statut='f',max='**', - fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante" - +" dans un repère oblique quelconque", - regles=(UN_PARMI('GROUP_NO','NOEUD'), - UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - ANGL_NAUT =SIMP(statut='o',typ='R',max=3), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - DRX =SIMP(statut='f',typ='R' ), - DRY =SIMP(statut='f',typ='R' ), - DRZ =SIMP(statut='f',typ='R' ), - ), - - LIAISON_GROUP =FACT(statut='f',max='**', - fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds", - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - DDL_1 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_1 =SIMP(statut='o',typ='R' ,max='**'), - DDL_2 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_2 =SIMP(statut='o',typ='R' ,max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - CENTRE =SIMP(statut='f',typ='R',max=3), - ), - - LIAISON_MAIL =FACT(statut='f',max='**', - fr="Définit des relations linéaires permettant de recoller deux bords d'une structure", - regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'), - AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), - PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TRAN =SIMP(statut='f',typ='R',max=3 ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3 ), - CENTRE =SIMP(statut='f',typ='R',max=3 ), - DDL_MAIT =SIMP(statut='f',typ='TXM',into=("DNOR",) ), - DDL_ESCL =SIMP(statut='f',typ='TXM',into=("DNOR",) ), - ELIM_MULT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - LIAISON_CYCL =FACT(statut='f',max='**', - fr="Définit des relations linéaires permettant de recoller les bords de deux parties symétriquement cycliques", - regles=(AU_MOINS_UN('GROUP_MA_MAIT1','MAILLE_MAIT1'), - AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'), - PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'), - ), - GROUP_MA_MAIT1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_MAIT2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TRAN =SIMP(statut='f',typ='R',max=3 ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3 ), - CENTRE =SIMP(statut='f',typ='R',max=3 ), - COEF_MAIT1 =SIMP(statut='f',typ='R',max=1 ), - COEF_MAIT2 =SIMP(statut='f',typ='R',max=1 ), - COEF_ESCL =SIMP(statut='f',typ='R',max=1 ), - DDL_MAIT =SIMP(statut='f',typ='TXM',into=("DNOR",) ), - DDL_ESCL =SIMP(statut='f',typ='TXM',into=("DNOR",) ), - ), - - - LIAISON_SOLIDE =FACT(statut='f',fr="Modélise une partie indéformable d'une structure",max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - LIAISON_ELEM =FACT(statut='f',max='**', - fr="Modélise le raccord d'une partie massive 3D avec une poutre ou avec un tuyau, le raccord d'une coque" - +" avec une poutre ou avec un tuyau", - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_NO_2','NOEUD_2'),), - OPTION =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU") ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - CARA_ELEM =SIMP(statut='f',typ=(cara_elem) ), - AXE_POUTRE =SIMP(statut='f',typ='R',max=3), - ANGL_MAX =SIMP(statut='f',typ='R',defaut= 1. ), - ), - - LIAISON_UNIF =FACT(statut='f',max='**', - fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), - - LIAISON_CHAMNO =FACT(statut='f',max='**', - fr="Définit une relation linéaire entre tous les DDLs présents dans un concept CHAM_NO", -# type de cham_no_sdaster CO() - CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), #CO() - COEF_IMPO =SIMP(statut='o',typ='R' ), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - LIAISON_XFEM =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - - VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster ), -# -# LIAISON UNILATERALE -# - LIAISON_UNILATER=FACT(statut='f',max='**', - fr="Définit les zones soumises à des conditions de liaison unilaterale (inegalite sur un DDL)", - regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - - COEF_IMPO =SIMP(statut='f',typ='R'), - COEF_MULT =SIMP(statut='f',typ='R',max='**'), - - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("CONTRAINTE","GCPC",) ), - - - ), -# -# CONTACT -# - CONTACT =FACT(statut='f',max='**', - fr="Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement", - regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),), - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into=("NODAL","MAIT_ESCL","MAIT_ESCL_SYME")), - RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_BOUCLE", - into=("NOEUD_BOUCLE","NOEUD_VOISIN")), - LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - DIST_POUTRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), - DIST_COQUE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), - NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT", - into=("MAIT","MAIT_ESCL")), - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("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", - STOP_INTERP =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - TOLE_INTERP =SIMP(statut='f',typ='R',defaut = 0.), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), - ), - - b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ", - fr="Paramètres de la méthode des contraintes actives (contact uniquement)", - GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ", - ALARME_JEU =SIMP(statut='f',typ='R',defaut=0.), - ), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON")), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ", - fr="Paramètre de la réactualisation géométrique", - ), - 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'), - - ), - b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - fr="Paramètre de la réactualisation géométrique auto", - ), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - - ), - b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ", - fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)", - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON")), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - ITER_MULT_MAXI =SIMP(statut='f',typ='I' ,defaut=4), - - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique", - ), - 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'), - - ), - b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - fr="Paramètre de la réactualisation géométrique auto", - ), - - - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - - regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')), - - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - - b_penalisation =BLOC(condition = "METHODE == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)", - E_N =SIMP(statut='f',typ='R'), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON")), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - ITER_MULT_MAXI =SIMP(statut='f',typ='I',defaut=4), - - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique", - ), - 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'), - ), - b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - fr="Paramètre de la réactualisation géométrique auto", - ), - - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), - - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - E_T =SIMP(statut='f',typ='R', - fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - - b_continue =BLOC(condition = "METHODE == 'CONTINUE' ", - fr="Paramètres de la méthode continue (contact avec ou sans frottement)", -# regles=(UN_PARMI('GLISSIERE','FROTTEMENT'),), - GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ", - ALARME_JEU =SIMP(statut='f',typ='R',defaut=0.), - ), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - COMPLIANCE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - FOND_FISSURE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - RACCORD_LINE_QUAD=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2", - "NCOTES","NCOTES1","NCOTES2")), - 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_FOND_FISSURE =BLOC(condition = "FOND_FISSURE == 'OUI' ",fr="TRAITEMENT EN FOND DE FISSURE", - regles=(UN_PARMI('NOEUD_FOND','GROUP_NO_FOND','MAILLE_FOND','GROUP_MA_FOND'),), - NOEUD_FOND =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO_FOND =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE_FOND =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_FOND =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),), - b_RACCORD_SURF =BLOC(condition = "RACCORD_LINE_QUAD == 'OUI' ",fr="TRAITEMENT DU RACCORD SURFACIQUE", - regles=(UN_PARMI('NOEUD_RACC','GROUP_NO_RACC'),), - NOEUD_RACC =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO_RACC =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),), - - b_compliance =BLOC(condition = "COMPLIANCE == 'OUI' ",fr="Parametres de la compliance", - ASPERITE =SIMP(statut='o',typ='R',), - E_N =SIMP(statut='o',typ='R',), - E_V =SIMP(statut='f',typ='R',defaut=0.E+0),), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - 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)", - 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), - 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_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")), - VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - ), - ), - - FORCE_NODALE =FACT(statut='f',fr="Applique à des noeuds des forces nodales",max='**', - regles=(AU_MOINS_UN('GROUP_NO','NOEUD'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - ), - - FORCE_FACE =FACT(statut='f',max='**', - fr="Applique des forces surfaciques sur une face d'élément volumique", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - ), - - FORCE_ARETE =FACT(statut='f',max='**', - fr="Applique des forces linéiques à une arete d'élément volumique ou de coque", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE',), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ), - - FORCE_CONTOUR =FACT(statut='f',max='**', - fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - ), - - FORCE_INTERNE =FACT(statut='f',max='**', - fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - ), - - PRES_REP =FACT(statut='f',max='**', - fr="Applique une pression à un domaine de milieu continu 2D ou 3D, ou à un domaine de coques et tuyaux", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('PRES','CISA_2D' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='f',typ='R' ), - CISA_2D =SIMP(statut='f',typ='R' ), - ), - - EFFE_FOND =FACT(statut='f',max='**', - fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise à une pression", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA_INT =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='o',typ='R' ), - ), - - EPSI_INIT =FACT(statut='f',max='**', - fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX', - 'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - EPXX =SIMP(statut='f',typ='R' ), - EPYY =SIMP(statut='f',typ='R' ), - EPZZ =SIMP(statut='f',typ='R' ), - EPXY =SIMP(statut='f',typ='R' ), - EPXZ =SIMP(statut='f',typ='R' ), - EPYZ =SIMP(statut='f',typ='R' ), - EPX =SIMP(statut='f',typ='R' ), - KY =SIMP(statut='f',typ='R' ), - KZ =SIMP(statut='f',typ='R' ), - EXX =SIMP(statut='f',typ='R' ), - EYY =SIMP(statut='f',typ='R' ), - EXY =SIMP(statut='f',typ='R' ), - KXX =SIMP(statut='f',typ='R' ), - KYY =SIMP(statut='f',typ='R' ), - KXY =SIMP(statut='f',typ='R' ), - ), - - ARLEQUIN =FACT(statut='f',min=1,max='**', - fr="Définit les paramètres de la méthode Arlequin", - GROUP_MA_1 =SIMP(statut='o',typ=grma,max='**'), - GROUP_MA_2 =SIMP(statut='o',typ=grma,max='**'), - GROUP_MA_COLL =SIMP(statut='f',typ=grma,max='**'), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - COND_LIM =SIMP(statut='f',typ=char_meca ), - COLLAGE =SIMP(statut='f',typ='TXM',defaut="GROSSIER",into=("GROSSIER","FIN","GROUP_MA_1","GROUP_MA_2"),), - regles =(UN_PARMI('POIDS_1','POIDS_2','POIDS_GROSSIER','POIDS_FIN',),), - POIDS_1 =SIMP(statut='f',typ='R'), - POIDS_2 =SIMP(statut='f',typ='R'), - POIDS_GROSSIER =SIMP(statut='f',typ='R'), - POIDS_FIN =SIMP(statut='f',typ='R'),), - - FORCE_POUTRE =FACT(statut='f',max='**', - fr="Applique des forces linéiques sur des éléments de type poutre", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), - PRESENT_ABSENT('FX','N','VY','VZ'), - PRESENT_ABSENT('FY','N','VY','VZ'), - PRESENT_ABSENT('FZ','N','VY','VZ'), - PRESENT_ABSENT('N','FX','FY','FZ'), - PRESENT_ABSENT('VY','FX','FY','FZ'), - PRESENT_ABSENT('VZ','FX','FY','FZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ), -# rajour d'un mot clé REPERE :/ LOCAL /GLOBAL - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - - N =SIMP(statut='f',typ='R' ), - VY =SIMP(statut='f',typ='R' ), - VZ =SIMP(statut='f',typ='R' ), - - ), - - FORCE_TUYAU =FACT(statut='f',max='**', - fr="Applique une pression sur des éléments TUYAU", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='f',typ='R' ), - ), - - FORCE_COQUE =FACT(statut='f',max='**', - fr="Applique des forces surfaciques sur des éléments de types coques", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('F1','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('F2','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('F3','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('MF1','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('MF2','FX','FY','FZ','MX','MY','MZ','PRES'), - PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),), -# rajour d'un mot clé REPERE :/ LOCAL /GLOBAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - - F1 =SIMP(statut='f',typ='R' ), - F2 =SIMP(statut='f',typ='R' ), - F3 =SIMP(statut='f',typ='R' ), - MF1 =SIMP(statut='f',typ='R' ), - MF2 =SIMP(statut='f',typ='R' ), - - PRES =SIMP(statut='f',typ='R' ), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ), - ), - - - GRAPPE_FLUIDE =FACT(statut='f',max='**', - fr="Définit les données de calcul des forces fluides lors des études de chute de grappe", - regles=(EXCLUS('GROUP_NO_EXTR','NOEUD_EXTR'), - EXCLUS('GROUP_NO_ORIG','NOEUD_ORIG'), - PRESENT_PRESENT('CARA_HYDR','VALE_HYDR'), - PRESENT_PRESENT('CARA_GRAPPE','VALE_GRAPPE'), - PRESENT_PRESENT('CARA_COMMANDE','VALE_COMMANDE'), - PRESENT_PRESENT('CARA_MANCHETTE','VALE_MANCHETTE'), - PRESENT_PRESENT('CARA_GUIDE','VALE_GUIDE'), - PRESENT_PRESENT('CARA_ASSEMBLAGE','VALE_ASSEMBLAGE'), - PRESENT_PRESENT('CARA_PDC','VALE_PDC'),), - GROUP_MA =SIMP(statut='f',typ=grma,max=1), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,max=1), - NOEUD_EXTR =SIMP(statut='f',typ=no,max=1), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,max=1), - NOEUD_ORIG =SIMP(statut='f',typ=no,max=1), - Z0 =SIMP(statut='f',typ='R' ), - CARA_HYDR =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données hydrauliques", - into=("Q","ROC","ROD","ROP","ROM","ROML","ROG","NUC","NUM", - "NUML","NUG","P2","P3","P4","CGG","G") ), - VALE_HYDR =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données hydrauliques",), - CARA_GRAPPE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques de la grappe", - into=("M","DTIGE","DTMOY","ROTIGE","LTIGE","LLT","LCT", - "VARAI","RORAI","DCRAY","ROCRAY","LCRAY","LCHUT", - "CFCM","CFCI","CFCG","HRUGC","HRUGTC","NCA") ), - VALE_GRAPPE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques de la grappe",), - CARA_COMMANDE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques du mécanisme de commande", - into=("LI","LML","LG","LIG","DIML","DEML","DCSP", - "DG","HRUGML","HRUGCSP","HRUGG") ), - VALE_COMMANDE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques du mécanisme de commande",), - CARA_MANCHETTE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques de la manchette et son adaptateur", - into=("LM","LA","LIM","DIMT","DEMT","DCMT","VMT", - "ROMT","DA","HRUGM","HRUGA") ), - VALE_MANCHETTE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques de la manchette et son adaptateur",), - CARA_GUIDE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques des tubes guides", - into=("NRET","L0","L1","L2","L3","L4","DTG","DR", - "DOR","D0","D00","HRUGTG") ), - VALE_GUIDE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques des tubes guides",), - CARA_ASSEMBLAGE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des données géométriques des assemblages", - into=("SASS","DCC","DTI","NGM","NGMDP","KM","KS","KI", - "KES","KEI","KF") ), - VALE_ASSEMBLAGE =SIMP(statut='f',typ='R',max='**', - fr="valeurs des données géométriques des assemblages",), - CARA_PDC =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - fr="définition des coefficients de perte de charge singulière", - into=("CD0","CD1","CD2","CDELARG","CDRET","CDM","CDA","CDML", - "CDI","CDG") ), - VALE_PDC =SIMP(statut='f',typ='R',max='**', - fr="valeurs des coefficients de perte de charge singulière",), - APPL_FORC_ARCHI =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , - fr="application de la force d'archimède", - into=("REPARTIE","CDG") ), - APPL_FORC_FPLAQ =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , - fr="application de la force de plaquage dans le guidage continu", - into=("REPARTIE","CDG","ZONE","MILIEU","DISTRI") ), - APPL_FORC_FMEC =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , - fr="application de la force dans le mécanisme de levée", - into=("REPARTIE","CDG","ZONE","PTREP") ), - APPL_FORC_FTG =SIMP(statut='f',typ='TXM',defaut="REPARTIE" , - fr="application de la force tube_guide", - into=("REPARTIE","CDG","ZONE","PTREP") ), - DIRE_FORC_FPLAQ =SIMP(statut='f',typ='R',min=3,max=3, - fr="direction d'application de la force de plaquage",), - b_CDG =BLOC(condition = "(APPL_FORC_ARCHI == 'CDG') or (APPL_FORC_FPLAQ == 'CDG') or \ - (APPL_FORC_FMEC == 'CDG') or (APPL_FORC_FTG == 'CDG')", - MASS_INER =SIMP(statut='o',typ=table_sdaster ), - ), - UNITE_IMPR_FORCE =SIMP(statut='f',typ='I', - fr="unité d'impression des forces",), - UNITE_IMPR_NOEUD =SIMP(statut='f',typ='I', - fr="unité d'impression des noeuds par zone",), - ), - - LIAISON_COQUE =FACT(statut='f',max='**', - fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires", - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - RELA_CINE_BP =FACT(statut='f',max='**', - fr="Etablir des relations cinématiques permettant de relier les noeuds cable aux noeuds du béton, et spécifier" - +" la prise en compte des contraintes initiales dans les cables", - CABLE_BP =SIMP(statut='o',typ=cabl_precont ), - SIGM_BPEL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - RELA_CINE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - FORCE_ELEC =FACT(statut='f',max='**', - fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur" - +" secondaire droit", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - POSITION =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ), - b_fxyz =BLOC ( condition = "POSITION == None", - FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FY =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_para =BLOC ( condition = "POSITION == 'PARA'", - regles=(UN_PARMI('TRANS','DIST'),), - TRANS =SIMP(statut='f',typ='R',max=3), - DIST =SIMP(statut='f',typ='R' ), - b_point2 =BLOC ( condition = "DIST != None", - POINT2 =SIMP(statut='o',typ='R',max=3), - ), - ), - b_fini_infi =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')", - POINT1 =SIMP(statut='o',typ='R',max=3), - POINT2 =SIMP(statut='o',typ='R',max=3), - ), - ), - - - - - INTE_ELEC =FACT(statut='f',max='**', - fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur" - +" secondaire non nécessairement droit", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'), - EXCLUS('TRANS','SYME'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TRANS =SIMP(statut='f',typ='R' ,max='**'), - SYME =SIMP(statut='f',typ='R' ,max='**'), - ), - - - IMPE_FACE =FACT(statut='f',fr="Applique une impédance acoustique à une face",max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - IMPE =SIMP(statut='o',typ='R' ), - ), - - VITE_FACE =FACT(statut='f',fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE), ",max='**', - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - VNOR =SIMP(statut='o',typ='R' ), - ), - - - - ONDE_FLUI =FACT(statut='f',max='**', - fr="Applique une amplitude de pression d'onde incidente sinusoidale arrivant normalement à une face", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='o',typ='R' ), - ), - - FLUX_THM_REP =FACT(statut='f',max='**', - fr="Applique à un domaine de milieu continu 2D ou 3D un flux de chaleur et/ou un apport de masse fluide" - +" (flux hydraulique)", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUN =SIMP(statut='f',typ='R' ), - FLUN_HYDR1 =SIMP(statut='f',typ='R' ), - FLUN_HYDR2 =SIMP(statut='f',typ='R' ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; - - -#& MODIF COMMANDE DATE 24/08/2005 AUTEUR MABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca, - fr="Affectation de charges et conditions aux limites mécaniques complexes", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - DDL_IMPO =FACT(statut='f',max='**', - fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','LIAISON', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), - DX =SIMP(statut='f',typ='C' ), - DY =SIMP(statut='f',typ='C' ), - DZ =SIMP(statut='f',typ='C' ), - DRX =SIMP(statut='f',typ='C' ), - DRY =SIMP(statut='f',typ='C' ), - DRZ =SIMP(statut='f',typ='C' ), - GRX =SIMP(statut='f',typ='C' ), - PRES =SIMP(statut='f',typ='C' ), - PHI =SIMP(statut='f',typ='C' ), - ), - FORCE_POUTRE =FACT(statut='f',max='**', - fr="Applique des forces linéiques sur des éléments de type poutre", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',), - PRESENT_ABSENT('FX','N','VY','VZ',), - PRESENT_ABSENT('FY','N','VY','VZ',), - PRESENT_ABSENT('FZ','N','VY','VZ',), - PRESENT_ABSENT('N','FX','FY','FZ',), - PRESENT_ABSENT('VY', 'FX','FY','FZ',), - PRESENT_ABSENT('VZ','FX','FY','FZ', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), - FX =SIMP(statut='f',typ='C' ), - FY =SIMP(statut='f',typ='C' ), - FZ =SIMP(statut='f',typ='C' ), - N =SIMP(statut='f',typ='C' ), - VY =SIMP(statut='f',typ='C' ), - VZ =SIMP(statut='f',typ='C' ), - ), - LIAISON_DDL =FACT(statut='f',max='**', - fr="Définit une relation linéaire entre les DDLs de deux ou plusieurs noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD', ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='o',typ='R' ,max='**'), - COEF_IMPO =SIMP(statut='o',typ='C' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 02/06/2008 AUTEUR DESOZA T.DESOZA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca, - fr="Affectation de charges et conditions aux limites mécaniques fonction d'un (ou plusieurs) paramètres", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE', - 'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE', - 'PRES_REP','FORCE_POUTRE','VITE_FACE','IMPE_FACE','ONDE_PLANE', - 'LIAISON_OBLIQUE','EPSI_INIT','LIAISON_GROUP','LIAISON_UNIF', - 'LIAISON_SOLIDE','FORCE_COQUE','LIAISON_COQUE','FORCE_TUYAU', - -'CONTACT','EFFE_FOND','FLUX_THM_REP','LIAISON_UNILATER'),), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - MODELE =SIMP(statut='o',typ=modele_sdaster), - - DDL_IMPO =FACT(statut='f',max='**', - fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées) fournies" - +" par l'intermédiaire d'un concept fonction ", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', - 'TEMP','PRE1','PRE2','LIAISON','DCX','DCY','DCZ','H1X', - 'H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z', - 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), - DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRE1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRE2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DCX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DCY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DCZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - H1X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - H1Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - H1Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E1X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E1Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E1Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E2X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E2Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E2Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E3X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E3Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E3Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E4X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E4Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - E4Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - LAGS_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FACE_IMPO =FACT(statut='f',max='**', - fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)" - +" fournies par l'intérmédiaire d'un concept fonction", - regles=(UN_PARMI('GROUP_MA','MAILLE'), - AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','TEMP','PRE1','PRE2','DNOR','DTAN'), - EXCLUS('DNOR','DX'), - EXCLUS('DNOR','DY'), - EXCLUS('DNOR','DZ'), - EXCLUS('DNOR','DRX'), - EXCLUS('DNOR','DRY'), - EXCLUS('DNOR','DRZ'), - EXCLUS('DTAN','DX'), - EXCLUS('DTAN','DY'), - EXCLUS('DTAN','DZ'), - EXCLUS('DTAN','DRX'), - EXCLUS('DTAN','DRY'), - EXCLUS('DTAN','DRZ'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SANS_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SANS_MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - GRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PHI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRE1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRE2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DNOR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DTAN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - LIAISON_DDL =FACT(statut='f',max='**', - fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds, les valeurs sont fournies par" - +" l'intermediaire d'un concept de type fonction", - regles=(UN_PARMI('GROUP_NO','NOEUD'),UN_PARMI('COEF_MULT','COEF_MULT_FONC'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT =SIMP(statut='f',typ='R',max='**'), - COEF_MULT_FONC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - LIAISON_OBLIQUE =FACT(statut='f',max='**', - fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante dans un repère oblique" - +" quelconque, les valeurs sont fournis par l'intermédiaire d'un concept fonction", - regles=(UN_PARMI('GROUP_NO','NOEUD'), - UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - ANGL_NAUT =SIMP(statut='o',typ='R',max=3), - DX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DRZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - LIAISON_GROUP =FACT(statut='f',max='**', - fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds, les valeurs sont fournies par" - +" l'intermédiaire de concept fonction", - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DDL_1 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='o',typ='TXM',max='**'), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - CENTRE =SIMP(statut='f',typ='R',max=3), - ), -# -# LIAISON UNILATERALE -# - LIAISON_UNILATER=FACT(statut='f',max='**', - fr="Définit les zones soumises à des conditions de liaison unilaterale (inegalite sur un DDL)", - regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - - COEF_IMPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), - - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("CONTRAINTE","GCPC",) ), - - - ), - CONTACT =FACT(statut='f', - fr="Définit les zones soumises à des conditions de contact unilatéral avec ou \sans frottement, certaines valeurs" - +" sont données par l'intermédiaire de concept fonction",max='**', - regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),), - APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL", - into=("NODAL","MAIT_ESCL","MAIT_ESCL_SYME")), - RECHERCHE =SIMP(statut='f',typ='TXM',defaut="NOEUD_BOUCLE",into=("NOEUD_BOUCLE","NOEUD_VOISIN")), - LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - DIST_POUTRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), - DIST_COQUE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")), - NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT",into=("MAIT","MAIT_ESCL")), - METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE", - into=("CONTRAINTE","VERIF","LAGRANGIEN","PENALISATION","CONTINUE","GCP") ), - PROJECTION =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - b_cara =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'", - CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ), - ), - - b_verif =BLOC(condition = "METHODE == 'VERIF' ", - fr="Paramètres de la méthode sans calcul de contact", - STOP_INTERP =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - TOLE_INTERP =SIMP(statut='f',typ='R',defaut = 0.), - DIST_MAIT =SIMP(statut='f',typ='R'), - DIST_ESCL =SIMP(statut='f',typ='R'), - VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), - ), - - b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ", - fr="Paramètres de la méthode des contraintes actives (contact uniquement)", - GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ", - ALARME_JEU =SIMP(statut='f',typ='R',defaut=0.), - ), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON")), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ", - fr="Parametre de la reactualisation geometrique", - - ), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ", - fr="Parametre de la reactualisation geometrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'), - - ), - b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - fr="Parametre de la reactualisation geometrique auto", - ), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), - DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ", - fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)", - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON")), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - ITER_MULT_MAXI =SIMP(statut='f',typ='I' ,defaut=4), - - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Parametre de la reactualisation geometrique", - ), - b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Parametre de la reactualisation geometrique", - NB_REAC_GEOM =SIMP(statut='o',typ='I'), - - ), - b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - fr="Parametre de la reactualisation geometrique auto", - ), - - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - b_penalisation =BLOC(condition = "METHODE == 'PENALISATION' ", - fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)", - E_N =SIMP(statut='f',typ='R'), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON")), - NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ), - ITER_MULT_MAXI =SIMP(statut='f',typ='I',defaut=4), - - REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE", - into=("AUTOMATIQUE","CONTROLE","SANS")), - b_reac_sans =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique", - ), - 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'), - ), - b_reac_auto =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ", - fr="Paramètre de la réactualisation géométrique auto", - ), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3), - VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - COULOMB =SIMP(statut='o',typ='R',), - E_T =SIMP(statut='f',typ='R', - fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"), - COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0), - ),), - b_continue =BLOC(condition = "METHODE == 'CONTINUE' ", - fr="Paramètres de la méthode continue (contact avec ou sans frottement)", -# regles=(UN_PARMI('GLISSIERE','FROTTEMENT'),), - GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON", - into=("OUI","NON")), - b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ", - ALARME_JEU =SIMP(statut='f',typ='R',defaut=0.), - ), - FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), - COMPLIANCE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - FOND_FISSURE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - RACCORD_LINE_QUAD=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - - INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2", - "NCOTES","NCOTES1","NCOTES2")), - 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,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_FOND_FISSURE =BLOC(condition = "FOND_FISSURE == 'OUI' ",fr="TRAITEMENT EN FOND DE FISSURE", - regles=(UN_PARMI('NOEUD_FOND','GROUP_NO_FOND','MAILLE_FOND','GROUP_MA_FOND'),), - NOEUD_FOND =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO_FOND =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE_FOND =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_FOND =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),), - b_RACCORD_SURF =BLOC(condition = "RACCORD_LINE_QUAD == 'OUI' ",fr="TRAITEMENT DU RACCORD SURFACIQUE", - regles=(UN_PARMI('NOEUD_RACC','GROUP_NO_RACC'),), - NOEUD_RACC =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO_RACC =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),), - - b_compliance =BLOC(condition = "COMPLIANCE == 'OUI' ",fr="Parametres de la compliance", - ASPERITE =SIMP(statut='o',typ='R',), - E_N =SIMP(statut='o',typ='R',), - E_V =SIMP(statut='f',typ='R',defaut=0.E+0),), - b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb", - 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.),),), - - b_gcp =BLOC(condition = "METHODE == 'GCP' ", - fr="Paramètres de la méthode du gradient conjugué projeté (contact uniquement)", - RESI_ABSO =SIMP(statut='o',typ='R', - fr="Critère de convergence (niveau d'interpénétration autorisé)"), - REAC_ITER =SIMP(statut='f',typ='I',defaut=3, fr="Fréquence de réinitialisation de la conjugaison"), - TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50), - TOLE_PROJ_INT =SIMP(statut='f',typ='R' ,defaut=0.001), - 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_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")), - VECT_NORM_ESCL =SIMP(statut='f',typ='R',max=3), - VECT_ORIE_POU =SIMP(statut='f',typ='R',min=3,max=3), - DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - ), - - LIAISON_UNIF =FACT(statut='f',max='**', - fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - DDL =SIMP(statut='o',typ='TXM',max='**'), - ), - - LIAISON_SOLIDE =FACT(statut='f',max='**', - fr="Modélise une partie indéformable d'une structure", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), - ), - - - - FORCE_NODALE =FACT(statut='f',max='**', - fr="Applique à des noeuds des forces nodales dont les valeurs des composantes sont fournies par l'intermédiaire" - +" d'un concept fonction", - regles=(UN_PARMI('GROUP_NO','NOEUD'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ANGL_NAUT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max=3 ), - ), - - FORCE_FACE =FACT(statut='f',max='**', - fr="Applique des forces surfaciques sur une face d'élément volumique dont les valeurs des composantes sont fournies" - +" par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - FORCE_ARETE =FACT(statut='f',max='**', - fr="Applique des forces linéiques à une arete d'élément volumique ou de coque dont les valeurs des composantes sont" - +" fournies par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - FORCE_CONTOUR =FACT(statut='f',max='**', - fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER, dont les valeurs des composantes" - +" sont fournies par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FORCE_INTERNE =FACT(statut='f',max='**', - fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique, dont les valeurs des composantes sont fournies" - +" par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - PRES_REP =FACT(statut='f',max='**', - fr="Applique une pression à un domaine de milieu continu 2D ou 3D ou à un domaine de coques et tuyaux, dont les" - +" valeurs imposées (pression et/ou cisaillement) sont fournies par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('PRES','CISA_2D'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - CISA_2D =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - EFFE_FOND =FACT(statut='f',max='**', - fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise" - +" à une pression dont la valeur est fournie par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),), - GROUP_MA_INT =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - EPSI_INIT =FACT(statut='f',max='**', - fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure dont les composantes" - +" du tenseur de déformation sont fournies par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - EPXX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPYY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPZZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPXY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPXZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPYZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FORCE_POUTRE =FACT(statut='f',max='**', - fr="Applique des forces linéiques sur des éléments de type poutre dont les valeurs sont fournies par" - +" l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'), - PRESENT_ABSENT('FX','N','VY','VZ'), - PRESENT_ABSENT('FY','N','VY','VZ'), - PRESENT_ABSENT('FZ','N','VY','VZ'), - PRESENT_ABSENT('N','FX','FY','FZ'), - PRESENT_ABSENT('VY','FX','FY','FZ'), - PRESENT_ABSENT('VZ','FX','FY','FZ'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FORCE_TUYAU =FACT(statut='f',max='**', - fr="Applique une pression sur des éléments TUYAU, la valeur est fournie par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - FORCE_COQUE =FACT(statut='f',max='**', - fr="Applique des forces surfaciques sur des éléments de types coques dont les valeurs sont fournies par" - +" l'intermédiaires d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'), - PRESENT_ABSENT('F1','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('F2','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('F3','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('MF1','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('MF2','PRES','FX','FY','FZ','MX','MY','MZ'), - PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),), -# rajout d un mot cle REPERE : / GLOBAL / LOCAL - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MX =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - F1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - F2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - F3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MF1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MF2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL", - into=("SUP","INF","MOY","MAIL") ), - ), - - LIAISON_COQUE =FACT(statut='f',max='**', - fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires", - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ), - ), - - - VITE_FACE =FACT(statut='f',max='**', - fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE) dont les valeurs sont fournies par" - +" l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - PRESENT_ABSENT('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - VNOR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - IMPE_FACE =FACT(statut='f',max='**', - fr="Applique à une face une impédance acoustique dont la valeur est fournie par l'intermédiaire" - +" d'un concept fonction", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE'), - PRESENT_ABSENT('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - IMPE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - ONDE_PLANE =FACT(statut='f',max='**', - fr="Impose un chargement sismique par onde plane dont la valeur est fournie par l'intermédiaire" - +" d'un concept fonction", - DIRECTION =SIMP(statut='o',typ='R',max='**'), - TYPE_ONDE =SIMP(statut='o',typ='TXM' ), - FONC_SIGNAL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DIST_ORIG =SIMP(statut='o',typ='R' ), - ), - - - - FLUX_THM_REP =FACT(statut='f',max='**', - fr="Applique à un domaine continue 2D ou 3D un flux de chaleur et/ou un apport de masse fluide (flux hydraulique)" - +" dont les valeurs des flux sont fournies par l'intermédiaire d'un concept fonction", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUN_HYDR1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FLUN_HYDR2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; - - -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther, - fr="Affectation de charges et conditions limites thermiques spécifique à CARA_TORSION", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - regles=(AU_MOINS_UN('CARA_TORSION', ),), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI", - into=("OUI","NON") ), - CARA_TORSION =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther - ,fr="Affectation de charges et conditions aux limites thermiques constantes", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE', - 'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP', - 'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - - TEMP_IMPO =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'), - AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TEMP =SIMP(statut='f',typ='R'), - TEMP_INF =SIMP(statut='f',typ='R'), - TEMP_SUP =SIMP(statut='f',typ='R'), ), - - FLUX_REP =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - PRESENT_PRESENT('CARA_TORSION','GROUP_MA'), - AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','CARA_TORSION') ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUN =SIMP(statut='f',typ='R'), - FLUN_INF =SIMP(statut='f',typ='R'), - FLUN_SUP =SIMP(statut='f',typ='R'), - CARA_TORSION =SIMP(statut='f',typ=table_sdaster), - ), - - - RAYONNEMENT =FACT(statut='f',max='**', - fr="Attention, exprimer les températures en Celsius si rayonnement", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SIGMA =SIMP(statut='o',typ='R'), - EPSILON =SIMP(statut='o',typ='R'), - TEMP_EXT =SIMP(statut='o',typ='R'), - ), - - ECHANGE =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'), - ENSEMBLE('COEF_H','TEMP_EXT',), - ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'), - ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - COEF_H =SIMP(statut='f',typ='R'), - TEMP_EXT =SIMP(statut='f',typ='R'), - COEF_H_INF =SIMP(statut='f',typ='R'), - TEMP_EXT_INF =SIMP(statut='f',typ='R'), - COEF_H_SUP =SIMP(statut='f',typ='R'), - TEMP_EXT_SUP =SIMP(statut='f',typ='R'), - ), - - SOURCE =FACT(statut='f',max='**', - regles=(UN_PARMI('SOUR','SOUR_CALCULEE',), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('SOUR_CALCULEE','TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - SOUR =SIMP(statut='f',typ='R'), - SOUR_CALCULEE =SIMP(statut='f',typ=(cham_elem) ), - ), - - GRAD_TEMP_INIT =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - FLUX_X =SIMP(statut='f',typ='R' ), - FLUX_Y =SIMP(statut='f',typ='R' ), - FLUX_Z =SIMP(statut='f',typ='R' ), - ), - - LIAISON_DDL =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD', ),), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**', - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - ), - - LIAISON_GROUP =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'), - EXCLUS('GROUP_MA_1','GROUP_NO_2'), - EXCLUS('GROUP_MA_1','NOEUD_2'), - EXCLUS('GROUP_NO_1','GROUP_MA_2'), - EXCLUS('GROUP_NO_1','MAILLE_2'), - EXCLUS('MAILLE_1','GROUP_NO_2'), - EXCLUS('MAILLE_1','NOEUD_2'), - EXCLUS('NOEUD_1','GROUP_MA_2'), - EXCLUS('NOEUD_1','MAILLE_2'), - EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DDL_1 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - COEF_MULT_1 =SIMP(statut='o',typ='R',max='**'), - DDL_2 =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP",) ), - COEF_MULT_2 =SIMP(statut='o',typ='R',max='**'), - COEF_IMPO =SIMP(statut='o',typ='R' ), - SOMMET =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRAN =SIMP(statut='f',typ='R',max='**'), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**'), - CENTRE =SIMP(statut='f',typ='R',max='**'), - ), - - LIAISON_MAIL =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'), - AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL', - 'NOEUD_ESCL'),), - GROUP_MA_MAIT =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_ESCL =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_ESCL =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_ESCL =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TRAN =SIMP(statut='f',typ='R',max='**' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max='**' ), - CENTRE =SIMP(statut='f',typ='R',max='**' ), - ELIM_MULT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - ECHANGE_PAROI =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'), - UN_PARMI('GROUP_MA_2','MAILLE_2'),), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - COEF_H =SIMP(statut='f',typ='R'), - TRAN =SIMP(statut='f',typ='R',min=2,max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - CENTRE =SIMP(statut='f',typ='R',min=2,max=3), - ), - - LIAISON_UNIF =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DDL =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP", - into=("TEMP","TEMP_INF","TEMP_SUP") ), - ), - - LIAISON_CHAMNO =FACT(statut='f',max='**', - CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster),# CO()# "il faut definir une structure de donnee generique chamno" - COEF_IMPO =SIMP(statut='o',typ='R' ), - NUME_LAGR =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ), - ), - - CONVECTION =FACT(statut='f',max='**', - VITESSE =SIMP(statut='o',typ=(cham_no_sdaster) ), - ), - - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -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_sdaster ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 28/08/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 -AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater, - fr="Affecter des matériaux à des zones géométriques d'un maillage", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=modele_sdaster), - - # affectation du nom du matériau (par mailles): - # ---------------------------------------------- - AFFE =FACT(statut='o',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - MATER =SIMP(statut='o',typ=mater_sdaster,max=30), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - # affectation du nom du matériau (par noeuds): - # ---------------------------------------------- - AFFE_NOEUD =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - MATER =SIMP(statut='o',typ=mater_sdaster,max=1), - ), - - # affectation 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","SECH","EPSA","M_ACIER","M_ZIRC","NEUT1","NEUT2")), - - AFFE_VARC =FACT(statut='f',max='**', - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - PRESENT_ABSENT('GROUP_MA','TOUT'), - PRESENT_ABSENT('MAILLE','TOUT'), - UN_PARMI('EVOL','CHAMP_GD'),), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), # [défaut] - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - CHAMP_GD =SIMP(statut='f',typ=cham_gd_sdaster,), - B_CHAMP_GD =BLOC(condition="CHAMP_GD!=None", - NOM_VARC =SIMP(statut='o',typ='TXM', into=("CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC","EPSA","NEUT1","NEUT2")), - ), - EVOL =SIMP(statut='f',typ=evol_sdaster,), - B_EVOL =BLOC(condition="EVOL!=None", - NOM_VARC =SIMP(statut='o',typ='TXM', into=("CORR","IRRA","HYDR","SECH","M_ACIER","M_ZIRC","EPSA","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_SECH =BLOC(condition="NOM_VARC=='SECH'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'TEMP',),), - B_NOM_EPSA =BLOC(condition="NOM_VARC=='EPSA'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'EPSA_ELNO',),), - B_NOM_M_ACIER =BLOC(condition="NOM_VARC=='M_ACIER'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'META_ELNO_TEMP',),), - B_NOM_M_ZIRC =BLOC(condition="NOM_VARC=='M_ZIRC'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'META_ELNO_TEMP',),), - B_NOM_NEUT1 =BLOC(condition="NOM_VARC=='NEUT1'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'NEUT',),), - B_NOM_NEUT2 =BLOC(condition="NOM_VARC=='NEUT2'",NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'NEUT',),), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - VALE_REF =SIMP(statut='f',typ='R'), - ), - - # 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=("EPSAXX","EPSAYY","EPSAZZ","EPSAXY","EPSAXZ","EPSAYZ",)), - VALE_DEF =SIMP(statut='c',typ='R',max=6,min=6,defaut=( 0., 0., 0., 0., 0., 0., )), - ), - # mots clés cachés pour variable de commande metallurgique ACIER : - # ----------------------------------------------------------------- - VARC_M_ACIER =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="M_ACIER"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="VARI_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=7,min=7,defaut=("V1","V2","V3","V4","V5","V6","V7")), - CMP_VARC =SIMP(statut='c',typ='TXM',max=7,min=7,defaut=("PFERRITE","PPERLITE","PBAINITE", - "PMARTENS","TAUSTE","TRANSF","TACIER",)), - VALE_DEF =SIMP(statut='c',typ='R',max=7,min=7,defaut=( 0., 0., 0., 0., 0., 0., 0. )), - ), - # mots clés cachés pour variable de commande metallurgique ZIRCALOY : - # -------------------------------------------------------------------- - VARC_M_ZIRC =FACT(statut='d', - NOM_VARC =SIMP(statut='c',typ='TXM',defaut="M_ZIRC"), - GRANDEUR =SIMP(statut='c',typ='TXM',defaut="VARI_R"), - CMP_GD =SIMP(statut='c',typ='TXM',max=3,min=3,defaut=("V1","V2","V3")), - CMP_VARC =SIMP(statut='c',typ='TXM',max=3,min=3,defaut=("ALPHPUR","ALPHBETA","TZIRC",)), - VALE_DEF =SIMP(statut='c',typ='R',max=3,min=3,defaut=( 0., 0., 0. )), - ), -) ; - - -#& MODIF COMMANDE DATE 31/10/2006 AUTEUR A3BHHAE H.ANDRIAMBOLOLONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster, - UIinfo={"groupes":("Modélisation",)}, - fr="Définir le phénomène physique modélisé et le type d'éléments finis sur le maillage",reentrant='n', - regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),), - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - VERIF =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,into=("MAILLE","NOEUD") ), - AFFE_SOUS_STRUC =FACT(statut='f', - regles=(UN_PARMI('TOUT','SUPER_MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - SUPER_MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - PHENOMENE =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ), - ), - AFFE =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - PHENOMENE =SIMP(statut='o',typ='TXM', - into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ), - b_mecanique =BLOC( condition = "PHENOMENE=='MECANIQUE'", - fr="modélisations mécaniques", - MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( - "2D_DIS_T", - "2D_DIS_TR", - "2D_FLUI_ABSO", - "2D_FLUI_PESA", - "2D_FLUI_STRU", - "2D_FLUIDE", - "3D", - "3D_ABSO", - "3D_FAISCEAU", - "3D_FLUI_ABSO", - "3D_FLUIDE", - "3D_INCO", - "3D_SI", - "3D_GRAD_EPSI", - "3D_GRAD_VARI", - "3D_XFEM", - "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_X", - "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_X", - "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", - "D_PLAN_HM_P", - "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'", - fr="modélisations thermiques", - MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( - "3D", - "3D_DIAG", - "AXIS", - "AXIS_DIAG", - "AXIS_FOURIER", - "COQUE", - "COQUE_AXIS", - "COQUE_PLAN", - "PLAN", - "PLAN_DIAG", - ),),), - - b_acoustique =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'", - fr="modélisations acoustiques", - MODELISATION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=( - "3D", - "PLAN" - ), ),), - - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -AIDE=PROC(nom="AIDE",op=42, - UIinfo={"groupes":("Modélisation",)}, - fr="Interroger et imprimer une documentation partielle sur les noms des concepts déjà définis et sur les couples" - +" (type d'éléments, option) disponibles dans la version.", - regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),), - UNITE =SIMP(statut='f',typ='I',defaut=8), - TYPE_ELEM =FACT(fr="couple type_elem option",statut='f', - INITEL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - ), - CONCEPT =FACT(statut='f',max='**', - NOM =SIMP(fr="liste des noms de concept",statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="*"), - OPTION =SIMP(fr="option d'édition de concept",statut='f',typ='TXM',defaut="TOUT_TYPE", - into=("TOUT_TYPE","CREER","A_CREER",) ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster, - fr="Assembler deux maillages pour en former un nouveau", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - MAILLAGE_1 = SIMP(statut='o',typ=maillage_sdaster,), - MAILLAGE_2 = SIMP(statut='o',typ=maillage_sdaster,), - OPERATION = SIMP(statut='o',typ='TXM',into=("SOUS_STR","SUPERPOSE","COLLAGE"),), - b_collage = BLOC(condition = "OPERATION == 'COLLAGE'", - COLLAGE = FACT(statut='o', - GROUP_MA_1 =SIMP(statut='o',typ=grma), - GROUP_MA_2 =SIMP(statut='o',typ=grma), - ), - ), -) ; -#& MODIF COMMANDE DATE 18/04/2005 AUTEUR NICOLAS O.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=matr_asse_gene_r, - fr="Assemblage des matrices généralisées de macro éléments pour construction de la matrice globale généralisée", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - METHODE =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ), - b_option =BLOC(condition = "METHODE == 'CLASSIQUE'", - OPTION =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","MASS_GENE","AMOR_GENE") ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def asse_matrice_prod(MATR_ELEM,**args): - if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r - if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c - if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r - if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c - raise AsException("type de concept resultat non prevu") - -ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod, - fr="Construction d'une matrice assemblée",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - MATR_ELEM =SIMP(statut='o', - typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ), - NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster), - CHAR_CINE =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET - -ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=cham_no_sdaster, - fr="Construire un champ aux noeuds par assemblage de vecteurs élémentaires",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - VECT_ELEM =SIMP(statut='o',typ=vect_elem,max='**'), - NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), - INFO =SIMP(statut='f',typ='I',into=(1,2,) ), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene, - fr="Projection des chargements sur la base modale d'une sous structure", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - METHODE =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ), - b_nume =BLOC(condition = "METHODE == 'CLASSIQUE'", - CHAR_SOUS_STRUC =FACT(statut='o',max='**', - SOUS_STRUC =SIMP(statut='o',typ='TXM' ), - VECT_ASSE =SIMP(statut='o',typ=cham_no_sdaster ), - ), - ), -) ; -#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster, - fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - ENER_SOL =FACT(statut='o', - regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'), - PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'), -# Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ') - PRESENT_PRESENT('KRX','KRY'), - PRESENT_PRESENT('KRX','KRZ'), - PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'), - PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'), - PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),), - METHODE =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - GROUP_NO_RADIER =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - GROUP_MA_RADIER =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - FONC_GROUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_GROUP =SIMP(statut='f',typ='R',max='**'), - KX =SIMP(statut='o',typ='R' ), - KY =SIMP(statut='o',typ='R' ), - KZ =SIMP(statut='o',typ='R' ), - KRX =SIMP(statut='f',typ='R' ), - KRY =SIMP(statut='f',typ='R' ), - KRZ =SIMP(statut='f',typ='R' ), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - COOR_CENTRE =SIMP(statut='f',typ='R',max=3), - ), - AMOR_INTERNE =FACT(statut='o', - ENER_POT =SIMP(statut='o',typ=table_sdaster ), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), - ), - AMOR_SOL =FACT(statut='o', - AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FONC_AMOR_GEO =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - HOMOGENE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 0.3 ), - ), -) ; -#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX - -CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=cham_elem, - fr="Calculer un champ élémentaire en thermique et en accoustique à partir de champs déjà calculés", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - regles=(EXCLUS('TOUT','GROUP_MA',),EXCLUS('TOUT','MAILLE',),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - -# -# -# introduire un mot cle de type modelisation : mécanique,thermique,... -# - - OPTION =SIMP(statut='o',typ='TXM', - into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP", - "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG", - "COOR_ELGA"), ), - - b_thermique =BLOC(condition="OPTION in ('FLUX_ELNO_TEMP','FLUX_ELGA_TEMP',)", - TEMP =SIMP(statut='o',typ=(cham_no_sdaster,)), - ), - - b_acoustique =BLOC(condition="OPTION in ('PRES_ELNO_DBEL','PRES_ELNO_REEL','PRES_ELNO_IMAG',)", - PRES =SIMP(statut='o',typ=(cham_no_sdaster,)), - ), - - - - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','COEF_MULT', ),), - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_MULT =SIMP(statut='f',typ='R'), ), - - INST =SIMP(statut='f',typ='R',defaut= 0.E+0), - ACCE =SIMP(statut='f',typ=cham_no_sdaster), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ANGLE =SIMP(statut='f',typ='I',defaut= 0), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET - -CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=cham_no_sdaster, - fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), - CHAR_CINE =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ),validators=NoRepeat(),max='**' ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def calc_char_seisme_prod(MATR_MASS,**args ): - if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_sdaster - raise AsException("type de concept resultat non prevu") - -CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op= 92,sd_prod=calc_char_seisme_prod, - reentrant='n',fr="Calcul du chargement sismique", - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),), - MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ), - DIRECTION =SIMP(statut='o',typ='R',max=6,fr="Directions du séisme imposé"), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - b_mode_stat =BLOC ( condition = "MODE_STAT != None", - regles=(UN_PARMI('NOEUD','GROUP_NO' ),), - NOEUD =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 07/11/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 -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,fourier_ther, - 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'), - CONCEPT_SENSIBLE("SEPARE"), - DERIVABLE('RESULTAT'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="le calcul ne sera effectué que sur ces mailles là"), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**', - fr="le calcul ne sera effectué que sur ces mailles là"), - -# definition d'un repere local - - REPE_COQUE =FACT(statut='f',max='**', - fr="définiton du lieu de post-traitement", - regles=EXCLUS('ANGL_REP','VECTEUR'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**',), - - NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1, - fr="numero de couche dans l'épaisseur de la coque ou du tuyau" ), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"), - fr="position dans l'épaisseur de la coque, ou de la couche" ), - - ANGLE =SIMP(statut='f',typ='I',defaut= 0, - fr="angle de dépouillement pour les tuyaux, en degres à partir de la génératrice" ), - - PLAN =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"), - fr="Plan de calcul pour les plaques excentrées" ), - - ANGL_REP =SIMP(statut='f',typ='R',min=2,max=2, - fr="définition du repere de post-traitement, par défaut ANGL_REP=(0.,0.)"), - VECTEUR =SIMP(statut='f',typ='R',min=3,max=3, - fr="définition du repere de post-traitement, par défaut VECTEUR=(1.,0.,0.)"), - ), - -# options pour des resultats lineaires - - b_lineaire =BLOC( condition = "AsType(RESULTAT) in (evol_elas,dyna_trans,dyna_harmo,mode_meca,\ - mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc,\ - mult_elas,fourier_elas,base_modale,mode_flamb)", - fr="options mecaniques lineaires", - TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques lineaires", - into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT","DERIVEES", - "INDI_ERREUR","AUTRES","TOUTES"), - ), - b_toutes=BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="SIEF_ELNO_ELGA", - # contraintes - into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART", - "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","SIGM_ELNO_TUYO","ARCO_ELNO_SIGM", - # déformations - "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELGA_DEPL","EPSG_ELNO_DEPL", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL","DEGE_ELNO_DEPL","EPSI_ELNO_TUYO", - "EPVC_ELNO","EPVC_ELGA", - # ENER - "EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA", - "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM", - # estimateurs erreur - "SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA","ERZ2_ELEM_SIGM", - "SIRE_ELNO_DEPL","ERRE_ELEM_SIGM","ERRE_ELNO_ELEM", - "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM", - "SING_ELEM","SING_ELNO_ELEM", - # CRIT - "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","CRIT_ELNO_RUPT", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "ENDO_ELGA","ENDO_ELNO_ELGA", - "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", - # derivees - "DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI", - # autres - "VNOR_ELEM_DEPL","VALE_NCOU_MAXI","PRES_DBEL_DEPL"),), - - NOM_CHAM =SIMP(statut='f',typ='TXM',fr="nom du champ pour VALE_NCOU_MAXI", ), - NOM_CMP =SIMP(statut='f',typ='TXM',fr="nom de la composante pour VALE_NCOU_MAXI", ), - - b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \ - (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)", - RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),), - - b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \ - (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)", - PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max= 1., - fr="precision demandee pour calculer la carte de taille des elements"),), - - EXCIT =FACT(statut='f',max='**', - fr="Charges contenant les températures, les efforts répartis pour les poutres...", - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=char_meca ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), - - - ), -# fin bloc b_toutes - - b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'", - fr="options de contraintes elasticite 2D et 3D", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA', - fr="option de calcul des contraintes", - into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",),), - - b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'SIEF_ELGA_DEPL' in OPTION ) ", - fr="charge contenant les temperatures ou autre charge", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=char_meca ),), - ), - ), - - b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'", - fr="options de contraintes elasticite poutres, coques, tuyaux", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA', - fr="option de calcul des contraintes ou efforts generalises", - into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL","SIGM_ELNO_TUYO", - "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART", - "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF"),), - - b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',\ - 'SIPO_ELNO_DEPL','EFGE_ELNO_DEPL',) or \ - (type(OPTION)==type(()) and 'SIGM_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'SIEF_ELGA_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'SIPO_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'EFGE_ELNO_DEPL' in OPTION ) ", - fr="charge contenant les temperatures ou les efforts répartis (poutres) ou autre", - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='f',typ=char_meca ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), - ), - - - ), -# fin bloc contraintes struct - - b_epsi =BLOC( condition = "TYPE_OPTION=='EPSI'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPME_ELNO_DEPL","EPME_ELGA_DEPL", - "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO","EPVC_ELNO","EPVC_ELGA",), - ), -b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ELGA_DEPL','EPSI_ELNO_DEPL','EPSI_ELNO_TUYO' ) or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_TUYO' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPSI_ELGA_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPME_ELNO_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'EPME_ELGA_DEPL' in OPTION ) ", - fr="charge contenant les temperatures", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - ), - b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA", - "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM",), - ), - b_charge =BLOC( condition = "OPTION in ('EPOT_ELEM_DEPL','ECIN_ELEM_DEPL','ENEL_ELGA','ENEL_ELNO_ELGA',) or \ - (type(OPTION)==type(()) and 'EPOT_ELEM_DEPL' in OPTION ) or \ - (type(OPTION)==type(()) and 'ENEL_ELGA' in OPTION ) or \ - (type(OPTION)==type(()) and 'ENEL_ELNO_ELGA' in OPTION ) or \ - (type(OPTION)==type(()) and 'ECIN_ELEM_DEPL' in OPTION ) ", - fr="charge contenant les temperatures", - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),), - ), - ), - - b_crit =BLOC( condition = "TYPE_OPTION=='CRIT'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "ENDO_ELGA","ENDO_ELNO_ELGA", - "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", - ) ), - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - - b_derivees =BLOC( condition = "TYPE_OPTION=='DERIVEES'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI", - ) ),), - - b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("VALE_NCOU_MAXI","PRES_DBEL_DEPL","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_erreur =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELEM_SIGM", - into=("SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA","ERZ2_ELEM_SIGM", - "SIRE_ELNO_DEPL","ERRE_ELEM_SIGM","ERRE_ELNO_ELEM", - "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM", - "SING_ELEM","SING_ELNO_ELEM", - )), - - b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \ - (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)", - RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),), - - b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \ - (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)", - PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1., - fr="precision demandee pour calculer la carte de taille des elements" ),), - - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - ), -# fin bloc lineaire - - -# statique ou dynamique non lineaire : evol_noli - b_noli =BLOC( condition = "AsType(RESULTAT) == evol_noli",fr="options evol noli", - TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES', - into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT", - "VARI","INDI_ERREUR","TOUTES","AUTRES"), - ), - b_toutes =BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=( "SIEF_ELNO_ELGA", - "SIGM_ELNO_TUYO","SIGM_ELNO_COQU","ARCO_ELNO_SIGM", - "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","EFGE_ELNO_CART", - # EPSI - "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL", - "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO", - "EPSP_ELNO","EPSP_ELGA", - "EPFD_ELNO","EPFD_ELGA","EPVC_ELNO","EPVC_ELGA", - "EPFP_ELNO","EPFP_ELGA", - "VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU","CRIT_ELNO_RUPT", - "EXTR_ELGA_VARI","EXTR_ELNO_VARI", - # CRIT - "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", - "ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM", - "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM", - "ENDO_ELGA","ENDO_ELNO_ELGA","INDI_LOCA_ELGA","SING_ELEM", - "SING_ELNO_ELEM","ENDO_ELNO_SIGA","ENDO_ELNO_SINO", - "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","ENEL_ELGA","ENEL_ELNO_ELGA", - "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","VALE_NCOU_MAXI"), - ), - NORME =SIMP(statut='f',typ='TXM',defaut="VMIS", - into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE"), - fr="Type de norme pour les options RADI_ et DCHA_"), - - NOM_CHAM =SIMP(statut='f',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI"), - NOM_CMP =SIMP(statut='f',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"), - - b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \ - (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)", - RESU_DUAL=SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual"),), - - b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \ - (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)", - PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1., - fr="precision demandee pour calculer la carte de taille des elements" ),), - - - b_extr = BLOC( condition = "OPTION in ('EXTR_ELNO_VARI','EXTR_ELGA_VARI')", - NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire", - into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR", - "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23", - "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE"),), - ), - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=char_meca ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), - ), - - b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'", - fr="options de contraintes non lin 2D et 3D", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - # contraintes - into=( "SIEF_ELNO_ELGA",),), - ), - - b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'", - fr="options de contraintes non lin poutres, coques", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - # contraintes - into=( "SIEF_ELNO_ELGA","EFGE_ELNO_CART","SIGM_ELNO_TUYO","SIGM_ELNO_COQU", - "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",),), - ), - - b_epsi =BLOC( condition = "TYPE_OPTION=='EPSI'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=( "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL", - "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL", - "EPSP_ELNO","EPSP_ELGA","DEGE_ELNO_DEPL","EPVC_ELNO","EPVC_ELGA", - "EPFD_ELNO","EPFD_ELGA","EPFP_ELNO","EPFP_ELGA"), - ), - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - b_epstuyo =BLOC( condition = "OPTION == 'EPSI_ELNO_TUYO' or \ - (type(OPTION)==type(()) and 'EPSI_ELNO_TUYO' in OPTION) ", - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - - b_vari =BLOC( condition = "TYPE_OPTION=='VARI'", - fr="Calcul et extraction des variables internes", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU", - "EXTR_ELGA_VARI","EXTR_ELNO_VARI"), - ), - b_extr =BLOC( condition = "OPTION in ('EXTR_ELNO_VARI','EXTR_ELGA_VARI')", - NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire", - into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR", - "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23", - "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE"),), - ), - ), - - b_ener =BLOC( condition = "TYPE_OPTION=='ENER'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","ENEL_ELGA","ENEL_ELNO_ELGA",), - ), - EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures", - CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),), - ), - - b_crit =BLOC( condition = "TYPE_OPTION=='CRIT'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM", - "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME", - "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT", - "ENDO_ELGA","ENDO_ELNO_ELGA", - "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO", - ) ), - ), - - b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("VALE_NCOU_MAXI",) ), - b_maxi =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \ - (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)", - NOM_CHAM =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ), - NOM_CMP =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),), - ), - - - b_indi_erreur =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELEM_SIGM", - into=("ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM", - "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM", - "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM", - "SING_ELEM","SING_ELNO_ELEM",) ), - - b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \ - (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \ - (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)", - RESU_DUAL =SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual")), - - b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \ - (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)", - PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1., - fr="precision demandee pour calculer la carte de taille des elements" ),), - - b_indic = BLOC( condition ="OPTION in ('DCHA_ELNO_SIGM','DCHA_ELGA_SIGM','RADI_ELNO_SIGM','RADI_ELGA_SIGM') or\ - (type(OPTION)==type(()) and 'DCHA_ELNO_SIGM' in OPTION) or\ - (type(OPTION)==type(()) and 'DCHA_ELGA_SIGM' in OPTION) or\ - (type(OPTION)==type(()) and 'RADI_ELNO_SIGM' in OPTION) or\ - (type(OPTION)==type(()) and 'RADI_ELGA_SIGM' in OPTION) ", - NORME =SIMP(statut='f',typ='TXM',defaut="VMIS", - into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ), - ), - ), - ), -# fin bloc evol_noli - -# thermique : evol_ther, fourier_ther - b_ther =BLOC( condition = "AsType(RESULTAT) in (evol_ther,fourier_ther,)" ,fr="options thermiques", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("DEUL_ELGA_TEMP","DETE_ELNO_DLTE","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP", - "HYDR_ELNO_ELGA","DURT_ELGA_META","DURT_ELNO_META", - "SOUR_ELGA_ELEC","ERRE_ELEM_TEMP","ERRE_ELNO_ELEM",),), - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=char_ther ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),), - ), - ), - -# acoustique - b_acou =BLOC( condition = "AsType(RESULTAT) in (acou_harmo,mode_acou,)",fr="options acoustiques", - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG", - "INTE_ELNO_ACTI","INTE_ELNO_REAC", - ),), - EXCIT =FACT(statut='f',max='**', - regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),), - CHARGE =SIMP(statut='o',typ=char_acou ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c), - COEF_MULT =SIMP(statut='f',typ='R'), - COEF_MULT_C =SIMP(statut='f',typ='C'), - PHAS_DEG =SIMP(statut='f',typ='R'), - PUIS_PULS =SIMP(statut='f',typ='I'), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),), - ), - - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 31/07/2007 AUTEUR SALMONA 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_fatigue_prod(TYPE_CALCUL,OPTION,**args): - if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem - if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem - if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_sdaster - raise AsException("type de calcul non prevu") - -CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n', - fr="Calculer un champ de dommage de fatigue subit par une structure et déterminer le plan critique" - +" dans lequel le cisaillement est maximal.", - UIinfo={"groupes":("Post traitements",)}, - - TYPE_CALCUL = SIMP(statut='o',typ='TXM', - into=("CUMUL_DOMMAGE","FATIGUE_MULTI",) ), - - b_cumul_domma =BLOC(condition = "TYPE_CALCUL == 'CUMUL_DOMMAGE'", - fr="Calcul d un champ de dommage subi par une structure.", - regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),), - OPTION =SIMP(statut='o',typ='TXM', - into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM", - "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI", - "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ), - HISTOIRE =FACT(statut='o', - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans, - evol_noli) ), - EQUI_GD =SIMP(statut='f',typ='TXM',defaut="VMIS_SG", - into=("VMIS_SG","INVA_2_SG") ), - ), - DOMMAGE =SIMP(statut='o',typ='TXM', - into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON", - "TAHERI_MIXTE",) ), - MATER =SIMP(statut='o',typ=(mater_sdaster) ), - TAHERI_NAPPE =SIMP(statut='f',typ=(nappe_sdaster,formule) ), - TAHERI_FONC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - b_fatigue_multi =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'", - fr="Plan critique dans le cas de la fatigue multiaxiale à grand nombre de cycles.", - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),), - 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) ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**' ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**' ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**' ), - COEF_PREECROU =SIMP(statut='f',typ='R',defaut= 1.0E+0), - b_period =BLOC(condition = "TYPE_CHARGE == 'PERIODIQUE'", - CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC","DANG_VAN_MODI_AC","VMIS_TRESCA") ), - b_fati_p =BLOC(condition = "(CRITERE == 'MATAKE_MODI_AC' or CRITERE == 'DANG_VAN_MODI_AC')", - METHODE =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ), - ), - ), - b_non_period =BLOC(condition = "TYPE_CHARGE == 'NON_PERIODIQUE'", - CRITERE =SIMP(statut='o',typ='TXM', - into=("MATAKE_MODI_AV","DANG_VAN_MODI_AV","FATESOCI_MODI_AV","VMIS_TRESCA") ), - b_fati_np =BLOC(condition = - "(CRITERE == 'MATAKE_MODI_AV' or CRITERE == 'DANG_VAN_MODI_AV' or CRITERE == 'FATESOCI_MODI_AV')", - PROJECTION =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ), - DELTA_OSCI =SIMP(statut='f',typ='R',defaut= 0.0E+0), - ), - ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, - reentrant='n', - fr="Calculer les paramètres modaux d'une structure soumise à un écoulement", - UIinfo={"groupes":("Matrices/vecteurs",)}, - VITE_FLUI =FACT(statut='f', - fr="Définir la plage de vitesse fluide étudiée", - VITE_MIN =SIMP(statut='f',typ='R' ), - VITE_MAX =SIMP(statut='f',typ='R' ), - NB_POIN =SIMP(statut='f',typ='I' ), - ), - BASE_MODALE =FACT(statut='o', - - regles=(AU_MOINS_UN('AMOR_REDUIT','AMOR_UNIF','AMOR_REDUIT_CONN'),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**',val_min=0.E+00), - AMOR_UNIF =SIMP(statut='f',typ='R',val_min=0.E+00 ), - AMOR_REDUIT_CONN=SIMP(statut='f',typ='R',max='**',val_min=0.E+00), - ), - TYPE_FLUI_STRU =SIMP(statut='o',typ=type_flui_stru ), - IMPRESSION =FACT(statut='f', - fr="Choix des informations à imprimer dans le fichier RESULTAT", - PARA_COUPLAGE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - DEFORMEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 02/05/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def calc_fonc_interp_prod(FONCTION, NOM_PARA_FONC, **args): - if AsType(FONCTION) == nappe_sdaster: - return nappe_sdaster - elif AsType(FONCTION) == fonction_sdaster: - return fonction_sdaster - elif AsType(FONCTION) == fonction_c: - return fonction_c - elif AsType(FONCTION) == formule: - if NOM_PARA_FONC != None: - return nappe_sdaster - return fonction_sdaster - elif AsType(FONCTION) == para_sensi: - return para_sensi - raise AsException("type de concept resultat non prevu") - -CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_prod, - docu="U4.32.01-e",reentrant='n', - fr="Définit une fonction (ou une nappe) à partir d'une fonction FORMULE à 1 ou 2 variables", - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE_PARA','LIST_PARA'),), - FONCTION =SIMP(statut='o',typ=(formule,fonction_sdaster,nappe_sdaster,fonction_c) ), - VALE_PARA =SIMP(statut='f',typ='R',max='**'), - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - NOM_RESU =SIMP(statut='f',typ='TXM'), - NOM_PARA =SIMP(statut='f',typ='TXM'), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM'), - b_eval_nappe =BLOC(condition = "NOM_PARA_FONC != None", - regles=(UN_PARMI('VALE_PARA_FONC','LIST_PARA_FONC'),), - VALE_PARA_FONC =SIMP(statut='f',typ='R',max='**'), - LIST_PARA_FONC =SIMP(statut='f',typ=listr8_sdaster ), - INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG")), - PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), - PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 07/11/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# 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',fr="Valeur de la norme du spectre d oscillateur" ), - NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ), - NATURE_FONC =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ), - ), - ABS =FACT(statut='f',fr="Valeur absolue d'une fonction", - FONCTION =SIMP(statut='o',typ=fonction_sdaster,), - ), - COMB =FACT(statut='f',max='**',fr="Combinaison linéaire réelle de fonctions", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ), - COEF =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), - ), - COMB_C =FACT(statut='f',max='**',fr="Combinaison linéaire complexe de fonctions", - regles=(UN_PARMI('COEF_R','COEF_C'),), - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster) ), - COEF_R =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ), - COEF_C =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ), - ), - b_comb =BLOC ( condition = " (COMB != None) or (COMB_C != None)", - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - ), - COMPOSE =FACT(statut='f',fr="Composition de deux fonctions FONC_RESU(FONC_PARA)", - FONC_RESU =SIMP(statut='o',typ=fonction_sdaster), - FONC_PARA =SIMP(statut='o',typ=fonction_sdaster), - ), - EXTRACTION =FACT(statut='f',fr="Extraction sur une fonction complexe", - FONCTION =SIMP(statut='o',typ=fonction_c), - PARTIE =SIMP(statut='o',typ='TXM',into=("REEL","IMAG","MODULE","PHASE"),fr="Partie à extraire"), - ), - ENVELOPPE =FACT(statut='f',fr="Enveloppe d une famille de fonctions", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ), - ), - ASSE =FACT(statut='f',fr="Concatenation de fonctions", - FONCTION =SIMP(statut='o',typ=fonction_sdaster,min=2,max=2 ), - SURCHARGE =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")), - ), - CORR_ACCE =FACT(statut='f',fr="Correction d un accelerogramme reel", - CORR_DEPL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - FONCTION =SIMP(statut='o',typ=fonction_sdaster ), - ), - PUISSANCE =FACT(statut='f',fr="Fonction élevée à une puissance", - FONCTION =SIMP(statut='o', typ=(fonction_sdaster,nappe_sdaster) ), - EXPOSANT =SIMP(statut='f', typ='I', defaut=1 ), - ), - INVERSE =FACT(statut='f',fr="Inverse d'une fonction", - FONCTION =SIMP(statut='o', typ=fonction_sdaster), - ), - NOM_PARA =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ), - INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene, - fr="Calculer l'effet de surpression hydrodynamique due au mouvement d'entrainement de la structure" - +" en analyse sismique", - reentrant ='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - - regles=(EXCLUS('MODE_MECA','MODELE_GENE'), - PRESENT_PRESENT( 'MODELE_GENE','NUME_DDL_GENE'), - UN_PARMI('MONO_APPUI', 'NOEUD','GROUP_NO'), - UN_PARMI('MONO_APPUI','MODE_STAT')), - - MODELE_FLUIDE =SIMP(statut='o',typ=modele_sdaster ), - MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_ther ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ), - DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NUME_MODE_MECA =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - POTENTIEL =SIMP(statut='f',typ=evol_ther ), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - - DIRECTION =SIMP(statut='o',typ='R',max=3), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - ), - - ) ; -#& MODIF COMMANDE DATE 31/10/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_G=OPER(nom="CALC_G",op=100,sd_prod=table_sdaster, - fr="Calcul du taux de restitution d'énergie par la méthode theta en thermo-élasticité" - +" et les facteurs d'intensité de contraintes.", - reentrant='f', - UIinfo={"groupes":("Post traitements",)}, - regles=(EXCLUS('COMP_ELAS','COMP_INCR'), - CONCEPT_SENSIBLE("ENSEMBLE"), - REUSE_SENSIBLE(), - DERIVABLE('RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST', - 'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ',),), - - THETA =FACT(statut='o', - THETA =SIMP(statut='f',typ=(theta_geom,cham_no_sdaster),), - FOND_FISS =SIMP(statut='f',typ=fond_fiss,max=1), - FISSURE =SIMP(statut='f',typ=fiss_xfem,max=1), - regles=(EXCLUS('FOND_FISS','FISSURE'),), - b_theta =BLOC(condition="THETA == None",fr="calcul de theta", - regles=(UN_PARMI('R_INF','R_INF_FO'), - EXCLUS('MODULE','MODULE_FO'), - PRESENT_PRESENT('R_INF','R_SUP'), - PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ), - NUME_FOND =SIMP(statut='f',typ='I',defaut=1), - R_INF =SIMP(statut='f',typ='R'), - R_SUP =SIMP(statut='f',typ='R'), - MODULE =SIMP(statut='f',typ='R'), - DIRE_THETA =SIMP(statut='f',typ=cham_no_sdaster ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - R_INF_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MODULE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - ), - - RESULTAT =SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_MODE =SIMP(statut='f',typ=listis_sdaster), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ), - - COMP_ELAS =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_LINE =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - ELAS_VMIS_TRAC =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - ), - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ), - ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ), - VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - ), - ETAT_INIT =FACT(statut='f', - SIGM =SIMP(statut='f',typ=cham_elem), - DEPL =SIMP(statut='f',typ=cham_no_sdaster), - ), - - LISSAGE =FACT(statut='d', - DEGRE =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ), - LISSAGE_THETA =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_REGU"),), - LISSAGE_G =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE", - "LAGRANGE_NO_NO","LAGRANGE_REGU"),), - ), - - OPTION =SIMP(statut='o',typ='TXM',max=1,defaut='CALC_G', - into=("CALC_G","CALC_G_GLOB","CALC_K_G","K_G_MODA","G_MAX","G_MAX_GLOB","G_BILI", - "G_BILI_GLOB","G_LAGR","G_LAGR_GLOB","CALC_K_MAX"),), - - b_g_max =BLOC(condition="(OPTION=='G_MAX') or (OPTION=='G_MAX_GLOB')", - BORNES =FACT(statut='o',max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - ), - b_k_max =BLOC(condition="(OPTION=='CALC_K_MAX')", - SIGNES =FACT(statut='o',max=1, - CHARGE_S =SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'), - CHARGE_NS =SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'), - ), - ), - - PROPAGATION =SIMP(statut='f',typ='R'), - THETA_LAGR =SIMP(statut='f',typ=theta_geom), - DIRE_THETA_LAGR =SIMP(statut='f',typ=cham_no_sdaster), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -); -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=table_fonction, - fr="Calcul d'une matrice interspectrale à partir d'une fonction du temps", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - INST_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - INST_FIN =SIMP(statut='o',typ='R' ), - DUREE_ANALYSE =SIMP(statut='f',typ='R' ), - DUREE_DECALAGE =SIMP(statut='f',typ='R' ), - NB_POIN =SIMP(statut='o',typ='I' ), - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1 , 2) ), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r, - fr="Calcul des matrices de masse, d'amortissement ou de rigidité ajoutés", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'), - PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'), - PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),), - MODELE_FLUIDE =SIMP(statut='o',typ=modele_sdaster ), - MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_ther ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster ), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene ), - DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NUME_MODE_MECA =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='o',typ='TXM',into=("MASS_AJOU","AMOR_AJOU","RIGI_AJOU") ), - POTENTIEL =SIMP(statut='f',typ=evol_ther ), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - ), -) ; -#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def calc_matr_elem_prod(OPTION,**args): - if OPTION == "RIGI_MECA" : return matr_elem_depl_r - if OPTION == "RIGI_FLUI_STRU" : return matr_elem_depl_r - if OPTION == "RIGI_MECA_LAGR" : return matr_elem_depl_r - if OPTION == "MASS_ID_MDEP_R" : return matr_elem_depl_r - if OPTION == "MASS_ID_MDNS_R" : return matr_elem_depl_r - if OPTION == "MASS_ID_MTEM_R" : return matr_elem_temp_r - if OPTION == "MASS_ID_MTNS_R" : return matr_elem_temp_r - if OPTION == "MASS_MECA" : return matr_elem_depl_r - if OPTION == "MASS_FLUI_STRU" : return matr_elem_depl_r - if OPTION == "RIGI_GEOM" : return matr_elem_depl_r - if OPTION == "RIGI_ROTA" : return matr_elem_depl_r - if OPTION == "AMOR_MECA" : return matr_elem_depl_r - if OPTION == "IMPE_MECA" : return matr_elem_depl_r - if OPTION == "ONDE_FLUI" : return matr_elem_depl_r - if OPTION == "AMOR_MECA_ABSO" : return matr_elem_depl_r - if OPTION == "RIGI_MECA_HYST" : return matr_elem_depl_c - if OPTION == "RIGI_THER" : return matr_elem_temp_r - if OPTION == "MASS_THER" : return matr_elem_temp_r - if OPTION == "MASS_MECA_DIAG" : return matr_elem_depl_r - if OPTION == "RIGI_ACOU" : return matr_elem_pres_c - if OPTION == "MASS_ACOU" : return matr_elem_pres_c - if OPTION == "AMOR_ACOU" : return matr_elem_pres_c - raise AsException("type de concept resultat non prevu") - -CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod - ,fr="Calcul des matrices élémentaires",reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - - OPTION =SIMP(statut='o',typ='TXM', - into=("RIGI_MECA","MASS_MECA","RIGI_GEOM", - "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA", - "ONDE_FLUI","AMOR_MECA_ABSO","MASS_FLUI_STRU","RIGI_FLUI_STRU", - "RIGI_ROTA","MASS_MECA_DIAG","RIGI_ACOU", - "MASS_ID_MDEP_R","MASS_ID_MDNS_R","MASS_ID_MTEM_R","MASS_ID_MTNS_R", - "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST", - "RIGI_MECA_LAGR") ), - - # mots clés facultatifs que l'on a du mal à mettre dans les blocs - # sans gener MACRO_MATR_ASSE : - #------------------------------------------------------------------ - INST=SIMP(statut='f',typ='R',defaut= 0.E+0 ), - - - b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'", - regles=(AU_MOINS_UN('MODELE','CHARGE' ),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ), - ), - - b_rigi_meca_lagr =BLOC(condition = "OPTION=='RIGI_MECA_LAGR'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ), - THETA =SIMP(statut='o',typ=theta_geom ), - PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - b_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')", - regles=(AU_MOINS_UN('MODELE','CHARGE'),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - ), - - b_mass_identite =BLOC(condition = "(OPTION in ('MASS_ID_MDEP_R','MASS_ID_MTEM_R','MASS_ID_MDNS_R','MASS_ID_MTNS_R')) ", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - # j'ajoute ces 2 mot clés inutiles à cause de l'alarme pas assez subtile de MEDOME - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - ), - - b_rigi_geom =BLOC(condition = "OPTION=='RIGI_GEOM'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - SIEF_ELGA =SIMP(statut='o',typ=cham_elem ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - - b_rigi_rota =BLOC(condition = "OPTION=='RIGI_ROTA'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), - ), - - b_amor_meca =BLOC(condition = "OPTION=='AMOR_MECA'", - regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'), - ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - ), - - b_amor_meca_abso =BLOC(condition = "OPTION=='AMOR_MECA_ABSO'", - regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'), - ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - ), - - b_rigi_meca_hyst =BLOC( condition = "OPTION=='RIGI_MECA_HYST'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHARGE =SIMP(statut='f',typ=char_meca ,validators=NoRepeat(),max='**' ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - RIGI_MECA =SIMP(statut='o',typ=matr_elem_depl_r ), - ), - - b_rigi_ther =BLOC(condition = "OPTION=='RIGI_THER'", - regles=(AU_MOINS_UN('MODELE','CHARGE' ),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - b_modele =BLOC(condition = "MODELE != None", - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CHARGE =SIMP(statut='f',typ=char_ther,validators=NoRepeat(),max='**' ), - ), - - b_mass_ther =BLOC(condition = "OPTION=='MASS_THER'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - CHARGE =SIMP(statut='f',typ=char_ther ,validators=NoRepeat(),max='**' ), - ), - - b_rigi_acou =BLOC(condition = "OPTION=='RIGI_ACOU'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ), - ), - - b_mass_acou =BLOC(condition = "(OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ), - ), - - b_rigi_flui =BLOC(condition = "OPTION=='RIGI_FLUI_STRU'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**' ), - ), - - b_mass_flui =BLOC(condition = "OPTION=='MASS_FLUI_STRU'", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**'), - ), - - b_impe_meca =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ), - ), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcule l'évolution métallurgique à partir du résultat d'un calcul thermique", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - RESULTAT =SIMP(statut='o',typ=evol_ther ), - ETAT_INIT =FACT(statut='o', - regles=(UN_PARMI('EVOL_THER', 'META_INIT_ELNO'),), - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - META_INIT_ELNO =SIMP(statut='f',typ=carte_sdaster ), - b_etat =BLOC(condition="EVOL_THER != None", - regles=(UN_PARMI('NUME_INIT', 'INST_INIT',),), - NUME_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - b_inst =BLOC(condition="INST_INIT != None", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ) - ), - ), - ), - COMP_INCR =FACT(statut='o',max='**', - RELATION =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ), - ACIER =SIMP(statut='c',typ='I',defaut=7,into=(7,) ), - ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma), - ), - OPTION =SIMP(statut='f',typ='TXM' - ,into=("META_ELNO_TEMP",) ), -) ; -#& MODIF COMMANDE DATE 24/10/2006 AUTEUR SMICHEL S.MICHEL-PONNELLE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# 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,fourier_ther,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'), - CONCEPT_SENSIBLE("SEPARE"), - DERIVABLE('RESULTAT'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("FORC_NODA","REAC_NODA", - "DCHA_NOEU_SIGM", - "DEGE_NOEU_DEPL", - "DETE_NOEU_DLTE", - "DEDE_NOEU_DLDE", - "DESI_NOEU_DLSI", - "DURT_NOEU_META", - "EFGE_NOEU_CART","EFGE_NOEU_DEPL", - "ENDO_NOEU_SINO", - "ENEL_NOEU_ELGA", - "EPMG_NOEU_DEPL", - "EPSA_NOEU", - "EPSG_NOEU_DEPL", - "EPSI_NOEU_DEPL", - "EPSP_NOEU" ,"EPSP_NOEU_ZAC", - "EPVC_NOEU","EPFD_NOEU","EPFP_NOEU","EPFP_NOEU", - "EQUI_NOEU_EPME","EQUI_NOEU_EPSI","EQUI_NOEU_SIGM", - "ERRE_NOEU_ELEM","QIRE_NOEU_ELEM", - "FLUX_NOEU_TEMP", - "HYDR_NOEU_ELGA", - "INTE_NOEU_ACTI","INTE_NOEU_REAC", - "META_NOEU_TEMP", - "PMPB_NOEU_SIEF", - "PRES_NOEU_DBEL","PRES_NOEU_IMAG","PRES_NOEU_REEL", - "RADI_NOEU_SIGM", - "SIEF_NOEU" ,"SIEF_NOEU_ELGA", - "SIGM_NOEU_CART","SIGM_NOEU_COQU","SIGM_NOEU_DEPL", - "SIGM_NOEU_SIEF","SIGM_NOEU_ZAC", - "SIPO_NOEU_DEPL","SIPO_NOEU_SIEF", - "SIRE_NOEU_DEPL", - "VARI_NOEU","EXTR_NOEU_VARI","VARI_NOEU_ELGA",) ), - - b_forc_reac =BLOC(condition = """(OPTION == 'FORC_NODA') or (type(OPTION) == type(()) and 'FORC_NODA' in OPTION) or\ - (OPTION == 'REAC_NODA') or (type(OPTION) == type(()) and 'REAC_NODA' in OPTION)""", - MODELE =SIMP(statut='f',typ=modele_sdaster), - ), - - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV") ), - ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - GROUP_MA_RESU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_RESU =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), - GROUP_NO_RESU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - NOEUD_RESU =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'), -) ; -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -from Macro.calc_precont_ops import calc_precont_ops - - -# =========================================================================== -# CATALOGUE DE LA MACRO "CALC_PRECONT" -# ----------------------------------------- -# USAGE : -# -# -# =========================================================================== - -CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli, - fr="Imposer la tension définie par le BPEL dans les cables", - reentrant='f',UIinfo={"groupe":("Modélisation",)}, - reuse =SIMP(statut='f',typ='evol_noli'), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='o',typ=cara_elem), - CABLE_BP =SIMP(statut='o',typ=cabl_precont,validators=NoRepeat(),max='**'), - CABLE_BP_INACTIF =SIMP(statut='f',typ=cabl_precont,validators=NoRepeat(),max='**'), - INCREMENT =FACT(statut='o', - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - INST_INIT =SIMP(statut='f',typ='R'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - SUBD_METHODE =SIMP( statut='f',typ='TXM', - into =("AUCUNE","UNIFORME","EXTRAPOLE"), - defaut="AUCUNE", - fr="Méthode de subdivision des pas de temps en cas de non-convergence" - ), - b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0, - fr="Coefficient multiplicateur de la 1ère subdivision"), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - ), - b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_OPTION =SIMP(statut='f',typ='TXM', - into =("IGNORE_PREMIERES","GARDE_DERNIERES",), - defaut="IGNORE_PREMIERES", - fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"), - SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0, - fr="Les n premières itérations sont ignorées pour l'extrapolation"), - SUBD_ITER_FIN =SIMP(statut='c',typ='I',defaut=8,val_min=3, - fr="Seules les n dernières itérations sont prises pour l'extrapolation"), - SUBD_PAS =SIMP(statut='c',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps en cas divergence"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20, - fr="% itération autorisée en plus"), - ), - # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - ), - - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - RECH_LINEAIRE =FACT(statut='f', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ), - CONVERGENCE =FACT(statut='d', - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - ), - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_sdaster), - SIGM =SIMP(statut='f',typ=(carte_sdaster,cham_elem)), - VARI =SIMP(statut='f',typ=cham_elem), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - SOLV_NON_LOCAL =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LAGR_NON_LOCAL =FACT(statut='f', - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - R =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_meca), - ), - - COMP_INCR =C_COMP_INCR(), - ) ; -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# -*- coding: iso-8859-1 -*- - -# RESPONSABLE MCOURTOI M.COURTOIS - -def calc_table_prod(self, TABLE, ACTION, **kargs): - """Typage du concept produit. - """ - l_typ = [AsType(TABLE),] - for mcf in ACTION: - dmc = mcf.cree_dict_valeurs(mcf.mc_liste) - if dmc.get('TABLE') != None: - l_typ.append(AsType(dmc['TABLE'])) - # une table_fonction étant une table - if table_fonction in l_typ: - return table_fonction - else: - return table_sdaster - - -from Macro.calc_table_ops import calc_table_ops - -CALC_TABLE=MACRO(nom="CALC_TABLE",op=calc_table_ops, sd_prod=calc_table_prod, - fr="Opérations sur une table", - reentrant='f', - regles=(DERIVABLE('TABLE'),), - TABLE = SIMP(statut='o',typ=table_sdaster), - ACTION = FACT(statut='o', max='**', - fr = "Suite des opérations à effectuer sur la table", - OPERATION = SIMP(statut='o', typ='TXM', - into=('FILTRE', 'EXTR', 'RENOMME', 'TRI', 'COMB', 'OPER',)), - - b_filtre = BLOC(condition="OPERATION == 'FILTRE'", - fr="Sélectionne les lignes de la table vérifiant un critère", - NOM_PARA = SIMP(statut='o',typ='TXM'), - CRIT_COMP = SIMP(statut='f',typ='TXM',defaut="EQ", - into=('EQ','NE','GT','LT','GE','LE','REGEXP', - 'VIDE','NON_VIDE','MAXI','ABS_MAXI','MINI','ABS_MINI'),), - b_vale = BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE = SIMP(statut='f',typ='R'), - VALE_I = SIMP(statut='f',typ='I'), - VALE_C = SIMP(statut='f',typ='C'), - VALE_K = SIMP(statut='f',typ='TXM'), - ), - b_regexp = BLOC(condition = "CRIT_COMP == 'REGEXP'", - VALE_K = SIMP(statut='f',typ='TXM'), - ), - b_crit = BLOC(condition = "CRIT_COMP in ('EQ','NE')", - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - ), - - b_extr = BLOC(condition="OPERATION == 'EXTR'", - fr="Extrait une ou plusieurs colonnes de la table", - NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - fr="Noms des colonnes à extraire"), - ), - - b_renomme = BLOC(condition="OPERATION == 'RENOMME'", - fr="Renomme un ou plusieurs paramètres de la table", - NOM_PARA = SIMP(statut='o', typ='TXM', validators=NoRepeat(), min=2, max=2, - fr="Couple (ancien nom du paramètre, nouveau nom du paramètre)",), - ), - - b_tri = BLOC(condition="OPERATION == 'TRI'", - fr="Ordonne les lignes de la table selon les valeurs d'un ou plusieurs paramètres", - NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - ORDRE = SIMP(statut='f',typ='TXM',defaut="CROISSANT", - into=("CROISSANT","DECROISSANT") ), - ), - - b_comb = BLOC(condition="OPERATION == 'COMB'", - fr="Combine deux tables ayant éventuellement des paramètres communs", - TABLE = SIMP(statut='o',typ=table_sdaster, - fr="Table dont les colonnes vont venir surcharger la table initiale"), - NOM_PARA = SIMP(statut='f',typ='TXM',max='**', - fr="Noms des paramètres dont les valeurs doivent etre identiques dans les deux tables "\ - "pour que les colonnes soient combinées"), - ), - - b_oper = BLOC(condition="OPERATION == 'OPER'", - fr="Applique une formule dans laquelle les variables sont les paramètres de la table", - FORMULE = SIMP(statut='o',typ=formule, - fr="Formule à appliquer aux colonnes de la table"), - NOM_PARA = SIMP(statut='o',typ='TXM', - fr="Nom de la nouvelle colonne"), - ), - ), - - SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),max=1, - fr="Paramètre de sensibilité", - ang="Sensitivity parameter"), - TITRE = SIMP(statut='f',typ='TXM',max='**', - fr="Titre de la table produite"), - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 08/03/2007 AUTEUR SALMONA 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. -# ====================================================================== -CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Définir un champ theta pour le calcul du taux de restitution d'énergie" - +" ou des facteurs d'intensité de contraintes", - regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'), - PRESENT_ABSENT('THETA_2D','DIRE_THETA'), - EXCLUS('DIRECTION','DIRE_THETA'),), - OPTION =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - THETA_3D =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), - UN_PARMI('MODULE','MODULE_FO'), - ENSEMBLE('MODULE','R_INF','R_SUP'), - ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MODULE =SIMP(statut='f',typ='R'), - R_INF =SIMP(statut='f',typ='R'), - R_SUP =SIMP(statut='f',typ='R'), - MODULE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_INF_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - b_theta_3d =BLOC(condition="THETA_3D != None", - FOND_FISS =SIMP(statut='o',typ=fond_fiss),), - DIRE_THETA =SIMP(statut='f',typ=cham_no_sdaster ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - THETA_2D =FACT(statut='f',max='**', - regles=(UN_PARMI('GROUP_NO','NOEUD'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - MODULE =SIMP(statut='o',typ='R'), - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - THETA_BANDE =FACT(statut='f',max='**', - MODULE =SIMP(statut='o',typ='R'), - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - GRAD_NOEU_THETA =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - IMPRESSION =FACT(statut='f', - UNITE =SIMP(statut='f',typ='I',defaut=8), - FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ), - ), -) ; -#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def calc_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), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - MODELE =SIMP(statut='f',typ=modele_sdaster), - ), - - b_meca_lagr =BLOC(condition = "OPTION=='CHAR_MECA_LAGR'", - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - THETA =SIMP(statut='o',typ=theta_geom), - PROPAGATION =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), -) ; -#& MODIF COMMANDE DATE 12/09/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier, - reentrant='n',fr="Recombiner les modes de Fourier d'une SD Résultat dans des directions particulières", - UIinfo={"groupes":("Post traitements",)}, - RESULTAT =SIMP(statut='o',typ=(fourier_elas,fourier_ther),), - ANGL =SIMP(statut='o',typ='R',max='**'), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=6, - into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL","TEMP","FLUX_ELNO_TEMP"),), -) ; -#& MODIF COMMANDE DATE 05/02/2007 AUTEUR SALMONA 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 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='o', typ=matr_asse_gene_r), - RIGI_GENE = SIMP(statut='o', typ=matr_asse_gene_r), - AMOR_REDUIT = SIMP(statut='f',typ='R',max='**'), - LIST_AMOR = SIMP(statut='f',typ=listr8_sdaster ), - ), - SANS_CMP =SIMP(statut='f',typ='TXM',into=("LAGR",) ), -) ; -#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat, - fr="Réponse sismique par recombinaison modale par une méthode spectrale", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'), - UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - b_freq =BLOC(condition = "FREQ != None or LIST_FREQ != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - MODE_CORR =SIMP(statut='f',typ=mode_stat_acce ), - - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), - AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), - - MASS_INER =SIMP(statut='f',typ=table_sdaster ), - CORR_FREQ =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - - EXCIT =FACT(statut='o',max='**', - regles=(UN_PARMI('MONO_APPUI','NOEUD','GROUP_NO'), - UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),), - - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - AXE =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant un seul axe",), - TRI_AXE =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant les trois axes mais avec le meme spectre",), - TRI_SPEC =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Excitation suivant les trois axes avec trois spectres"), - b_axe =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe", - SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),), - ECHELLE =SIMP(statut='f',typ='R',), - ), - b_tri_axe =BLOC(condition = "TRI_AXE != None",fr="Excitation suivant les trois axes mais avec le meme spectre", - SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),), - ECHELLE =SIMP(statut='f',typ='R',), - ), - b_tri_spec =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes avec trois spectres", - SPEC_OSCI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),min=3,max=3 ), - ECHELLE =SIMP(statut='f',typ='R',min=3,max=3), - ), - NATURE =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ), - ), - COMB_MODE =FACT(statut='o', - TYPE =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ), - DUREE =SIMP(statut='f',typ='R' ), - ), - COMB_DIRECTION =FACT(statut='f', - TYPE =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ), - ), - COMB_MULT_APPUI =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE",) ), - ), - COMB_DEPL_APPUI=FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','LIST_CAS'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - LIST_CAS =SIMP(statut='f',typ='I',max='**'), - TYPE_COMBI =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ), - ), - DEPL_MULT_APPUI =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO'), - AU_MOINS_UN('DX','DY','DZ' ),), - NOM_CAS =SIMP(statut='o',typ='TXM',max='**'), - NUME_CAS =SIMP(statut='o',typ='I',max='**'), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,), ), - NOEUD_REFE =SIMP(statut='f',typ=no), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DX =SIMP(statut='f',typ='R' ), - DY =SIMP(statut='f',typ='R' ), - DZ =SIMP(statut='f',typ='R' ), - ), - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=9, - into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "EFGE_ELNO_DEPL","REAC_NODA","FORC_NODA","EFGE_ELNO_CART", - "SIPO_ELNO_DEPL") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - IMPRESSION =FACT(statut='f',max='**', - regles=(EXCLUS('TOUT','NIVEAU'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NIVEAU =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),validators=NoRepeat(),max=3 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 12/09/2006 AUTEUR REZETTE C.REZETTE -# RESPONSABLE VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def crea_champ_prod(TYPE_CHAM,**args): - if TYPE_CHAM[0:5] == "CART_" : - return carte_sdaster - elif TYPE_CHAM[0:5] == "NOEU_" : - return cham_no_sdaster - elif TYPE_CHAM[0:2] == "EL" : - return cham_elem - else : - raise AsException("type de concept resultat_sdaster non prevu") - - -CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod, - fr="Création d'un champ ",reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - TYPE_CHAM =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()), - # TYPE_CHAM doit etre de la forme : CART_xx, NOEU_xx, ELEM_xx, ELGA_xx ou ELNO_xx - # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs -# SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS : -# ------------------------------------------------------------------ - regles=(EXCLUS('NUME_DDL','CHAM_NO',)), - NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster) ), - CHAM_NO =SIMP(statut='f',typ=(cham_no_sdaster) ), - -# SI CREATION D'UN CHAM_ELEM, POUR aider a l'allocation du champ : -# (PAR DEFAUT : TOU_INI_ELNO/_ELGA/_ELEM) -# ------------------------------------------------------------------ - OPTION =SIMP(statut='f',typ='TXM'), - - OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC","NORMALE","R2C","C2R") ), - -# ------------------------------------------------------------------ - b_norm =BLOC(condition = "OPERATION == 'NORMALE'", - regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), -# ------------------------------------------------------------------ - b_affe =BLOC(condition = "OPERATION == 'AFFE'", - regles=(UN_PARMI('MAILLAGE','MODELE'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), - MODELE =SIMP(statut='f',typ=(modele_sdaster) ), - b_affe_modele =BLOC(condition = "MODELE != None", - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ), - AFFE =FACT(statut='o',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',), - UN_PARMI('VALE','VALE_I','VALE_C','VALE_F', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - VALE =SIMP(statut='f',typ='R',max='**' ), - VALE_I =SIMP(statut='f',typ='I',max='**' ), - VALE_C =SIMP(statut='f',typ='C',max='**' ), - VALE_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), - ), - ), -# ------------------------------------------------------------------ - b_asse =BLOC(condition = "OPERATION == 'ASSE'", - regles=(UN_PARMI('MAILLAGE','MODELE'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), - MODELE =SIMP(statut='f',typ=(modele_sdaster) ), - b_asse_modele =BLOC(condition = "MODELE != None", - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ), - ASSE =FACT(statut='o',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',), - PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - CHAM_GD =SIMP(statut='o',typ=cham_gd_sdaster), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), - NOM_CMP_RESU =SIMP(statut='f',typ='TXM',max='**' ), - CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - COEF_R =SIMP(statut='f',typ='R',defaut= 1. ), - COEF_C =SIMP(statut='f',typ='C',max=1), - ), - ), -# ------------------------------------------------------------------ - b_eval =BLOC(condition = "OPERATION == 'EVAL'", - CHAM_F =SIMP(statut='o',typ=cham_gd_sdaster), - CHAM_PARA =SIMP(statut='o',typ=cham_gd_sdaster,max='**'), - ), -# ------------------------------------------------------------------ - b_r2c =BLOC(condition = "OPERATION == 'R2C'", - CHAM_GD =SIMP(statut='o',typ=cham_gd_sdaster), - ), -# ------------------------------------------------------------------ - b_c2r =BLOC(condition = "OPERATION == 'C2R'", - CHAM_GD =SIMP(statut='o',typ=cham_gd_sdaster), - PARTIE =SIMP(statut='o',typ='TXM',into=('REEL','IMAG'),), - ), -# ------------------------------------------------------------------ - b_disc =BLOC(condition = "OPERATION == 'DISC'", - MODELE =SIMP(statut='f',typ=(modele_sdaster) ), - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - CHAM_GD =SIMP(statut='o',typ=cham_gd_sdaster), - ), -# ------------------------------------------------------------------ - b_extr =BLOC(condition = "OPERATION == 'EXTR'", - regles=(AU_MOINS_UN('MAILLAGE','FISSURE','RESULTAT','TABLE'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), - FISSURE =SIMP(statut='f',typ=(fiss_xfem) ), - RESULTAT =SIMP(statut='f',typ=(resultat_sdaster) ), - TABLE =SIMP(statut='f',typ=(table_sdaster),min=1,max=1), - b_extr_maillage =BLOC(condition = "MAILLAGE != None and TABLE == None", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("GEOMETRIE",)), - ), - b_extr_fissure =BLOC(condition = "FISSURE != None", - NOM_CHAM =SIMP(statut='o',typ='TXM',into=("LTNO","LNNO","GRLTNO","GRLNNO","STNO","STNOR","BASLOC")), - ), - b_extr_table =BLOC(condition = "TABLE != None", - regles=( EXCLUS('MODELE','MAILLAGE'), - EXCLUS('PROL_ZERO','MAILLAGE'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster),), - MODELE =SIMP(statut='f',typ=(modele_sdaster),), - OPTION =SIMP(statut='f',typ='TXM'), - PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - ), - b_extr_resultat =BLOC(condition = "RESULTAT != None", - regles=(DERIVABLE('RESULTAT'),), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), - TYPE_MAXI =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ), - - # si TYPE_MAXI, on spécifie en général plusieurs numéros d'ordre : - b_type_maxi =BLOC(condition = "TYPE_MAXI != None", - TYPE_RESU =SIMP(statut='o',typ='TXM',defaut="VALE",into=("VALE","INST",) ), - - regles=(EXCLUS('TOUT_ORDRE','LIST_INST','LIST_FREQ','NUME_ORDRE','INST', - 'FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - LIST_FREQ =SIMP(statut='f',typ=(listr8_sdaster) ), - NUME_ORDRE =SIMP(statut='f',typ='I',max='**'), - INST =SIMP(statut='f',typ='R',max='**'), - FREQ =SIMP(statut='f',typ='R',max='**'), - NUME_MODE =SIMP(statut='f',typ='I',max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM',max='**'), - ANGL =SIMP(statut='f',typ='R',max='**'), - ), - - # si .not. TYPE_MAXI, on ne doit spécifier qu'un seul numéro d'ordre : - b_non_type_maxi =BLOC(condition = "TYPE_MAXI == None", - regles=(EXCLUS('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - FREQ =SIMP(statut='f',typ='R'), - NUME_MODE =SIMP(statut='f',typ='I'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',max=2), - NOM_CAS =SIMP(statut='f',typ='TXM'), - ANGL =SIMP(statut='f',typ='R'), - - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ), - ), - - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - - ), # fin bloc b_extr - - - ), -# FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULTAT : -#----------------------------------------------------- - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 21/05/2008 AUTEUR MACOCCO K.MACOCCO -# 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('COQU_VOLU', 'CREA_FISS', 'CREA_GROUP_MA', 'CREA_MAILLE', 'CREA_POI1', - 'DETR_GROUP_MA', 'ECLA_PG', 'LINE_QUAD', 'MODI_MAILLE', - 'QUAD_LINE', 'REPERE'),), - - # le MAILLAGE est inutile si ECLA_PG - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), - - CREA_POI1 =FACT(statut='f',max='**',fr="Création de mailles de type POI1 à partir de noeuds", - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD' ),), - NOM_GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - ), - CREA_MAILLE =FACT(statut='f',max='**',fr="Duplication de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - PREF_MAILLE =SIMP(statut='o',typ='TXM' ), - PREF_NUME =SIMP(statut='f',typ='I' ), - ), - CREA_GROUP_MA =FACT(statut='f',max='**',fr="Duplication de mailles et création de groupes de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - NOM =SIMP(statut='o',typ='TXM'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - PREF_MAILLE =SIMP(statut='o',typ='TXM' ), - PREF_NUME =SIMP(statut='f',typ='I' ), - ), - DETR_GROUP_MA =FACT(statut='f',fr="Destruction de groupes de mailles", - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - NB_MAILLE =SIMP(statut='f',typ='I',defaut= 0, - fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit", ), - ), - COQU_VOLU =FACT(statut='f', - fr="Creation de mailles volumiques à partir de mailles surfaciques", - NOM =SIMP(statut='o',typ='TXM'), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max ='**'), - EPAIS =SIMP(statut='o',typ='R' ), - PREF_MAILLE =SIMP(statut='f',typ='TXM',defaut="MS" ), - PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS" ), - PREF_NUME =SIMP(statut='f',typ='I' ,defaut=1 ), - PLAN =SIMP(statut='o',typ='TXM',into=("SUP","MOY","INF")), - b_MOY =BLOC(condition = "PLAN == 'MOY'", - TRANSLATION =SIMP(statut='o',typ='TXM',into=("SUP","INF") ), - ), - ), - MODI_MAILLE =FACT(statut='f',max='**',fr="Modification du type de mailles", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4","QUAD_TRIA3"), - fr="Choix de la transformation" ), - b_NOS =BLOC(condition = "OPTION == 'TRIA6_7' or OPTION == 'QUAD8_9' or OPTION == 'SEG3_4'", - PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - b_QTR =BLOC(condition = "OPTION == 'QUAD_TRIA3'", - PREF_MAILLE =SIMP(statut='f',typ='TXM',defaut="MS" ), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - ), - CREA_FISS = FACT(statut='f',max='**',fr="Creation d'une fissure potentielle avec elts de joint ou elts à disc", - NOM =SIMP(statut='o',typ='TXM'), - GROUP_NO_1 =SIMP(statut='o',typ=grno), - GROUP_NO_2 =SIMP(statut='o',typ=grno), - PREF_MAILLE =SIMP(statut='o',typ='TXM'), - PREF_NUME =SIMP(statut='f',typ='I',defaut=1 ), - ), - LINE_QUAD =FACT(statut='f',fr="Passage linéaire -> quadratique", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"), - PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ), - ), - QUAD_LINE =FACT(statut='f',fr="Passage quadratique -> linéaire", - regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - REPERE =FACT(statut='f',max='**', - fr="changement de repère servant à déterminer les caractéristiques d'une section de poutre", - TABLE =SIMP(statut='o',typ=table_sdaster, - fr="Nom de la table contenant les caractéristiques de la section de poutre" ), - NOM_ORIG =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ), - NOM_ROTA =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére" ), - b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'", - GROUP_MA =SIMP(statut='f',typ=grma, - fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"), - ), - ), - ECLA_PG =FACT(statut='f', - fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss", - MODELE =SIMP(statut='o',typ=modele_sdaster ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SHRINK =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ), - TAILLE_MIN =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - 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 12/09/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def crea_resu_prod(TYPE_RESU,**args): - if TYPE_RESU == "EVOL_ELAS" : return evol_elas - if TYPE_RESU == "EVOL_NOLI" : return evol_noli - if TYPE_RESU == "EVOL_THER" : return evol_ther - if TYPE_RESU == "MULT_ELAS" : return mult_elas - if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas - if TYPE_RESU == "FOURIER_THER" : return fourier_ther - if TYPE_RESU == "EVOL_VARC" : return evol_varc - if TYPE_RESU == "EVOL_CHAR" : return evol_char - raise AsException("type de concept resultat non prevu") - -CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', - UIinfo={"groupes":("Modélisation",)}, - fr="Créer ou enrichir une structure de donnees resultat à partir de champs aux noeuds", - - OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ECLA_PG","PERM_CHAM","PROL_RTZ",), - fr="choix de la fonction a activer",), - - b_affe =BLOC(condition = "OPERATION == 'AFFE'", - - TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS", - "EVOL_THER","EVOL_VARC","EVOL_CHAR","FOURIER_THER") ), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), - - AFFE =FACT(statut='o',max='**', - CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)), - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - - b_mult_elas =BLOC(condition = "TYPE_RESU == 'MULT_ELAS' ", - NOM_CAS =SIMP(statut='f',typ='TXM' ), - ), - b_evol =BLOC(condition = "((TYPE_RESU=='EVOL_ELAS') or (TYPE_RESU=='EVOL_NOLI') or (TYPE_RESU=='EVOL_THER')\ - or (TYPE_RESU=='EVOL_VARC') or (TYPE_RESU=='EVOL_CHAR'))", - regles=(UN_PARMI('INST','LIST_INST'),), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - NUME_INIT =SIMP(statut='f',typ='I', val_min=1), - NUME_FIN =SIMP(statut='f',typ='I', val_min=1), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - b_fourier =BLOC(condition = "((TYPE_RESU == 'FOURIER_ELAS') or (TYPE_RESU == 'FOURIER_THER')) ", - NUME_MODE =SIMP(statut='f',typ='I'), - TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), - ), - ), - ), - - b_ecla_pg =BLOC(condition = "OPERATION == 'ECLA_PG'", - - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("EVOL_ELAS","EVOL_NOLI","EVOL_THER"), ), - - ECLA_PG =FACT(statut='o', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - 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 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -def crea_table_prod(TYPE_TABLE, **args): - """Typage du concept résultat - """ - if TYPE_TABLE == 'TABLE_FONCTION': - return table_fonction - else: - return table_sdaster - -CREA_TABLE=OPER(nom="CREA_TABLE",op=36,sd_prod=crea_table_prod, - fr="Création d'une table à partir d'une fonction ou de deux listes", - reentrant='f',UIinfo={"groupes":("Table",)}, - - regles=(EXCLUS('FONCTION','LISTE'),), - - LISTE=FACT(statut='f',max='**', - fr="Creation d'une table a partir de listes", - regles=(UN_PARMI('LISTE_I','LISTE_R','LISTE_K')), - PARA =SIMP(statut='o',typ='TXM'), - TYPE_K =SIMP(statut='f',typ='TXM',defaut='K8', - into=('K8','K16','K24')), - NUME_LIGN=SIMP(statut='f',typ='I',max='**'), - LISTE_I =SIMP(statut='f',typ='I',max='**'), - LISTE_R =SIMP(statut='f',typ='R',max='**'), - LISTE_K =SIMP(statut='f',typ='TXM', max='**'), - ), - FONCTION=FACT(statut='f', - fr="Creation d'une table a partir d'une fonction", - FONCTION=SIMP(statut='o',typ=(fonction_c,fonction_sdaster)), - PARA=SIMP(statut='f',typ='TXM',min=2,max=2), - ), - b_fonction = BLOC(condition='FONCTION != None', - regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(), - DERIVABLE('FONCTION'),), - SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - ), - TYPE_TABLE = SIMP(statut='f', typ='TXM', defaut="TABLE", - into=('TABLE', 'TABLE_FONCTION'),), - - TITRE=SIMP(statut='f',typ='TXM',max='**'), -) ; - - - -#& MODIF COMMANDE DATE 19/06/2006 AUTEUR VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n', - UIinfo={"groupes":("Gestion du travail",)}, - fr="Ouverture d'une étude. Allocation des ressources mémoire et disque et fichiers", - sd_prod=ops.DEBUT, - - PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', - into=("OUI","NON"),defaut="OUI"), - IMPR_MACRO =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess", - statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"), -# FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', -# typ='TXM',defaut="NON",into=("OUI","NON",) ), - BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX", - statut='f',min=1,max=2, - FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM', - into=('GLOBALE','VOLATILE'),), - TITRE =SIMP(statut='f',typ='TXM'), - CAS =SIMP(statut='f',typ='TXM'), - NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'), - LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'), - LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'), - ), - IMPRESSION =FACT(statut='f',min=1,max=3, - FICHIER =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='o',typ='I'), - ), - CATALOGUE =FACT(statut='f',min=1,max=10, - FICHIER =SIMP(statut='o',typ='TXM'), - TITRE =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - ), - CODE =FACT(fr="définition d un nom pour l'ensemble d'une étude", - statut='f',min=1,max=1, - NOM =SIMP(statut='o',typ='TXM'), - NIV_PUB_WEB =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')), - VISU_EFICAS =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI'), - UNITE =SIMP(statut='f',typ='I',defaut=15), - ), - ERREUR =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1, - ERREUR_F =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'), - ), - DEBUG =FACT(fr="option de déboggage reservée aux développeurs", - statut='f',min=1,max=1, - JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - SDVERI =SIMP(fr="vérifie la conformité des SD produites par les commandes", - statut='f',typ='TXM',into=('OUI','NON'),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 04/04/2007 AUTEUR VIVAN L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.defi_cable_bp_ops import defi_cable_bp_ops - -# =========================================================================== -# CATALOGUE DE LA MACRO "DEFI_CABLE_BP" -# ----------------------------------------- -# -# USAGE : -# Entrée : -# - MODELE -# - CABLE -# - CHAM_MATER -# - CARA_ELEM -# - GROUP_MA_BETON -# - DEFI_CABLE -# - TENSION_INIT -# - RECUL_ANCRAGE -# - RELAXATION -# - CONE -# RAYON -# LONGUEUR -# PRESENT OUI ou NON deux fois -# - TITRE -# - INFO 1 / 2 -# -# =========================================================================== - -DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=cabl_precont, - fr="Calculer les profils initiaux de tension le long des cables de précontrainte d'une structure en béton", - reentrant='n',UIinfo={"groupe":("Modélisation",)}, - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - GROUP_MA_BETON =SIMP(statut='o',typ=grma,max='**'), - DEFI_CABLE =FACT(statut='o',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),), - MAILLE =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD_ANCRAGE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=2), - GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - ), - TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ), - TENSION_INIT =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RECUL_ANCRAGE =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RELAXATION =FACT(statut='f',min=0, - R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ), - ), - CONE =FACT(statut='f', - RAYON =SIMP(statut='o',typ='R',val_min=0.E+0 ), - LONGUEUR =SIMP(statut='o',typ='R',val_min=0.E+0 ), - PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont,reentrant='n', - fr="Définit les profils initiaux de tension d'une structure en béton le long des cables de précontrainte" - +" (utilisée par la macro DEFI_CABLE_BP)", - UIinfo={"groupes":("Modélisation",)}, - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - GROUP_MA_BETON =SIMP(statut='o',typ=grma,max='**'), - DEFI_CABLE =FACT(statut='o',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'), - UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),), - MAILLE =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD_ANCRAGE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=2), - GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - GROUP_NO_FUT =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - ), - TYPE_ANCRAGE =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ), - TENSION_INIT =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RECUL_ANCRAGE =SIMP(statut='o',typ='R',val_min=0.E+0 ), - RELAXATION =FACT(statut='f',min=0, - R_J =SIMP(statut='o',typ='R',val_min=0.E+0 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - CONE =FACT(statut='f',min=0, - RAYON =SIMP(statut='o',typ='R',val_min=0.E+0 ), - LONGUEUR =SIMP(statut='o',typ='R',val_min=0.E+0, defaut=0.E+0 ), - PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 05/09/2006 AUTEUR JOUMANA J.EL-GHARIB -# 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','BCC24'),), - ), - - - POLYCRISTAL =FACT(statut='f', max='**', - regles=(UN_PARMI('ANGL_REP','ANGL_EULER'),), - MONOCRISTAL =SIMP(statut='o', typ=compor_sdaster, max=1), - FRAC_VOL =SIMP(statut='o', typ='R', max=1,fr="fraction volumique de la phase correspondant au monocristal"), - ANGL_REP =SIMP(statut='f',typ='R',max=3,fr="orientation du monocristal : 3 angles nautiques en degrés"), - ANGL_EULER=SIMP(statut='f',typ='R',max=3,fr="orientation du monocristal : 3 angles d'Euler en degrés"), - ), - - - b_poly =BLOC( condition = "POLYCRISTAL!='None'", - LOCALISATION =SIMP(statut='f', typ='TXM', max=1, into=('BZ', 'BETA', 'RL',), - fr="Donner le nom de la règle de localisation"), - - b_beta =BLOC( condition = "LOCALISATION=='BETA'", - DL =SIMP(statut='o',typ='R',max=1), - DA =SIMP(statut='o',typ='R',max=1), - ), - ), - - ); - -#& 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 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. -# ====================================================================== - -DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op= 41,sd_prod=fiss_xfem,reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="Définition des caratéristiques d'une fissure avec X-FEM", - - MODELE =SIMP(statut='o',typ=modele_sdaster), - DEFI_FISS =FACT(statut='o',max=01, - regles =(UN_PARMI('GROUP_MA_FISS','FONC_LT'), - 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='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="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" , ) ), - 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), - 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 08/03/2007 AUTEUR SALMONA 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_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Définition de lèvres et d'un fond de fissure en 3D", - regles=(UN_PARMI('FOND_FISS','FOND_FERME','FOND_INF'), - EXCLUS('FOND_FERME','DTAN_ORIG'), - EXCLUS('FOND_FERME','DTAN_EXTR'), - EXCLUS('FOND_FERME','VECT_GRNO_ORIG'), - EXCLUS('FOND_FERME','VECT_GRNO_EXTR'), - UN_PARMI('LEVRE_SUP','NORMALE'), - EXCLUS('LEVRE_INF','NORMALE'), - ENSEMBLE('DTAN_ORIG','DTAN_EXTR'), - ENSEMBLE('FOND_SUP','FOND_INF'), - EXCLUS('FOND_INF','FOND_FISS'), - EXCLUS('FOND_INF','FOND_FERME'), - ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'), - EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'), - EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - FOND_FISS =FACT(statut='f', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), -# à mettre à jour le max vaut-il 1 - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - ), - FOND_FERME =FACT(statut='f', - regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - MAILLE_ORIG =SIMP(statut='f',typ=ma,), - GROUP_MA_ORIG =SIMP(statut='f',typ=ma,), - ), - FOND_INF =FACT(statut='f', - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - ), - FOND_SUP =FACT(statut='f', - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - ), - LEVRE_SUP =FACT(statut='f', - regles=(UN_PARMI('GROUP_MA','MAILLE'),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - LEVRE_INF =FACT(statut='f', - regles=(UN_PARMI('GROUP_MA','MAILLE', ),), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - NORMALE =SIMP(statut='f',typ='R',max='**'), - PREC_NORM =SIMP(statut='f',typ='R',defaut=0.1), - DTAN_ORIG =SIMP(statut='f',typ='R',max='**'), - DTAN_EXTR =SIMP(statut='f',typ='R',max='**'), - VECT_GRNO_ORIG =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - VECT_GRNO_EXTR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 04/07/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def defi_group_prod(MAILLAGE,**args): - if AsType(MAILLAGE) == maillage_sdaster : return maillage_sdaster - if AsType(MAILLAGE) == squelette : return squelette - raise AsException("type de concept resultat non prevu") - -DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod, - fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage", - reentrant='o', - UIinfo={"groupes":("Maillage",)}, - regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO','DETR_GROUP_NO','DETR_GROUP_MA'),), - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster,squelette) ), - DETR_GROUP_MA =FACT(statut='f',max='**', - NOM =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),), - DETR_GROUP_NO =FACT(statut='f',max='**', - NOM =SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**'),), - CREA_GROUP_MA =FACT(statut='f',max='**', - -regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),), -# quel est le concept attendu deriere NOM - NOM =SIMP(statut='o',typ=grma), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - INTERSEC =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - UNION =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - DIFFE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE","BANDE","APPUI_LACHE") ), - b_group_ma =BLOC(condition = "GROUP_MA != None", - regles=(EXCLUS('POSITION','NUME_INIT'),), - NUME_INIT =SIMP(statut='f',typ='I'), - POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), - b_nume_init =BLOC(condition = "NUME_INIT != None", - NUME_FIN =SIMP(statut='f',typ='I' ), - ), - ), - b_face_normale =BLOC(condition = "OPTION == 'FACE_NORMALE'", - regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - ANGL_NAUT =SIMP(statut='f',typ='R',max=2), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - ANGL_PREC =SIMP(statut='f',typ='R',defaut= 0.5 ), - VERI_SIGNE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_sphere =BLOC(condition = "OPTION == 'SPHERE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),), - POINT =SIMP(statut='f',typ='R',max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - RAYON =SIMP(statut='o',typ='R' ), - ), - b_cylindre =BLOC(condition = "OPTION == 'CYLINDRE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R',max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno), - RAYON =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=2), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - ), - b_bande =BLOC(condition = "OPTION == 'BANDE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - POINT =SIMP(statut='f',typ='R' ,max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - DIST =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=2), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - ), - b_app_lache =BLOC(condition = "OPTION == 'APPUI_LACHE'", - regles=(UN_PARMI('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - ), - CREA_GROUP_NO =FACT(statut='f',max='**', - OPTION =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN", - "SEGM_DROI_ORDO","NOEUD_ORDO","TUNNEL") ), - - b_option =BLOC(condition = "OPTION == None" , - regles=(UN_PARMI('TOUT_GROUP_MA','GROUP_MA','GROUP_NO','NOEUD', - 'INTERSEC','UNION','DIFFE'),), - TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - INTERSEC =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - UNION =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - DIFFE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - - b_nom_group_ma =BLOC(condition = "GROUP_MA != None", - NOM = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - CRIT_NOEUD = SIMP(statut='f',typ='TXM',defaut="TOUS", - into=("TOUS","SOMMET","MILIEU","CENTRE"),), - ), - b_group_no =BLOC(condition = "GROUP_NO != None", - regles=(EXCLUS('POSITION','NUME_INIT'),), - NUME_INIT =SIMP(statut='f',typ='I'), - POSITION =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), - b_nume_init =BLOC(condition = "NUME_INIT != None", - NUME_FIN =SIMP(statut='f',typ='I' ), - ), - ), - b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" , - NOM =SIMP(statut='o',typ=geom), - ), - ), - - b_env_sphere =BLOC(condition = "OPTION == 'ENV_SPHERE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),), - NOM =SIMP(statut='o',typ=geom), - POINT =SIMP(statut='f',typ='R' ,max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - RAYON =SIMP(statut='o',typ='R' ), - PRECISION =SIMP(statut='o',typ='R' ), - ), - b_env_cylindre =BLOC(condition = "OPTION == 'ENV_CYLINDRE'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - NOM =SIMP(statut='o',typ=geom), - POINT =SIMP(statut='f',typ='R' ,max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - RAYON =SIMP(statut='o',typ='R' ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - VECT_NORMALE =SIMP(statut='f',typ='R',max=3), - PRECISION =SIMP(statut='o',typ='R' ), - ), - b_env_plan =BLOC(condition = "OPTION == 'PLAN'", - regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('ANGL_NAUT','VECT_NORMALE'),), - NOM =SIMP(statut='o',typ=geom), - POINT =SIMP(statut='f',typ='R' ,max=3), - NOEUD_CENTRE =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - ANGL_NAUT =SIMP(statut='f',typ='R' ,max=3), - VECT_NORMALE =SIMP(statut='f',typ='R' ,max=3), - PRECISION =SIMP(statut='o',typ='R' ), - ), - b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'", - regles=(AU_MOINS_UN('NOEUD','GROUP_NO'), - UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),), - NOM =SIMP(statut='o',typ=geom), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno), - NOEUD_EXTR =SIMP(statut='f',typ=no), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno), - PRECISION =SIMP(statut='o',typ='R' ), - CRITERE =SIMP(statut='o',typ='TXM',into=("ABSOLU","RELATIF") ), - ), - b_noeud_ordo =BLOC(condition = "OPTION == 'NOEUD_ORDO'", - regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),), - NOM =SIMP(statut='o',typ=geom), - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno), - NOEUD_EXTR =SIMP(statut='f',typ=no), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno), - ), - b_tunnel =BLOC(condition = "OPTION == 'TUNNEL'", - regles=(AU_MOINS_UN ('TOUT','GROUP_MA','MAILLE'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - AU_MOINS_UN ('GROUP_MA_AXE','MAILLE_AXE'),), - NOM =SIMP(statut='o',typ=geom), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_AXE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_AXE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD_ORIG =SIMP(statut='f',typ=no), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno), - RAYON =SIMP(statut='o',typ='R'), - LONGUEUR =SIMP(statut='f',typ='R'), - ), - ), - ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - INFO =SIMP(statut='f',typ='I',into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 26/06/2006 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op= 98,sd_prod=interf_dyna_clas, - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Définir les interfaces d'une structure et leur affecter un type", - NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster ), - INTERFACE =FACT(statut='o',max='**', - regles=(ENSEMBLE('NOM','TYPE'), -# erreur doc U sur la condition qui suit - UN_PARMI('NOEUD','GROUP_NO'),), - NOM =SIMP(statut='f',typ='TXM' ), - TYPE =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ), - NOEUD =SIMP(statut='f',typ=no,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,max='**'), -# DDL_ACTIF =SIMP(statut='f',typ='TXM',max='**'), - MASQUE =SIMP(statut='f',typ='TXM',max='**'), - ), - FREQ =SIMP(statut='f',typ='R',defaut= 1.), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -from Macro.defi_inte_spec_ops import defi_inte_spec_ops - -DEFI_INTE_SPEC=MACRO(nom="DEFI_INTE_SPEC",op= defi_inte_spec_ops,sd_prod=table_fonction, - reentrant='n', - fr="Définit une matrice interspectrale", - UIinfo={"groupes":("Fonction",)}, - - DIMENSION =SIMP(statut='f',typ='I',defaut= 1 ), - - PAR_FONCTION =FACT(statut='f',max='**', - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FONCTION =SIMP(statut='o',typ=fonction_c ), - ), - KANAI_TAJIMI =FACT(statut='f',max='**', - regles=(EXCLUS('VALE_R','VALE_C'),), - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), - PAS =SIMP(statut='f',typ='R',defaut= 1. ), - AMOR_REDUIT =SIMP(statut='f',typ='R',defaut= 0.6 ), - FREQ_MOY =SIMP(statut='f',typ='R',defaut= 5. ), - VALE_R =SIMP(statut='f',typ='R' ), - VALE_C =SIMP(statut='f',typ='C' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - CONSTANT =FACT(statut='f',max='**', - regles=(EXCLUS('VALE_R','VALE_C'),), - NUME_ORDRE_I =SIMP(statut='o',typ='I' ), - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FREQ_MAX =SIMP(statut='f',typ='R',defaut= 100. ), - PAS =SIMP(statut='f',typ='R',defaut= 1. ), - VALE_R =SIMP(statut='f',typ='R' ), - VALE_C =SIMP(statut='f',typ='C' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster, - fr="Définir une liste d'entier strictement croissante", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE','DEBUT'), - EXCLUS('VALE','INTERVALLE'),), - VALE =SIMP(statut='f',typ='I',max='**'), - DEBUT =SIMP(statut='f',typ='I'), - INTERVALLE =FACT(statut='f',max='**', - regles=(UN_PARMI('NOMBRE','PAS'),), - JUSQU_A =SIMP(statut='o',typ='I'), - NOMBRE =SIMP(statut='f',typ='I',val_min=1,), - PAS =SIMP(statut='f',typ='I',val_min=1,), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster, - fr="Définir une liste de réels strictement croissante", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('VALE','DEBUT',), - EXCLUS('VALE','INTERVALLE'), - ENSEMBLE('DEBUT','INTERVALLE')), - VALE =SIMP(statut='f',typ='R',max='**'), - DEBUT =SIMP(statut='f',typ='R'), - INTERVALLE =FACT(statut='f',max='**', - regles=(UN_PARMI('NOMBRE','PAS'),), - JUSQU_A =SIMP(statut='o',typ='R'), - NOMBRE =SIMP(statut='f',typ='I'), - PAS =SIMP(statut='f',typ='R'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 31/10/2006 AUTEUR A3BHHAE H.ANDRIAMBOLOLONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op= 88,sd_prod=maillage_sdaster, - fr="Définition d'un nouveau maillage à partir de macro-éléments", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - DEFI_SUPER_MAILLE =FACT(statut='o',max='**', - MACR_ELEM_STAT =SIMP(statut='o',typ=macr_elem_stat,max='**' ), - SUPER_MAILLE =SIMP(statut='f',typ=ma,max='**'), - TRAN =SIMP(statut='f',typ='R',max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - b_angl_naut =BLOC(condition = "ANGL_NAUT != None", - CENTRE =SIMP(statut='f',typ='R',max=3), - ), - ), - RECO_GLOBAL =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','SUPER_MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - SUPER_MAILLE =SIMP(statut='f',typ=ma,max='**'), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - RECO_SUPER_MAILLE =FACT(statut='f',max='**', - SUPER_MAILLE =SIMP(statut='o',typ=ma,max='**'), - GROUP_NO =SIMP(statut='o',typ=grno,max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ), - geometrique =BLOC(condition = "OPTION == 'GEOMETRIQUE'", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), - DEFI_NOEUD =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','NOEUD_INIT'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Renommage de tous les noeuds" ), - NOEUD_INIT =SIMP(statut='f',typ=no, - fr="Renommage d un seul noeud"), - b_tout =BLOC(condition = "TOUT != None", - PREFIXE =SIMP(statut='f',typ='TXM' ), - INDEX =SIMP(statut='o',typ='I',max='**'), - ), - b_noeud_init =BLOC(condition = "NOEUD_INIT != None", - SUPER_MAILLE =SIMP(statut='o',typ=ma), - NOEUD_FIN =SIMP(statut='o',typ=no), - ), - ), - DEFI_GROUP_NO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','SUPER_MAILLE'), - AU_MOINS_UN('INDEX','GROUP_NO_FIN'), - ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),), -# la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",), - fr="Création de plusieurs groupes de noeuds" ), - SUPER_MAILLE =SIMP(statut='f',typ=ma, - fr="Création de plusieurs groupes de noeuds"), - GROUP_NO_INIT =SIMP(statut='f',typ=grno, - fr="Création d un seul groupe de noeuds"), - PREFIXE =SIMP(statut='f',typ='TXM' ), - INDEX =SIMP(statut='f',typ='I',max='**'), - GROUP_NO_FIN =SIMP(statut='f',typ=grno), - ), -) ; -#& MODIF COMMANDE DATE 07/11/2006 AUTEUR MARKOVIC D.MARKOVIC -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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', - 'ELAS_HYPER',), - EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'), - EXCLUS('ECRO_LINE','ECRO_LINE_FO','ECRO_PUIS'), - 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('LEMAITRE','LEMAITRE_FO','ZIRC_CYRA2','ZIRC_EPRI','VISC_IRRA_LOG', - 'LEMA_SEUIL','LEMA_SEUIL_FO','LEMAITRE_IRRA','LMARC_IRRA',), - EXCLUS('LMARC','LMARC_FO'), - EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'), - EXCLUS('VENDOCHAB','VENDOCHAB_FO'), - PRESENT_PRESENT('BPEL_ACIER','ELAS'), - EXCLUS('RCCM','RCCM_FO'), - EXCLUS('WEIBULL','WEIBULL_FO'), - PRESENT_PRESENT('BARCELONE','CAM_CLAY','ELAS'), - PRESENT_PRESENT('CAM_CLAY','ELAS'), - PRESENT_PRESENT('LAIGLE','ELAS'), - PRESENT_PRESENT('DRUCK_PRAGER','ELAS'), - PRESENT_PRESENT('HOEK_BROWN','ELAS'), - EXCLUS('MAZARS','MAZARS_FO'), - PRESENT_PRESENT('BAZANT_FD','ELAS_FO'), - PRESENT_PRESENT('JOINT_BA','ELAS'), - PRESENT_PRESENT('CABLE','ELAS'), - EXCLUS('GLRC_DAMAGE','GLRC_DM'), - ), -# -# comportement élastique -# - ELAS =FACT(statut='f', - E =SIMP(statut='o',typ='R',val_min=0.E+0), - NU =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=0.5E+0), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - AMOR_ALPHA =SIMP(statut='f',typ='R'), - AMOR_BETA =SIMP(statut='f',typ='R'), - AMOR_HYST =SIMP(statut='f',typ='R'), - ), - ELAS_FO =FACT(statut='f', - regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),), - E =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.), - ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AMOR_ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AMOR_BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AMOR_HYST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - K_DESSIC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - B_ENDOGE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - FONC_DESORP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH","NEUT1","NEUT2",) ), - ), - ELAS_FLUI =FACT(statut='f', - E =SIMP(statut='o',typ='R'), - NU =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='o',typ='R'), - PROF_RHO_F_INT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PROF_RHO_F_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_MASS_AJOU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("ABSC",) ), - ), - ELAS_ISTR =FACT(statut='f', - E_L =SIMP(statut='o',typ='R'), - E_N =SIMP(statut='o',typ='R'), - NU_LT =SIMP(statut='o',typ='R'), - NU_LN =SIMP(statut='o',typ='R'), - G_LN =SIMP(statut='o',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ELAS_ISTR_FO =FACT(statut='f', - regles=( - PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'), - ), - E_L =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - E_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.), - ALPHA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST")), - ), - ELAS_ORTH =FACT(statut='f', - E_L =SIMP(statut='o',typ='R'), - E_T =SIMP(statut='o',typ='R'), - E_N =SIMP(statut='f',typ='R'), - NU_LT =SIMP(statut='o',typ='R'), - NU_LN =SIMP(statut='f',typ='R'), - NU_TN =SIMP(statut='f',typ='R'), - G_LT =SIMP(statut='o',typ='R'), - G_LN =SIMP(statut='f',typ='R'), - G_TN =SIMP(statut='f',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA_L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_T =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ALPHA_N =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - XT =SIMP(statut='f',typ='R',defaut= 1. ), - XC =SIMP(statut='f',typ='R',defaut= 1. ), - YT =SIMP(statut='f',typ='R',defaut= 1. ), - YC =SIMP(statut='f',typ='R',defaut= 1. ), - S_LT =SIMP(statut='f',typ='R',defaut= 1. ), - AMOR_ALPHA =SIMP(statut='f',typ='R'), - AMOR_BETA =SIMP(statut='f',typ='R'), - AMOR_HYST =SIMP(statut='f',typ='R'), - ), - ELAS_ORTH_FO =FACT(statut='f', - regles=( - PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('ALPHA_T','TEMP_DEF_ALPHA'), - ), - E_L =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - E_T =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - E_N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU_TN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_LT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_LN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_TN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO =SIMP(statut='f',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1. ), - ALPHA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST",) ), - AMOR_ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AMOR_BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AMOR_HYST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - ELAS_HYPER =FACT(statut='f', - regles=(UN_PARMI('K','NU'),), - C10 =SIMP(statut='f',typ='R',defaut=0.0), - C01 =SIMP(statut='o',typ='R'), - C20 =SIMP(statut='f',typ='R',defaut=0.0), - K =SIMP(statut='f',typ='R'), - RHO =SIMP(statut='f',typ='R',defaut=0.0), - NU =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=0.5E+0), - ), - ELAS_COQUE =FACT(statut='f', - regles=(EXCLUS('MEMB_L','M_LLLL',), - PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', - 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), - PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', - 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL', - 'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ', - 'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ', - 'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ', - 'C_LZTZ','C_TZTZ'),), - MEMB_L =SIMP(statut='f',typ='R'), - MEMB_LT =SIMP(statut='f',typ='R'), - MEMB_T =SIMP(statut='f',typ='R'), - MEMB_G_LT =SIMP(statut='f',typ='R'), - FLEX_L =SIMP(statut='f',typ='R'), - FLEX_LT =SIMP(statut='f',typ='R'), - FLEX_T =SIMP(statut='f',typ='R'), - FLEX_G_LT =SIMP(statut='f',typ='R'), - CISA_L =SIMP(statut='f',typ='R'), - CISA_T =SIMP(statut='f',typ='R'), - M_LLLL =SIMP(statut='f',typ='R'), - M_LLTT =SIMP(statut='f',typ='R'), - M_LLLT =SIMP(statut='f',typ='R'), - M_TTTT =SIMP(statut='f',typ='R'), - M_TTLT =SIMP(statut='f',typ='R'), - M_LTLT =SIMP(statut='f',typ='R'), - F_LLLL =SIMP(statut='f',typ='R'), - F_LLTT =SIMP(statut='f',typ='R'), - F_LLLT =SIMP(statut='f',typ='R'), - F_TTTT =SIMP(statut='f',typ='R'), - F_TTLT =SIMP(statut='f',typ='R'), - F_LTLT =SIMP(statut='f',typ='R'), - MF_LLLL =SIMP(statut='f',typ='R'), - MF_LLTT =SIMP(statut='f',typ='R'), - MF_LLLT =SIMP(statut='f',typ='R'), - MF_TTTT =SIMP(statut='f',typ='R'), - MF_TTLT =SIMP(statut='f',typ='R'), - MF_LTLT =SIMP(statut='f',typ='R'), - MC_LLLZ =SIMP(statut='f',typ='R'), - MC_LLTZ =SIMP(statut='f',typ='R'), - MC_TTLZ =SIMP(statut='f',typ='R'), - MC_TTTZ =SIMP(statut='f',typ='R'), - MC_LTLZ =SIMP(statut='f',typ='R'), - MC_LTTZ =SIMP(statut='f',typ='R'), - FC_LLLZ =SIMP(statut='f',typ='R'), - FC_LLTZ =SIMP(statut='f',typ='R'), - FC_TTLZ =SIMP(statut='f',typ='R'), - FC_TTTZ =SIMP(statut='f',typ='R'), - FC_LTLZ =SIMP(statut='f',typ='R'), - FC_LTTZ =SIMP(statut='f',typ='R'), - C_LZLZ =SIMP(statut='f',typ='R'), - C_LZTZ =SIMP(statut='f',typ='R'), - C_TZTZ =SIMP(statut='f',typ='R'), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - ), - ELAS_COQUE_FO =FACT(statut='f', - regles=(EXCLUS('MEMB_L','M_LLLL',), - PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT', - 'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',), - PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL', - 'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT', - 'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ', - 'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ', - 'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),), - MEMB_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEMB_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEMB_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEMB_G_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLEX_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLEX_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLEX_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLEX_G_LT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CISA_L =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CISA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_LLLL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_LLTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_LLLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_TTTT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_TTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MF_LTLT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_LLLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_LLTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_TTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_TTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_LTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MC_LTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_LLLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_LLTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_TTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_TTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_LTLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FC_LTTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_LZLZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_LZTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_TZTZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST") ), - ), - APPUI_ELAS =FACT(statut='f', - E_N =SIMP(statut='o',typ='R'), - E_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0), - ), - CABLE =FACT(statut='f', - EC_SUR_E =SIMP(statut='f',typ='R',defaut= 1.E-4 ), - ), -# -# comportement mécanique non linéaire -# - TRACTION =FACT(statut='f', - SIGM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP","HYDR","SECH",) ), - ), - ECRO_LINE =FACT(statut='f', - D_SIGM_EPSI =SIMP(statut='o',typ='R',), - SY =SIMP(statut='o',typ='R',), - ), - ECRO_LINE_FO =FACT(statut='f', - D_SIGM_EPSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - ECRO_PUIS =FACT(statut='f', - SY =SIMP(statut='o',typ='R',), - A_PUIS =SIMP(statut='o',typ='R',val_min=0.0), - N_PUIS =SIMP(statut='o',typ='R',val_min=1.E-6), - ), - ECRO_PUIS_FO =FACT(statut='f', - SY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_PUIS =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N_PUIS =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - BETON_ECRO_LINE =FACT(statut='f', - D_SIGM_EPSI =SIMP(statut='o',typ='R'), - SYT =SIMP(statut='o',typ='R'), - SYC =SIMP(statut='f',typ='R'), - ), - BETON_REGLE_PR =FACT(statut='f', - D_SIGM_EPSI =SIMP(statut='o',typ='R'), - SYT =SIMP(statut='o',typ='R'), - SYC =SIMP(statut='f',typ='R'), - EPSC =SIMP(statut='f',typ='R'), - N =SIMP(statut='f',typ='R'), - ), - ENDO_ORTH_BETON =FACT(statut='f', - ALPHA =SIMP(statut='f',typ='R',defaut=0.9), - K0 =SIMP(statut='o',typ='R'), - K1 =SIMP(statut='o',typ='R'), - K2 =SIMP(statut='f',typ='R',defaut=7.E-4), - ECROB =SIMP(statut='o',typ='R'), - ECROD =SIMP(statut='o',typ='R'), - ), - PRAGER =FACT(statut='f', - C =SIMP(statut='o',typ='R'), - ), - PRAGER_FO =FACT(statut='f', - C =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - ECRO_FLEJOU =FACT(statut='f', - EP =SIMP(statut='o',typ='R'), - SY =SIMP(statut='o',typ='R'), - SU =SIMP(statut='o',typ='R'), - PUISS =SIMP(statut='o',typ='R'), - ), - TAHERI =FACT(statut='f', - R_0 =SIMP(statut='o',typ='R'), - ALPHA =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - C_INF =SIMP(statut='o',typ='R'), - S =SIMP(statut='o',typ='R'), - ), - TAHERI_FO =FACT(statut='f', - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_INF =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - ROUSSELIER =FACT(statut='f', - D =SIMP(statut='o',typ='R'), - SIGM_1 =SIMP(statut='o',typ='R'), - PORO_INIT =SIMP(statut='o',typ='R'), - PORO_CRIT =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_ACCE =SIMP(statut='f',typ='R',defaut= 1. ), - PORO_LIMI =SIMP(statut='f',typ='R',defaut= 0.999 ), - D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ), - AN =SIMP(statut='f',typ='R',defaut= 0. ), - ), - 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'), - ), - CIN1_CHAB =FACT(statut='f', - R_0 =SIMP(statut='o',typ='R'), - R_I =SIMP(statut='f',typ='R'), - B =SIMP(statut='f',typ='R',defaut= 0.0E+0), - C_I =SIMP(statut='o',typ='R'), - K =SIMP(statut='f',typ='R',defaut= 1.0E+0), - W =SIMP(statut='f',typ='R',defaut= 0.0E+0), - G_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ), - CIN1_CHAB_FO =FACT(statut='f', - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - W =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)), - ), - CIN2_CHAB =FACT(statut='f', - R_0 =SIMP(statut='o',typ='R'), - R_I =SIMP(statut='f',typ='R'), - B =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - C1_I =SIMP(statut='o',typ='R'), - C2_I =SIMP(statut='o',typ='R'), - K =SIMP(statut='f',typ='R',defaut= 1.), - W =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - G1_0 =SIMP(statut='o',typ='R'), - G2_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='f',typ='R',defaut= 1.E+0 ), - ), - CIN2_CHAB_FO =FACT(statut='f', - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C1_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C2_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - W =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G1_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G2_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - VISCOCHAB =FACT(statut='f', - K_0 =SIMP(statut='o',typ='R'), - A_K =SIMP(statut='o',typ='R'), - A_R =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - ALP =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - M_R =SIMP(statut='o',typ='R'), - G_R =SIMP(statut='o',typ='R'), - MU =SIMP(statut='o',typ='R'), - Q_M =SIMP(statut='o',typ='R'), - Q_0 =SIMP(statut='o',typ='R'), - QR_0 =SIMP(statut='o',typ='R'), - ETA =SIMP(statut='o',typ='R'), - C1 =SIMP(statut='o',typ='R'), - M_1 =SIMP(statut='o',typ='R'), - D1 =SIMP(statut='o',typ='R'), - G_X1 =SIMP(statut='o',typ='R'), - G1_0 =SIMP(statut='o',typ='R'), - C2 =SIMP(statut='o',typ='R'), - M_2 =SIMP(statut='o',typ='R'), - D2 =SIMP(statut='o',typ='R'), - G_X2 =SIMP(statut='o',typ='R'), - G2_0 =SIMP(statut='o',typ='R'), - A_I =SIMP(statut='o',typ='R'), - ), - VISCOCHAB_FO =FACT(statut='f', - K_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ALP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_R =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - QR_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ETA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_X1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G1_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G_X2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - G2_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - LEMAITRE =FACT(statut='f', - N =SIMP(statut='o',typ='R'), - UN_SUR_K =SIMP(statut='o',typ='R'), - UN_SUR_M =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LEMAITRE_IRRA =FACT(statut='f', - N =SIMP(statut='o',typ='R'), - UN_SUR_K =SIMP(statut='o',typ='R'), - UN_SUR_M =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - QSR_K =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PHI_ZERO =SIMP(statut='f',typ='R',defaut= 1.E+20), - L =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GRAN_A =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GRAN_B =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GRAN_S =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LMARC_IRRA =FACT(statut='f', - DE_0 =SIMP(statut='o',typ='R'), - R_0 =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - Y_I =SIMP(statut='o',typ='R'), - Y_0 =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - A_0 =SIMP(statut='o',typ='R'), - RM =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - P =SIMP(statut='o',typ='R'), - P1 =SIMP(statut='o',typ='R'), - P2 =SIMP(statut='o',typ='R'), - M11 =SIMP(statut='o',typ='R'), - M22 =SIMP(statut='o',typ='R'), - M33 =SIMP(statut='o',typ='R'), - M66 =SIMP(statut='o',typ='R'), - N11 =SIMP(statut='o',typ='R'), - N22 =SIMP(statut='o',typ='R'), - N33 =SIMP(statut='o',typ='R'), - N66 =SIMP(statut='o',typ='R'), - Q11 =SIMP(statut='o',typ='R'), - Q22 =SIMP(statut='o',typ='R'), - Q33 =SIMP(statut='o',typ='R'), - Q66 =SIMP(statut='o',typ='R'), - R11 =SIMP(statut='o',typ='R'), - R22 =SIMP(statut='o',typ='R'), - R33 =SIMP(statut='o',typ='R'), - R66 =SIMP(statut='o',typ='R'), - GRAN_A =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GRAN_B =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GRAN_S =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ZIRC_CYRA2 =FACT(statut='f', - EPSI_FAB =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - TEMP_RECUIT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - FLUX_PHI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), - ), - VISC_IRRA_LOG =FACT(statut='f', - A =SIMP(statut='f',typ='R',defaut= 1.28E-1), - B =SIMP(statut='f',typ='R',defaut= 0.01159), - CSTE_TPS =SIMP(statut='f',typ='R',defaut= 0.3540), - ENER_ACT =SIMP(statut='f',typ='R',defaut= 5000.), - FLUX_PHI =SIMP(statut='o',typ='R',), - ), - GRAN_IRRA_LOG =FACT(statut='f', - A =SIMP(statut='f',typ='R',defaut= 1.28E-1), - B =SIMP(statut='f',typ='R',defaut= 0.01159), - CSTE_TPS =SIMP(statut='f',typ='R',defaut= 0.3540), - ENER_ACT =SIMP(statut='f',typ='R',defaut= 5000.), - FLUX_PHI =SIMP(statut='o',typ='R',), - GRAN_A =SIMP(statut='f',typ='R',defaut= 0.E+0), - GRAN_B =SIMP(statut='f',typ='R',defaut= 0.E+0), - GRAN_S =SIMP(statut='f',typ='R',defaut= 0.E+0), - ), - LEMA_SEUIL =FACT(statut='f', - A =SIMP(statut='o',typ='R',), - S =SIMP(statut='o',typ='R',), - ), - LEMA_SEUIL_FO=FACT(statut='f', - A =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - IRRAD3M=FACT(statut='f', - R02 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - EPSI_U =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - AI0 =SIMP(statut='o',typ='R',val_min=0.0), - ZETA =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'), - THETA_MAX =SIMP(statut='o',typ='R'), - ), - LEMAITRE_FO =FACT(statut='f', - N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - UN_SUR_K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - UN_SUR_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - LMARC =FACT(statut='f', - DE_0 =SIMP(statut='o',typ='R'), - R_0 =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - Y_I =SIMP(statut='o',typ='R'), - Y_0 =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - A_0 =SIMP(statut='o',typ='R'), - RM =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - P =SIMP(statut='o',typ='R'), - P1 =SIMP(statut='o',typ='R'), - P2 =SIMP(statut='o',typ='R'), - M11 =SIMP(statut='o',typ='R'), - M22 =SIMP(statut='o',typ='R'), - M33 =SIMP(statut='o',typ='R'), - M66 =SIMP(statut='o',typ='R'), - N11 =SIMP(statut='o',typ='R'), - N22 =SIMP(statut='o',typ='R'), - N33 =SIMP(statut='o',typ='R'), - N66 =SIMP(statut='o',typ='R'), - Q11 =SIMP(statut='o',typ='R'), - Q22 =SIMP(statut='o',typ='R'), - Q33 =SIMP(statut='o',typ='R'), - Q66 =SIMP(statut='o',typ='R'), - R11 =SIMP(statut='o',typ='R'), - R22 =SIMP(statut='o',typ='R'), - R33 =SIMP(statut='o',typ='R'), - R66 =SIMP(statut='o',typ='R'), - ), - LMARC_FO =FACT(statut='f', - DE_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Y_I =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Y_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - B =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - P =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - P1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - P2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - Q66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R11 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R22 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R33 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R66 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - VMIS_POUTRE =FACT(statut='f', - NP =SIMP(statut='o',typ='R'), - MEY =SIMP(statut='o',typ='R'), - MPY =SIMP(statut='o',typ='R'), - CAY =SIMP(statut='o',typ='R'), - CBY =SIMP(statut='o',typ='R'), - MEZ =SIMP(statut='o',typ='R'), - MPZ =SIMP(statut='o',typ='R'), - CAZ =SIMP(statut='o',typ='R'), - CBZ =SIMP(statut='o',typ='R'), - MPX =SIMP(statut='o',typ='R'), - ), - VMIS_POUTRE_FO =FACT(statut='f', - NP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MPY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CAY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CBY =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MEZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MPZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CAZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CBZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - MPX =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - ARME =FACT(statut='f', - KYE =SIMP(statut='o',typ='R'), - DLE =SIMP(statut='o',typ='R'), - KYP =SIMP(statut='o',typ='R'), - DLP =SIMP(statut='o',typ='R'), - KYG =SIMP(statut='o',typ='R'), - ), - ASSE_CORN =FACT(statut='f', - NU_1 =SIMP(statut='o',typ='R'), - MU_1 =SIMP(statut='o',typ='R'), - DXU_1 =SIMP(statut='o',typ='R'), - DRYU_1 =SIMP(statut='o',typ='R'), - C_1 =SIMP(statut='o',typ='R'), - NU_2 =SIMP(statut='o',typ='R'), - MU_2 =SIMP(statut='o',typ='R'), - DXU_2 =SIMP(statut='o',typ='R'), - DRYU_2 =SIMP(statut='o',typ='R'), - C_2 =SIMP(statut='o',typ='R'), - KY =SIMP(statut='o',typ='R'), - KZ =SIMP(statut='o',typ='R'), - KRX =SIMP(statut='o',typ='R'), - KRZ =SIMP(statut='o',typ='R'), - R_P0 =SIMP(statut='f',typ='R',defaut= 1.E+4 ), - ), - DIS_CONTACT =FACT(statut='f', - RIGI_NOR =SIMP(statut='f',typ='R' ), - DIST_1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DIST_2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - AMOR_NOR =SIMP(statut='f',typ='R' ), - AMOR_TAN =SIMP(statut='f',typ='R' ), - COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - JEU =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - KT_ULTM =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - EFFO_N_INIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA',), - EXCLUS('RELA_MZ','ANGLE_1'), - PRESENT_PRESENT('ANGLE_1','ANGLE_2','ANGLE_3','ANGLE_4', - 'MOMENT_1','MOMENT_2','MOMENT_3','MOMENT_4'),), - RIGI_N_IRRA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - RIGI_N_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - RELA_MZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ANGLE_1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ANGLE_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ANGLE_3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ANGLE_4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MOMENT_1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MOMENT_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MOMENT_3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MOMENT_4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_PRAGER_MZ =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ), - ), - DIS_GRICRA =FACT(statut='f', - KN_AX =SIMP(statut='o',typ='R' ), - KT_AX =SIMP(statut='o',typ='R' ), - COUL_AX =SIMP(statut='o',typ='R' ), - F_SER =SIMP(statut='f',typ='R' ), - F_SER_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ET_AX =SIMP(statut='f',typ='R',defaut=1.e-7 ), - ET_ROT =SIMP(statut='f',typ='R',defaut=1.e-7 ), - ANG1 =SIMP(statut='f',typ='R' ), - ANG2 =SIMP(statut='f',typ='R' ), - PEN1 =SIMP(statut='f',typ='R' ), - PEN2 =SIMP(statut='f',typ='R' ), - PEN3 =SIMP(statut='f',typ='R' ), - ANG1_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ANG2_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PEN1_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PEN2_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PEN3_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles=(EXCLUS('ANG1','ANG1_FO',), - UN_PARMI('ANG1','ANG1_FO',), - EXCLUS('F_SER','F_SER_FO',), - UN_PARMI('F_SER','F_SER_FO',), - PRESENT_PRESENT('ANG1','ANG2','PEN1','PEN2','PEN3',), - PRESENT_PRESENT('ANG1_FO','ANG2_FO','PEN1_FO','PEN2_FO','PEN3_FO',), - ), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ), - ), - NADAI_B =FACT(statut='f', - F_C =SIMP(statut='o',typ='R'), - F_T =SIMP(statut='o',typ='R'), - CRIT_E_C =SIMP(statut='o',typ='R'), - EPSP_P_C =SIMP(statut='o',typ='R'), - EPSP_R_C =SIMP(statut='o',typ='R'), - EPSI_R_T =SIMP(statut='o',typ='R'), - FAC_T_C =SIMP(statut='o',typ='R'), - ), - BETON_DOUBLE_DP =FACT(statut='f', - F_C =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_T =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_BIAX =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ENER_COMP_RUPT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ENER_TRAC_RUPT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_ELAS_COMP =SIMP(statut='o',typ='R'), - LONG_CARA =SIMP(statut='f',typ='R'), - ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ), - ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH",) ), - ), - LABORD_1D=FACT(statut='f',min=0 , - Y01 =SIMP(statut='o',typ='R'), - Y02 =SIMP(statut='o',typ='R'), - A1 =SIMP(statut='o',typ='R'), - A2 =SIMP(statut='o',typ='R'), - B1 =SIMP(statut='o',typ='R'), - B2 =SIMP(statut='o',typ='R'), - BETA1 =SIMP(statut='o',typ='R'), - BETA2 =SIMP(statut='o',typ='R'), - SIGF =SIMP(statut='o',typ='R'), - ), - MAZARS=FACT(statut='f',min=0 , - EPSD0 =SIMP(statut='o',typ='R'), - BETA =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ='R'), - BC =SIMP(statut='o',typ='R'), - AT =SIMP(statut='o',typ='R'), - BT =SIMP(statut='o',typ='R'), - ), - MAZARS_FO=FACT(statut='f',min=0 , - EPSD0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BETA =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - AT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","SECH","HYDR") ), - ), - JOINT_BA=FACT(statut='f',min=0 ,max=1, - HPEN =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=0.E+0), - GTT =SIMP(statut='o',typ='R',val_min=0.E+0), - GAMD0 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E-1), - AD1 =SIMP(statut='o',typ='R',val_min=0.E+0), - BD1 =SIMP(statut='o',typ='R',defaut= 5.E-1,val_min=1.E-1), - GAMD2 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0), - AD2 =SIMP(statut='o',typ='R',val_min=0.E+0), - BD2 =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1), - VIFROT =SIMP(statut='o',typ='R',val_min=0.E+0), - FA =SIMP(statut='o',typ='R',val_min=0.E+0), - FC =SIMP(statut='o',typ='R',val_min=0.E+0), - EPSTR0 =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0), - ADN =SIMP(statut='o',typ='R',val_min=0.E+0), - BDN =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1), - ), - VENDOCHAB =FACT(statut='f', - S_VP =SIMP(statut='o',typ='R'), - SEDVP1 =SIMP(statut='o',typ='R'), - SEDVP2 =SIMP(statut='o',typ='R'), - N_VP =SIMP(statut='o',typ='R'), - M_VP =SIMP(statut='o',typ='R'), - K_VP =SIMP(statut='o',typ='R'), - R_D =SIMP(statut='o',typ='R'), - A_D =SIMP(statut='o',typ='R'), - K_D =SIMP(statut='o',typ='R'), - ), - VENDOCHAB_FO =FACT(statut='f', - S_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SEDVP1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SEDVP2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - N_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - M_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - K_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","X",) ), - ), - PINTO_MENEGOTTO =FACT(statut='f', - SY =SIMP(statut='o',typ='R'), - EPSI_ULTM =SIMP(statut='o',typ='R'), - SIGM_ULTM =SIMP(statut='o',typ='R'), - ELAN =SIMP(statut='f',typ='R',defaut= 4. ), - EPSP_HARD =SIMP(statut='o',typ='R'), - R_PM =SIMP(statut='f',typ='R',defaut= 20. ), - EP_SUR_E =SIMP(statut='f',typ='R'), - A1_PM =SIMP(statut='f',typ='R',defaut= 18.5 ), - A2_PM =SIMP(statut='f',typ='R',defaut= 0.15 ), - A6_PM =SIMP(statut='f',typ='R',defaut= 620. ), - C_PM =SIMP(statut='f',typ='R',defaut= 0.5 ), - A_PM =SIMP(statut='f',typ='R',defaut= 6.0E-3 ), - ), - BPEL_BETON =FACT(statut='f', - PERT_FLUA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PERT_RETR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - BPEL_ACIER =FACT(statut='f', - regles=(PRESENT_PRESENT('RELAX_1000','F_PRG',), - PRESENT_PRESENT('MU0_RELAX','F_PRG',),), - RELAX_1000 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - MU0_RELAX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - F_PRG =SIMP(statut='f',typ='R'), - FROT_COURB =SIMP(statut='f',typ='R',defaut=0.E+0), - FROT_LINE =SIMP(statut='f',typ='R',defaut=0.E+0), - ), - CAM_CLAY =FACT(statut='f', - PORO =SIMP(statut='o',typ='R'), - LAMBDA =SIMP(statut='o',typ='R'), - KAPA =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - PRES_CRIT =SIMP(statut='o',typ='R'), - PA =SIMP(statut='o',typ='R'), - ), - BARCELONE =FACT(statut='f', - R =SIMP(statut='o',typ='R'), - BETA =SIMP(statut='o',typ='R'), - KC =SIMP(statut='o',typ='R'), - PC0_INIT =SIMP(statut='o',typ='R'), - KAPAS =SIMP(statut='o',typ='R'), - LAMBDAS =SIMP(statut='o',typ='R'), - ALPHAB =SIMP(statut='f',typ='R'), - ), - CJS =FACT(statut='f', - BETA_CJS =SIMP(statut='o',typ='R'), - RM =SIMP(statut='o',typ='R'), - N_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - KP =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RC =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - A_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - B_CJS =SIMP(statut='f',typ='R',defaut= 1.0E+25 ), - C_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - GAMMA_CJS =SIMP(statut='o',typ='R'), - MU_CJS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PCO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PA =SIMP(statut='o',typ='R'), - Q_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - R_INIT =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ECRO_ASYM_LINE =FACT(statut='f', - DC_SIGM_EPSI =SIMP(statut='o',typ='R'), - SY_C =SIMP(statut='o',typ='R'), - DT_SIGM_EPSI =SIMP(statut='o',typ='R'), - SY_T =SIMP(statut='o',typ='R'), - ), - GRANGER_FP =FACT(statut='f', - J1 =SIMP(statut='f',typ='R'), - J2 =SIMP(statut='f',typ='R'), - J3 =SIMP(statut='f',typ='R'), - J4 =SIMP(statut='f',typ='R'), - J5 =SIMP(statut='f',typ='R'), - J6 =SIMP(statut='f',typ='R'), - J7 =SIMP(statut='f',typ='R'), - J8 =SIMP(statut='f',typ='R'), - TAUX_1 =SIMP(statut='f',typ='R'), - TAUX_2 =SIMP(statut='f',typ='R'), - TAUX_3 =SIMP(statut='f',typ='R'), - TAUX_4 =SIMP(statut='f',typ='R'), - TAUX_5 =SIMP(statut='f',typ='R'), - TAUX_6 =SIMP(statut='f',typ='R'), - TAUX_7 =SIMP(statut='f',typ='R'), - TAUX_8 =SIMP(statut='f',typ='R'), - QSR_K =SIMP(statut='f',typ='R'), - ), - GRANGER_FP_INDT =FACT(statut='f', - J1 =SIMP(statut='f',typ='R'), - J2 =SIMP(statut='f',typ='R'), - J3 =SIMP(statut='f',typ='R'), - J4 =SIMP(statut='f',typ='R'), - J5 =SIMP(statut='f',typ='R'), - J6 =SIMP(statut='f',typ='R'), - J7 =SIMP(statut='f',typ='R'), - J8 =SIMP(statut='f',typ='R'), - TAUX_1 =SIMP(statut='f',typ='R'), - TAUX_2 =SIMP(statut='f',typ='R'), - TAUX_3 =SIMP(statut='f',typ='R'), - TAUX_4 =SIMP(statut='f',typ='R'), - TAUX_5 =SIMP(statut='f',typ='R'), - TAUX_6 =SIMP(statut='f',typ='R'), - TAUX_7 =SIMP(statut='f',typ='R'), - TAUX_8 =SIMP(statut='f',typ='R'), - ), - V_GRANGER_FP =FACT(statut='f', - QSR_VEIL =SIMP(statut='f',typ='R'), - FONC_V =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), - ), - BAZANT_FD =FACT(statut='f', - LAM_VISC =SIMP(statut='o',typ='R'), - ), - BETON_UMLV_FP =FACT(statut='f',min=0 , - K_RS =SIMP(statut='o',typ='R'), - ETA_RS =SIMP(statut='o',typ='R'), - K_IS =SIMP(statut='o',typ='R'), - ETA_IS =SIMP(statut='o',typ='R'), - K_RD =SIMP(statut='o',typ='R'), - ETA_RD =SIMP(statut='o',typ='R'), - ETA_ID =SIMP(statut='o',typ='R'), - ETA_FD =SIMP(statut='f',typ='R'), - ), - GLRC_DAMAGE =FACT(statut='f',min=0,max=1, - FMEX1 =SIMP(statut='o',typ=(fonction_sdaster)), - FMEY1 =SIMP(statut='o',typ=(fonction_sdaster)), - FMEX2 =SIMP(statut='o',typ=(fonction_sdaster)), - FMEY2 =SIMP(statut='o',typ=(fonction_sdaster)), - DFMEX1 =SIMP(statut='o',typ=(fonction_sdaster)), - DFMEY1 =SIMP(statut='o',typ=(fonction_sdaster)), - DFMEX2 =SIMP(statut='o',typ=(fonction_sdaster)), - DFMEY2 =SIMP(statut='o',typ=(fonction_sdaster)), - DDFMEX1 =SIMP(statut='o',typ=(fonction_sdaster)), - DDFMEY1 =SIMP(statut='o',typ=(fonction_sdaster)), - DDFMEX2 =SIMP(statut='o',typ=(fonction_sdaster)), - DDFMEY2 =SIMP(statut='o',typ=(fonction_sdaster)), - - CX1 =SIMP(statut='o',typ='R',val_min=0.E+0), - CY1 =SIMP(statut='o',typ='R',val_min=0.E+0), - CXY1 =SIMP(statut='o',typ='R',val_min=0.E+0), - CX2 =SIMP(statut='o',typ='R',val_min=0.E+0), - CY2 =SIMP(statut='o',typ='R',val_min=0.E+0), - CXY2 =SIMP(statut='o',typ='R',val_min=0.E+0), - MF1 =SIMP(statut='o',typ='R',val_min=0.E+0), - MF2 =SIMP(statut='o',typ='R',val_max=0.E+0), - QP1 =SIMP(statut='o',typ='R',val_min=0.E+0), - QP2 =SIMP(statut='o',typ='R',val_min=0.E+0), - GAMMA =SIMP(statut='o',typ='R',val_min=0.E+0), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("X ",) ), - ), - GLRC_DM =FACT(statut='f',min=0,max=1, - GAMMA_T =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), - GAMMA_F =SIMP(statut='o',typ='R',val_min=0.E+0,val_max=1.E+0), - SYT =SIMP(statut='o',typ='R',val_min=0.E+0), - SYF =SIMP(statut='o',typ='R',val_min=0.E+0), - EF =SIMP(statut='f',typ='R',val_min=0.E+0), - NUF =SIMP(statut='f',typ='R',val_min=0.E+0,val_max=0.5+0), - ), - GLRC_ACIER =FACT(statut='f',min=0,max=1, - AX =SIMP(statut='o',typ='R',val_min=0.E+0), - AY =SIMP(statut='o',typ='R',val_min=0.E+0), - E =SIMP(statut='o',typ='R',val_min=0.E+0), - ENROB =SIMP(statut='o',typ='R',val_min=0.E+0), - ), - GATT_MONERIE =FACT(statut='f',min=0,max=1, - D_GRAIN =SIMP(statut='o',typ='R',val_min=0.E+0), - PORO_INIT =SIMP(statut='o',typ='R',val_min=0.E+0), - EPSI_01 =SIMP(statut='o',typ='R',defaut= 2.7252E-10,val_min=0.E+0), - EPSI_02 =SIMP(statut='o',typ='R',defaut= 9.1440E-41,val_min=0.E+0), - ), - CORR_ACIER =FACT(statut='f',min=0 ,max=1, - D_CORR =SIMP(statut='o',typ='R'), - ECRO_K =SIMP(statut='o',typ='R'), - ECRO_M =SIMP(statut='o',typ='R'), - SY =SIMP(statut='o',typ='R'), - ), -# -# comportement thermique -# - THER_NL =FACT(statut='f', - regles=(UN_PARMI('BETA','RHO_CP', ),), - LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO_CP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - THER_HYDR =FACT(statut='f', - LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - BETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - AFFINITE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHALHYDR =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='o',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("HYDR","TEMP",) ), - ), - THER =FACT(statut='f', - LAMBDA =SIMP(statut='o',typ='R'), - RHO_CP =SIMP(statut='f',typ='R'), - ), - THER_FO =FACT(statut='f', - LAMBDA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - RHO_CP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ), - ), - THER_ORTH =FACT(statut='f', - LAMBDA_L =SIMP(statut='o',typ='R'), - LAMBDA_T =SIMP(statut='o',typ='R'), - LAMBDA_N =SIMP(statut='f',typ='R'), - RHO_CP =SIMP(statut='f',typ='R'), - ), - THER_COQUE =FACT(statut='f', - COND_LMM =SIMP(statut='o',typ='R'), - COND_TMM =SIMP(statut='o',typ='R'), - COND_LMP =SIMP(statut='o',typ='R'), - COND_TMP =SIMP(statut='o',typ='R'), - COND_LPP =SIMP(statut='o',typ='R'), - COND_TPP =SIMP(statut='o',typ='R'), - COND_LSI =SIMP(statut='o',typ='R'), - COND_TSI =SIMP(statut='o',typ='R'), - COND_NMM =SIMP(statut='o',typ='R'), - COND_NMP =SIMP(statut='o',typ='R'), - COND_NPP =SIMP(statut='o',typ='R'), - COND_NSI =SIMP(statut='o',typ='R'), - CMAS_MM =SIMP(statut='f',typ='R'), - CMAS_MP =SIMP(statut='f',typ='R'), - CMAS_PP =SIMP(statut='f',typ='R'), - CMAS_SI =SIMP(statut='f',typ='R'), - ), - THER_COQUE_FO =FACT(statut='f', - COND_LMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_TMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_LMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_TMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_LPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_TPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_LSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_TSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_NMM =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_NMP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_NPP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COND_NSI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - CMAS_MM =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CMAS_MP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CMAS_PP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CMAS_SI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - SECH_GRANGER =FACT(statut='f', - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='o',typ='R'), - TEMP_0_C =SIMP(statut='o',typ='R'), - ), - SECH_MENSI =FACT(statut='f', - A =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - ), - SECH_BAZANT =FACT(statut='f', - D1 =SIMP(statut='o',typ='R'), - ALPHA_BAZANT =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - FONC_DESORP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - SECH_NAPPE =FACT(statut='f', - FONCTION =SIMP(statut='o',typ=(nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","TSEC",) ), - ), -# -# comportement métallurgique -# - META_ACIER =FACT(statut='f', - TRC =SIMP(statut='o',typ=(table_sdaster) ), - AR3 =SIMP(statut='o',typ='R'), - ALPHA =SIMP(statut='o',typ='R'), - MS0 =SIMP(statut='o',typ='R'), - AC1 =SIMP(statut='o',typ='R'), - AC3 =SIMP(statut='o',typ='R'), - TAUX_1 =SIMP(statut='o',typ='R'), - TAUX_3 =SIMP(statut='o',typ='R'), - LAMBDA0 =SIMP(statut='f',typ='R'), - QSR_K =SIMP(statut='f',typ='R'), - D10 =SIMP(statut='f',typ='R'), - WSR_K =SIMP(statut='f',typ='R'), - ), - META_ZIRC =FACT(statut='f', - TDEQ =SIMP(statut='o',typ='R'), - N =SIMP(statut='o',typ='R'), - K =SIMP(statut='o',typ='R'), - TDC =SIMP(statut='o',typ='R'), - AC =SIMP(statut='o',typ='R'), - M =SIMP(statut='o',typ='R'), - QSR_K =SIMP(statut='f',typ='R'), - TDR =SIMP(statut='o',typ='R'), - AR =SIMP(statut='o',typ='R'), - BR =SIMP(statut='o',typ='R'), - ), - DURT_META =FACT(statut='f', - F1_DURT =SIMP(statut='o',typ='R'), - F2_DURT =SIMP(statut='o',typ='R'), - F3_DURT =SIMP(statut='o',typ='R'), - F4_DURT =SIMP(statut='o',typ='R'), - C_DURT =SIMP(statut='o',typ='R'), - ), - ELAS_META =FACT(statut='f', - E =SIMP(statut='o',typ='R'), - NU =SIMP(statut='o',typ='R'), - F_ALPHA =SIMP(statut='o',typ='R'), - C_ALPHA =SIMP(statut='o',typ='R'), - PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), - EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), - F1_SY =SIMP(statut='f',typ='R'), - F2_SY =SIMP(statut='f',typ='R'), - F3_SY =SIMP(statut='f',typ='R'), - F4_SY =SIMP(statut='f',typ='R'), - C_SY =SIMP(statut='f',typ='R'), - SY_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_S_VP =SIMP(statut='f',typ='R'), - F2_S_VP =SIMP(statut='f',typ='R'), - F3_S_VP =SIMP(statut='f',typ='R'), - F4_S_VP =SIMP(statut='f',typ='R'), - C_S_VP =SIMP(statut='f',typ='R' ), - S_VP_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("META",)), - ), - ELAS_META_FO =FACT(statut='f', - regles=( - PRESENT_PRESENT('F_ALPHA','TEMP_DEF_ALPHA'), - PRESENT_PRESENT('C_ALPHA','TEMP_DEF_ALPHA'), - ), - E =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - NU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - F_ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_ALPHA =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PHASE_REFE =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")), - EPSF_EPSC_TREF =SIMP(statut='o',typ='R'), - TEMP_DEF_ALPHA =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E+0), - F1_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_SY =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SY_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_S_VP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - S_VP_MELANGE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",)), - ), - META_ECRO_LINE =FACT(statut='f', - F1_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_D_SIGM_EPSI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)), - ), - META_TRACTION =FACT(statut='f', - SIGM_F1 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_F2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_F3 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_F4 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP",)), - ), - META_VISC_FO =FACT(statut='f', - F1_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F1_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_ETA =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_N =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_C =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - C_M =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - META_PT =FACT(statut='f', - F1_K =SIMP(statut='f',typ='R'), - F2_K =SIMP(statut='f',typ='R'), - F3_K =SIMP(statut='f',typ='R'), - F4_K =SIMP(statut='f',typ='R'), - F1_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F2_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F3_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - F4_D_F_META =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",) ), - ), - META_RE =FACT(statut='f', - C_F1_THETA =SIMP(statut='f',typ='R'), - C_F2_THETA =SIMP(statut='f',typ='R'), - C_F3_THETA =SIMP(statut='f',typ='R'), - C_F4_THETA =SIMP(statut='f',typ='R'), - F1_C_THETA =SIMP(statut='f',typ='R'), - F2_C_THETA =SIMP(statut='f',typ='R'), - F3_C_THETA =SIMP(statut='f',typ='R'), - F4_C_THETA =SIMP(statut='f',typ='R'), - ), -# -# comportement fluide -# - FLUIDE =FACT(statut='f', - regles=(EXCLUS('CELE_C','CELE_R'),), - RHO =SIMP(statut='o',typ='R'), - CELE_C =SIMP(statut='f',typ='C'), - CELE_R =SIMP(statut='f',typ='R'), - ), - PORO_JOINT =FACT(statut='f', - RHO_FLUI =SIMP(statut='o',typ='R'), - ENTRO_FLUI =SIMP(statut='o',typ='R'), - BIOT_M =SIMP(statut='o',typ='R'), - C_0 =SIMP(statut='o',typ='R'), - T_R =SIMP(statut='o',typ='R'), - ALPHA_M =SIMP(statut='o',typ='R'), - LAMBDA_T =SIMP(statut='o',typ='R'), - LAMBDA_H =SIMP(statut='o',typ='R'), - SOURCE_INIT =SIMP(statut='o',typ='R'), - OMEGA_0 =SIMP(statut='o',typ='R'), - ), -# ================================================================================= -# COMPORTEMENT THERMO_HYDRO_MECANIQUE -# LES DONNEES NECESSAIRES A LA DEFINITION DU MATERIAU SONT DEPENDANTES -# DE LA LOI DE COUPLAGE THM DE LA RELATION -# LE COMPORTEMENT DE COUPLAGE COMP_THM N EST VALABLE QUE POUR LES LOIS -# DE COUPLAGE : LIQU_SATU,LIQU_GAZ,GAZ,LIQU_GAZ_ATM,LIQU_VAPE_GAZ,LIQU_VAPE -# ET LIQU_AD_GAZ_VAPE -# LA CORRESPONDANCE AVEC LES VARIABLES CACHEES EST LA SUIVANTE : -# 1 --> LIQU_SATU -# 2 --> GAZ -# 3 --> LIQU_VAPE -# 4 --> LIQU_VAPE_GAZ -# 5 --> LIQU_GAZ -# 6 --> LIQU_GAZ_ATM -# 9 --> LIQU_AD_GAZ_VAPE -# ================================================================================= - COMP_THM = SIMP(statut='f', typ='TXM', - into = ( "LIQU_SATU" , - "LIQU_GAZ" , - "GAZ" , - "LIQU_GAZ_ATM" , - "LIQU_VAPE_GAZ" , - "LIQU_VAPE" , - "LIQU_AD_GAZ_VAPE" , - ) ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_SATU ------------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU ----------------------------------------------- -# ================================================================================= - b_liqusatu = BLOC(condition = "COMP_THM == 'LIQU_SATU' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRE2 = SIMP(statut='f',typ='R'), - PRES_VAPE = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 1.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='f',typ='R'), - EMMAG = SIMP(statut='f',typ='R'), - SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_GAZ -------------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ -------------------------------------- -# ================================================================================= - b_liqugaz = BLOC(condition = "COMP_THM == 'LIQU_GAZ' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PRE2 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRES_VAPE = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 5.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE GAZ ------------------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_GAZ ------------------------------------------------ -# ================================================================================= - b_gaz = BLOC(condition = "COMP_THM == 'GAZ' ", - fr="Paramètres nécessaires pour une loi de couplage de type GAZ", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='o',typ='R'), - PRE1 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRE2 = SIMP(statut='f',typ='R'), - PRES_VAPE = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 2.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_LIQU =FACT(statut='f', - RHO =SIMP(statut='f',typ='R'), - UN_SUR_K =SIMP(statut='f',typ='R'), - ALPHA =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_HENRY =SIMP(statut='f',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_GAZ_ATM ---------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ -------------------------------------- -# ================================================================================= - b_liqugazatm = BLOC(condition = "COMP_THM == 'LIQU_GAZ_ATM' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ_ATM", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRE2 = SIMP(statut='f',typ='R'), - PRES_VAPE = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 6.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - R_GAZ =SIMP(statut='f',typ='R'), - PERM_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='f', - MASS_MOL = SIMP(statut='f',typ='R'), - VISC = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CP = SIMP(statut='f',typ='R'), - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_VAPE_GAZ --------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ ------------------------ -# ================================================================================= - b_liquvapegaz = BLOC(condition = "COMP_THM == 'LIQU_VAPE_GAZ' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE_GAZ", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PRE2 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), - PRES_VAPE = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 4.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVE ---------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT" ,"PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - CP = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_AD_GAZ_VAPE ------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ THM_AIR_DISSOUS--------- -# ================================================================================= - b_liquadvape = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ_VAPE' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ_VAPE", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PRE2 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), - PRES_VAPE = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 9.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES FACULTATIVES ------------------------------------ -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - CP = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_AIR_DISS = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='o',typ='R'), - COEF_HENRY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",),), - ), - ), -# ================================================================================= -# --- LOI DE COUPLAGE DE TYPE LIQU_VAPE ------------------------------------------- -# ================================================================================= -# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : --------------------------------- -# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_VAPE_GAZ --------------------------------- -# ================================================================================= - b_liquvape = BLOC(condition = "COMP_THM == 'LIQU_VAPE' ", - fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE", -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_INIT = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - PRE1 = SIMP(statut='o',typ='R'), - PORO = SIMP(statut='o',typ='R'), - PRES_VAPE = SIMP(statut='o',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - TEMP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - PRE2 = SIMP(statut='f',typ='R'), - DEGR_SATU = SIMP(statut='f',typ='R'), - PRES_ATMO = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEE CACHEE --------------------------------------------- -# --------------------------------------------------------------------------------- - COMP_THM = SIMP(statut='c',typ='R',defaut= 3.0,), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_DIFFU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - R_GAZ = SIMP(statut='o',typ='R'), - RHO = SIMP(statut='o',typ='R'), - BIOT_COEF = SIMP(statut='o',typ='R'), - PESA_X = SIMP(statut='o',typ='R'), - PESA_Y = SIMP(statut='o',typ='R'), - PESA_Z = SIMP(statut='o',typ='R'), - SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SATU_PRES = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_LIQU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_SATU_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_PERM_PRES_GAZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - CP = SIMP(statut='f',typ='R'), - PERM_IN = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_END = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',), - PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ), - PERMIN_X =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERMIN_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_LB_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - LAMB_CT = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES INUTILES ---------------------------------------- -# --------------------------------------------------------------------------------- - EMMAG = SIMP(statut='f',typ='R'), - SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_SIGMA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - PERM_G_INTR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CHAL_VAPO = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PV = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKV_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FV_PG = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PA = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_PL = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - FICKA_S = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_FA_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ), - ) , -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_LIQU = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - RHO = SIMP(statut='o',typ='R'), - UN_SUR_K = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES NECESSAIRE SI THERMIQUE ------------------------- -# --------------------------------------------------------------------------------- - ALPHA = SIMP(statut='f',typ='R'), - CP = SIMP(statut='f',typ='R'), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES --------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE OBLIGATOIRE --------------------------------------------------------- -# ================================================================================= - THM_VAPE_GAZ = FACT(statut='o', -# --------------------------------------------------------------------------------- -# ------------------- DONNEES OBLIGATOIRE ------------------------------------- -# --------------------------------------------------------------------------------- - MASS_MOL = SIMP(statut='o',typ='R'), - CP = SIMP(statut='o',typ='R'), - VISC = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), -# --------------------------------------------------------------------------------- -# ------------------- DONNEES CACHEES ------------------------------------------- -# --------------------------------------------------------------------------------- - VERI_P = SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), -# ================================================================================= -# --- MOT-CLE INUTILE ------------------------------------------------------------- -# ================================================================================= - THM_GAZ =FACT(statut='f', - MASS_MOL =SIMP(statut='f',typ='R'), - CP =SIMP(statut='f',typ='R'), - VISC =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - D_VISC_TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - VERI_P =SIMP(statut='c',typ='TXM',defaut=("TEMP",)), - ), - ), -# courbes et coefficients associés à la fatigue et au dommage -# - FATIGUE =FACT(statut='f', - regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'), - PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'), - PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'), - ENSEMBLE('A_BASQUIN','BETA_BASQUIN'), - ENSEMBLE('A0','A1','A2','A3','SL'), - PRESENT_PRESENT('A0','E_REFE'), - ENSEMBLE('D0','TAU0'),), - WOHLER =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - A_BASQUIN =SIMP(statut='f',typ='R'), - BETA_BASQUIN =SIMP(statut='f',typ='R'), - A0 =SIMP(statut='f',typ='R'), - A1 =SIMP(statut='f',typ='R'), - A2 =SIMP(statut='f',typ='R'), - A3 =SIMP(statut='f',typ='R'), - SL =SIMP(statut='f',typ='R'), - MANSON_COFFIN =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - E_REFE =SIMP(statut='f',typ='R'), - D0 =SIMP(statut='f',typ='R'), - TAU0 =SIMP(statut='f',typ='R'), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("SIGM","EPSI",) ), - ), - DOMMA_LEMAITRE =FACT(statut='f', - S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - EPSP_SEUIL =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - EXP_S =SIMP(statut='f',typ='R',val_min=0.0E0,defaut=1.0), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - CISA_PLAN_CRIT =FACT(statut='f', - CRITERE =SIMP(statut='o',typ='TXM',into=("MATAKE_MODI_AC", - "DANG_VAN_MODI_AC", - "DANG_VAN_MODI_AV", - "MATAKE_MODI_AV", - "FATESOCI_MODI_AV", - ) ), - - b_critere_matake =BLOC(condition="CRITERE=='MATAKE_MODI_AC' or CRITERE=='MATAKE_MODI_AV'", - fr="Cisaillement plan critique critère de matake pour les cas amplitude constante et amplitude variable", - MATAKE_A =SIMP(statut='o',typ='R'), - MATAKE_B =SIMP(statut='o',typ='R'), - COEF_FLEX_TORS =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), - ), - - b_critere_dang_van =BLOC(condition="(CRITERE=='DANG_VAN_MODI_AC' or CRITERE=='DANG_VAN_MODI_AV')", - fr="Critère de Dang Van modifié pour les cas amplitude constante et amplitude variable", - D_VAN_A =SIMP(statut='o',typ='R'), - D_VAN_B =SIMP(statut='o',typ='R'), - COEF_CISA_TRAC =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), - ), - - b_critere_fate_soci =BLOC(condition="CRITERE=='FATESOCI_MODI_AV'", - fr="Critère de Fatemi et Socie, en élasticité ou élastoplasticité, pour le cas amplitude variable", - FATSOC_A =SIMP(statut='o',typ='R'), - COEF_CISA_TRAC =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0), - ), - ), -# -# autres comportements ... -# - WEIBULL =FACT(statut='f', - M =SIMP(statut='o',typ='R'), - VOLU_REFE =SIMP(statut='o',typ='R'), - SIGM_REFE =SIMP(statut='o',typ='R'), - SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ), - WEIBULL_FO =FACT(statut='f', - M =SIMP(statut='o',typ='R'), - VOLU_REFE =SIMP(statut='o',typ='R'), - SIGM_CNV =SIMP(statut='o',typ='R'), - SIGM_REFE =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6), - VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ), - ), - NON_LOCAL =FACT(statut='f', - 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='R',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"), - ), - ECRO_ISOT1 =FACT(statut='f', - regles=(UN_PARMI('H','H1'), - PRESENT_PRESENT('H1','H2','H3','H4'), - PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'), - ), - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),), - R_0 =SIMP(statut='o',typ='R'), - Q =SIMP(statut='o',typ='R'), - B =SIMP(statut='o',typ='R'), - H =SIMP(statut='f',typ='R'), - H1 =SIMP(statut='f',typ='R'), - H2 =SIMP(statut='f',typ='R'), - H3 =SIMP(statut='f',typ='R'), - H4 =SIMP(statut='f',typ='R'), - H5 =SIMP(statut='f',typ='R'), - H6 =SIMP(statut='f',typ='R'), - ), - ECRO_ISOT2 =FACT(statut='f', - regles=(UN_PARMI('H','H1'), - PRESENT_PRESENT('H1','H2','H3','H4'), - PRESENT_ABSENT('H','H1','H2','H3','H4','H5','H6'), - ), - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),), - R_0 =SIMP(statut='o',typ='R'), - Q1 =SIMP(statut='o',typ='R'), - B1 =SIMP(statut='o',typ='R'), - H =SIMP(statut='f',typ='R'), - H1 =SIMP(statut='f',typ='R'), - H2 =SIMP(statut='f',typ='R'), - H3 =SIMP(statut='f',typ='R'), - H4 =SIMP(statut='f',typ='R'), - H5 =SIMP(statut='f',typ='R'), - H6 =SIMP(statut='f',typ='R'), - Q2 =SIMP(statut='o',typ='R'), - B2 =SIMP(statut='o',typ='R'), - ), - ECRO_CINE1 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),), - D =SIMP(statut='o',typ='R'), - ), - ECRO_CINE2 =FACT(statut='f', - TYPE_PARA =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),), - D =SIMP(statut='o',typ='R'), - GM =SIMP(statut='o',typ='R'), - PM =SIMP(statut='o',typ='R'), - C =SIMP(statut='o',typ='R'), - ), - -#### MONOCRISTAL - - DRUCK_PRAGER_FO =FACT(statut='f', - ALPHA =SIMP(statut='o',typ=(fonction_sdaster,formule)), - SY =SIMP(statut='o',typ=(fonction_sdaster,formule)), - P_ULTM =SIMP(statut='o',typ=(fonction_sdaster,formule)), - ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")), - b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'", - fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire", - H =SIMP(statut='o',typ=(fonction_sdaster,formule)), - TYPE_DP =SIMP(statut='c',typ='R',defaut= 1.0,), - ), - b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'", - fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique", - SY_ULTM =SIMP(statut='o',typ=(fonction_sdaster,formule)), - TYPE_DP =SIMP(statut='c',typ='R',defaut= 2.0,), - ), - ), - - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene, - reentrant='n', - fr="Créer la structure globale à partir des sous-structures en sous-structuration dynamique", - UIinfo={"groupes":("Matrices/vecteurs",)}, - SOUS_STRUC =FACT(statut='o',max='**', - NOM =SIMP(statut='o',typ='TXM' ), - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - ANGL_NAUT =SIMP(statut='f',typ='R',max=3), - TRANS =SIMP(statut='f',typ='R',max=3), - ), - LIAISON =FACT(statut='o',max='**', - SOUS_STRUC_1 =SIMP(statut='o',typ='TXM' ), - INTERFACE_1 =SIMP(statut='o',typ='TXM' ), - SOUS_STRUC_2 =SIMP(statut='o',typ='TXM' ), - INTERFACE_2 =SIMP(statut='o',typ='TXM' ), - regles=(EXCLUS('GROUP_MA_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'), - EXCLUS('MAILLE_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),), - GROUP_MA_MAIT_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA_MAIT_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_MAIT_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("REDUIT","CLASSIQUE") ), - ), - VERIF =FACT(statut='f',max='**', -# dans la doc U stop_erreur est obligatoire - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op= 4,sd_prod=nappe_sdaster, - fr="Définir une fonction réelle de deux variables réelles", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('FONCTION','DEFI_FONCTION'), - EXCLUS('FONCTION','NOM_PARA_FONC',), - ENSEMBLE('NOM_PARA_FONC','DEFI_FONCTION'),), - NOM_PARA =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - PARA =SIMP(statut='o',typ='R',max='**'), - FONCTION =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - NOM_PARA_FONC =SIMP(statut='f',typ='TXM',into=("TEMP","INST","X","Y","Z","EPSI","FREQ", - "PULS","AMOR","EPAIS","SAT", "PGAZ","PCAP") ), - DEFI_FONCTION =FACT(statut='f',max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - VERIF =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op= 73,sd_prod=table_fonction, - fr="Définition d'un obstacle plan perpendiculaire à une structure filaire", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - TYPE =SIMP(statut='o',typ='TXM',defaut="CERCLE", - into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET", - "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT", - "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900", - "GUID_B_CARTE_900","GUID_C_CARTE_900", - "GUID_D_CARTE_900","GUID_E_CARTE_900", - "GUID_F_CARTE_900","GUID_A_CARTE_1300", - "GUID_B_CARTE_1300","GUID_C_CARTE_1300", - "GUID_D_CARTE_1300","GUID_E_CARTE_1300", - "GUID_F_CARTE_1300","GUID_A_CARSP_900", - "GUID_B_CARSP_900","GUID_C_CARSP_900", - "GUID_D_CARSP_900","GUID_E_CARSP_900", - "GUID_F_CARSP_900","GUID_A_CARSP_1300", - "GUID_B_CARSP_1300","GUID_C_CARSP_1300", - "GUID_D_CARSP_1300","GUID_E_CARSP_1300", - "GUID_F_CARSP_1300","GUID_A_GCONT_900", - "GUID_B_GCONT_900","GUID_C_GCONT_900", - "GUID_D_GCONT_900","GUID_E_GCONT_900", - "GUID_F_GCONT_900","GUID_A_GCONT_1300", - "GUID_B_GCONT_1300","GUID_C_GCONT_1300", - "GUID_D_GCONT_1300","GUID_E_GCONT_1300", - "GUID_F_GCONT_1300","GUID_A_GCOMB_900", - "GUID_B_GCOMB_900","GUID_C_GCOMB_900", - "GUID_D_GCOMB_900","GUID_E_GCOMB_900", - "GUID_F_GCOMB_900","GUID_A_GCOMB_1300", - "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300", - "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300", - "GUID_F_GCOMB_1300",) ), - VALE =SIMP(statut='f',typ='R',max='**'), - VERIF =SIMP(statut='f',typ='TXM',defaut="FERME"), -) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS -DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op= 2,sd_prod=para_sensi, - fr="Définition d'un paramètre de sensibilité", - ang="Definition of a sensitive parameter", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - NOM_RESU =SIMP(statut='c',typ='TXM',into=("TOUTRESU",),defaut="TOUTRESU", - fr="Nom du concept créé", - ang="Name of the concept"), - VALE =SIMP(statut='o',typ='R', - fr="Valeur du parametre", - ang="Value of the parameter"), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 30/08/2005 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -from Macro.defi_part_feti_ops import defi_part_feti_ops - -DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI",op=defi_part_feti_ops,sd_prod=sd_feti_sdaster, - reentrant='n',UIinfo={"groupe":("Maillage",)}, - fr="Creation partitionnement en sous-domaines pour FETI", - regles=(UN_PARMI('MAILLAGE','MODELE'),), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=modele_sdaster), - NB_PART =SIMP(statut='o',typ='I',val_min=2), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)),), - - # Methode de partitionnement - METHODE =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ), - - LOGICIEL =SIMP(statut='f',typ='TXM'), - - # Corrige les problemes possibles de non-connexite des sous-domaines - CORRECTION_CONNEX =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')), - - # Permet de grouper des mailles dans un meme sous-doamine - GROUPAGE =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,), - ), - # Permet d'appliquer des poids sur certaines mailles - POIDS_MAILLES =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,), - POIDS =SIMP(statut='f',typ='I',val_min=2), - ), - # Prefixe pour le nom des group_ma definissant les sous-domaines - NOM_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='SD' ), - - # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees) - TRAITER_BORDS =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ), - - # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords - # Note : le calcul FETI sera impossible - b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma", - NOM_GROUP_MA_BORD =SIMP(statut='f',typ='TXM'), - ), - - INFO =SIMP(statut='f',typ='I',into=(1, 2), defaut=1), -); -#& MODIF COMMANDE DATE 22/02/2005 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE ASSIRE A.ASSIRE - -DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_feti_sdaster, - fr="Creation partitionnement en sous-domaines pour FETI", - docu="U4.23.05",reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster) ), - NOM =SIMP(statut='f',typ='TXM',defaut='SD'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4) ), - DEFI =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma), - GROUP_MA_BORD =SIMP(statut='f',typ=grma), - ), - EXCIT =FACT(statut='f',max='**', - CHARGE =SIMP(statut='f',typ=(char_meca,char_cine_meca)), - ), -); -#& MODIF COMMANDE DATE 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 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster, - fr="Définition d'un spectre d'excitation turbulente", - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - regles=(UN_PARMI('SPEC_LONG_COR_1','SPEC_LONG_COR_2','SPEC_LONG_COR_3', - 'SPEC_LONG_COR_4','SPEC_CORR_CONV_1','SPEC_CORR_CONV_2', - 'SPEC_FONC_FORME','SPEC_EXCI_POINT'),), - SPEC_LONG_COR_1 =FACT(statut='f', - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VISC_CINE =SIMP(statut='o',typ='R' ), - ), - SPEC_LONG_COR_2 =FACT(statut='f', - regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.1 ), - PHI0 =SIMP(statut='f',typ='R',defaut= 1.5E-3 ), - BETA =SIMP(statut='f',typ='R',defaut= 2.7 ), - ), - SPEC_LONG_COR_3 =FACT(statut='f', - regles=(ENSEMBLE('PHI0_1','BETA_1','PHI0_2','BETA_2','FREQ_COUP'),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - FREQ_COUP =SIMP(statut='f',typ='R',defaut= 0.2 ), - PHI0_1 =SIMP(statut='f',typ='R',defaut= 5.E-3 ), - BETA_1 =SIMP(statut='f',typ='R',defaut= 0.5 ), - PHI0_2 =SIMP(statut='f',typ='R',defaut= 4.E-5 ), - BETA_2 =SIMP(statut='f',typ='R',defaut= 3.5 ), - ), - SPEC_LONG_COR_4 =FACT(statut='f', - regles=(ENSEMBLE('BETA','GAMMA'),), - LONG_COR =SIMP(statut='o',typ='R' ), - PROF_VITE_FLUI =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TAUX_VIDE =SIMP(statut='o',typ='R' ), - BETA =SIMP(statut='f',typ='R',defaut= 2. ), - GAMMA =SIMP(statut='f',typ='R',defaut= 4. ), - ), - SPEC_CORR_CONV_1=FACT(statut='f', - LONG_COR_1 =SIMP(statut='o',typ='R' ), - LONG_COR_2 =SIMP(statut='f',typ='R' ), - VITE_FLUI =SIMP(statut='o',typ='R' ), - RHO_FLUI =SIMP(statut='o',typ='R' ), - FREQ_COUP =SIMP(statut='f',typ='R' ), - K =SIMP(statut='f',typ='R',defaut= 5.8E-3 ), - D_FLUI =SIMP(statut='o',typ='R' ), - COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), - COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), - METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", - into=("AU_YANG","GENERALE","CORCOS") ), - ), - SPEC_CORR_CONV_2=FACT(statut='f', - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VITE_FLUI =SIMP(statut='o',typ='R' ), - FREQ_COUP =SIMP(statut='f',typ='R' ), - METHODE =SIMP(statut='f',typ='TXM',defaut="GENERALE", - into=("AU_YANG","GENERALE","CORCOS",) ), - COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ), - COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ), - ), - SPEC_FONC_FORME =FACT(statut='f', - regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'), - ENSEMBLE('INTE_SPEC','FONCTION'),), - INTE_SPEC =SIMP(statut='f',typ=table_fonction), - FONCTION =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'), - GRAPPE_1 =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ), - NOEUD =SIMP(statut='o',typ=no), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - ), - SPEC_EXCI_POINT =FACT(statut='f', - regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),), - INTE_SPEC =SIMP(statut='f',typ=table_fonction), - GRAPPE_2 =SIMP(statut='f',typ='TXM', - into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ), -# Quels sont les statuts des mots cles à l interieur des deux blocs qui suivent - b_inte_spec =BLOC(condition = "INTE_SPEC != None", - NATURE =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ), - ANGL =SIMP(statut='o',typ='R',max='**'), - NOEUD =SIMP(statut='o',typ=no,max='**'), - ), - b_grappe_2 =BLOC(condition = "GRAPPE_2 != None", - RHO_FLUI =SIMP(statut='o',typ='R' ), - NOEUD =SIMP(statut='o',typ=no), - ), - CARA_ELEM =SIMP(statut='o',typ=cara_elem ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette, - fr="Définit un maillage pour visualiser les résultats d'une sous-structuration dynamique", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - regles=(UN_PARMI('CYCLIQUE','MODELE_GENE','MAILLAGE'), - PRESENT_PRESENT('CYCLIQUE','SECTEUR'), - EXCLUS('SOUS_STRUC','SECTEUR'), - PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'), - PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),), - CYCLIQUE =FACT(statut='f',max='**', - regles=(UN_PARMI('MODE_CYCL','MAILLAGE'), - PRESENT_PRESENT('NB_SECTEUR','MAILLAGE'),), - MODE_CYCL =SIMP(statut='f',typ=mode_cycl ), - NB_SECTEUR =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), - ), - MODELE_GENE =SIMP(statut='f',typ=modele_gene ), - SQUELETTE =SIMP(statut='f',typ=squelette ), - RECO_GLOBAL =FACT(statut='f',max='**', - regles=(EXCLUS('TOUT','GROUP_NO_1'), - PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'), - PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'), - PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'), - PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),), - TOUT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - DIST_REFE =SIMP(statut='f',typ='R' ), - ), - NOM_GROUP_MA =FACT(statut='f',max='**', - NOM =SIMP(statut='o',typ='TXM' ), - SOUS_STRUC =SIMP(statut='o',typ='TXM' ), - GROUP_MA =SIMP(statut='o',typ=grma), - ), - EXCLUSIF =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - MAILLAGE =SIMP(statut='f',typ=maillage_sdaster ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - TRANS =SIMP(statut='f',typ='R',min=3,max=3), - ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), - SOUS_STRUC =FACT(statut='f',max='**', - NOM =SIMP(statut='f',typ='TXM' ), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - SECTEUR =FACT(statut='f',max='**', - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=table_sdaster,reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="Définir d'un diagramme de transformations en refroidissement continu (TRC) de référence d'un acier" - +" pour les calculs métallurgiques.", - HIST_EXP =FACT(statut='o',max='**', - VALE =SIMP(statut='o',typ='R',max='**'), - ), - TEMP_MS =FACT(statut='o',max='**', - SEUIL =SIMP(statut='o',typ='R'), - AKM =SIMP(statut='o',typ='R'), - BKM =SIMP(statut='o',typ='R'), - TPLM =SIMP(statut='o',typ='R'), - ), - GRAIN_AUST =FACT(statut='f',max='**', - DREF =SIMP(statut='f',typ='R'), - A =SIMP(statut='f',typ='R'), - ), -) ; -#& MODIF COMMANDE DATE 31/10/2006 AUTEUR A3BHHAE H.ANDRIAMBOLOLONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def depl_interne_prod(DEPL_GLOBAL,**args ): - if AsType(DEPL_GLOBAL) == cham_no_sdaster: return cham_no_sdaster - if AsType(DEPL_GLOBAL) == evol_elas : return evol_elas - if AsType(DEPL_GLOBAL) == dyna_trans : return dyna_trans - if AsType(DEPL_GLOBAL) == dyna_harmo : return dyna_harmo - if AsType(DEPL_GLOBAL) == mode_meca : return mode_meca - if AsType(DEPL_GLOBAL) == base_modale : return base_modale - raise AsException("type de concept resultat non prevu") - -DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=depl_interne_prod,reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Calculer le champ de déplacement à l'intérieur d'une sous-structure statique", - DEPL_GLOBAL =SIMP(statut='o',typ=(cham_no_sdaster,mode_meca,base_modale,evol_elas,dyna_trans,dyna_harmo),), - SUPER_MAILLE =SIMP(statut='o',typ=ma,), - NOM_CAS =SIMP(statut='f',typ='TXM',defaut=" "), -) ; -#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DETRUIRE=MACRO(nom="DETRUIRE",op=-7, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Détruit des concepts utilisateurs dans la base GLOBALE ou des objets JEVEUX", - op_init=ops.detruire, - regles=(UN_PARMI('CONCEPT','OBJET',),), - CONCEPT =FACT(statut='f',max='**', - regles=(DERIVABLE('NOM'),), - NOM =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter",max='**'), - ), - OBJET =FACT(statut='f',max='**', - CLASSE =SIMP(statut='f',typ='TXM',into=('G','V','L'),defaut='G'), - CHAINE =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - POSITION =SIMP(statut='f',typ='I' ,max='**'), - ), - ALARME =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI',), - INFO =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ), -); -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=table_fonction, - fr="Calcul de la réponse spectrale d'une structure linéaire sous une excitation connue par sa DSP", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - BASE_MODALE =FACT(statut='o', - regles=(UN_PARMI('NUME_ORDRE','BANDE'),), - MODE_MECA =SIMP(statut='o',typ=mode_meca ), - BANDE =SIMP(statut='f',typ='R',validators=NoRepeat(),max=2), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - b_bande =BLOC(condition = "BANDE != None", - AMOR_UNIF =SIMP(statut='o',typ='R' ), - ), - b_nume_ordre =BLOC(condition = "NUME_ORDRE != None", - AMOR_REDUIT =SIMP(statut='o',typ='R',max='**'), - ), - ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), -# MODE_STAT devrait etre dans EXCIT car est utile et obligatoire que si NOM_CMP=depl_r, on pourrait -# ainsi rajouter un bloc du genre b_mod_stat= BLOC(condition = "(GRANDEUR == None) or (GRANDEUR == 'DEPL_R')", - EXCIT =FACT(statut='o', - INTE_SPEC =SIMP(statut='o',typ=table_fonction), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ), - MODAL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - b_modal_non = BLOC(condition = "(MODAL == None) or (MODAL == 'NON')", - regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'),), - NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**'), - NOEUD_I =SIMP(statut='f',typ=no,max='**'), - b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None", - regles=(EXCLUS('CHAM_NO','NOEUD'),), -# on devrait rajouter EXCLUS('GRANDEUR','CHAM_NO') pour eviter ambiguite car CHAM_NO => GRANDEUR='EFFO' -# cela impliquerait d'enlever la valeur par defaut a GRANDEUR - NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'), - CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), - NOEUD =SIMP(statut='f',typ=no,max='**'), - b_noeud =BLOC(condition = "NOEUD != None", - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - ), - GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", - into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), -# que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), - ), - b_noeud_i =BLOC(condition = "NOEUD_I != None", - NOEUD_J =SIMP(statut='o',typ=no,max='**'), - NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**'), - NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**'), - NOEUD =SIMP(statut='o',typ=no,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), -# ne serait-il pas bien que NOEUD et NOM_CMP soient facultatifs, car l'information peut etre contenue dans -# NOEUD_I, NOM_CMP_I ... => modif. du Fortran - GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", - into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), -# que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP_I - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), - ), - ), - b_modal_oui = BLOC(condition = "(MODAL == 'OUI')", -# dans ce cas, y-a-t-il vraiment la possibilite d'une matrice interspectrale avec plusieurs termes - NUME_ORDRE_I =SIMP(statut='o',typ='I',max='**'), - NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**'), - GRANDEUR =SIMP(statut='f',typ='TXM',defaut="DEPL_R", - into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")), - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ), -# dans le cas MODAL=OUI, GRANDEUR peut-il etre different de EFFO et doit il etre impose a EFFO On devrait -# pouvoir supprimer GRANDEUR et DERIVATION ici - ), - - ), - REPONSE =FACT(statut='f', - regles=( ENSEMBLE('FREQ_MIN','FREQ_MAX'),), - DERIVATION =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ,) ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), - FREQ_MIN =SIMP(statut='f',typ='R' ), - FREQ_MAX =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - b_defaut_freq =BLOC(condition = "FREQ_MIN == NONE", - FREQ_EXCIT =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ), - NB_POIN_MODE =SIMP(statut='f',typ='I',defaut= 50 ), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def dyna_line_harm_prod(MATR_RIGI,**args): - if (AsType(MATR_RIGI) == matr_asse_depl_r) : return dyna_harmo - elif (AsType(MATR_RIGI) == matr_asse_depl_c) : return dyna_harmo - elif (AsType(MATR_RIGI) == matr_asse_pres_c) : return acou_harmo - elif (AsType(MATR_RIGI) == matr_asse_gene_r) : return harm_gene - elif (AsType(MATR_RIGI) == matr_asse_gene_c) : return harm_gene - raise AsException("type de concept resultat non prevu") - -DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op= 60,sd_prod=dyna_line_harm_prod, - fr="Calcul de la réponse dynamique complexe d'un système à une excitation harmonique", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'), - PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'), - PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'), - UN_PARMI('FREQ','LIST_FREQ'), - CONCEPT_SENSIBLE('ENSEMBLE'),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ), - MATR_RIGI =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c - ,matr_asse_gene_r,matr_asse_gene_c ) ), - MATR_AMOR =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), - MATR_IMPE_PHI =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ), - b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : RESULTAT obligatoire", - RESULTAT =SIMP(statut='o',typ=(dyna_harmo,harm_gene)), - ), - EXCIT =FACT(statut='o',max='**', - regles=(UN_PARMI('VECT_ASSE','CHARGE'), - UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'), - ), - VECT_ASSE =SIMP(statut='f',typ=(cham_no_sdaster,vect_asse_gene) ), - CHARGE =SIMP(statut='f',typ=char_meca ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - FONC_MULT_C =SIMP(statut='f',typ=fonction_c ), - COEF_MULT_C =SIMP(statut='f',typ='C' ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_MULT =SIMP(statut='f',typ='R' ), - PHAS_DEG =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PUIS_PULS =SIMP(statut='f',typ='I',defaut= 0 ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), -) ; -# Rajouter test icompatibilite vect_asse et sensibilite -# Peut-on aussi rajouter ici le test d incompatibilite charge complexe - derivation -# presents dans le Fortran -#& MODIF COMMANDE DATE 12/06/2006 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. -# ====================================================================== -DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op= 48,sd_prod=dyna_trans, - fr="Calcul de la réponse dynamique transitoire à une excitation temporelle quelconque", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, -# regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),), - regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'), - CONCEPT_SENSIBLE('ENSEMBLE'),), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - MATR_MASS =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_RIGI =SIMP(statut='o',typ=matr_asse_depl_r ), - MATR_AMOR =SIMP(statut='f',typ=matr_asse_depl_r ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ), - NEWMARK =FACT(statut='f', - ALPHA =SIMP(statut='f',typ='R',defaut= 0.25 ), - DELTA =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - WILSON =FACT(statut='f', - THETA =SIMP(statut='f',typ='R',defaut= 1.4 ), - ), - DIFF_CENTRE =FACT(statut='f', - ), - ADAPT =FACT(statut='f', - ), - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'), - PRESENT_ABSENT('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'),), - DYNA_TRANS =SIMP(statut='f',typ=dyna_trans ), - b_dyna_trans =BLOC(condition = "DYNA_TRANS != None", - regles=(EXCLUS('NUME_INIT','INST_INIT' ),), - NUME_INIT =SIMP(statut='f',typ='I' ), - INST_INIT =SIMP(statut='f',typ='R' ), - b_inst_init =BLOC(condition = "INST_INIT != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), - DEPL_INIT =SIMP(statut='f',typ=cham_no_sdaster), - VITE_INIT =SIMP(statut='f',typ=cham_no_sdaster), - ACCE_INIT =SIMP(statut='f',typ=cham_no_sdaster), - ), - EXCIT =FACT(statut='f',max='**', - regles=(UN_PARMI('CHARGE','VECT_ASSE'), - EXCLUS('CHARGE','COEF_MULT'), - EXCLUS('FONC_MULT','COEF_MULT'), - EXCLUS('ACCE','COEF_MULT'), - PRESENT_ABSENT('ACCE','FONC_MULT'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), - ), - VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), - CHARGE =SIMP(statut='f',typ=char_meca ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_MULT =SIMP(statut='f',typ='R' ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MULT_APPUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - AMOR_MODAL =FACT(statut='f', - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ), - REAC_VITE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), - - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT'", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")), - SCALING =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=80,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6,), - ), - ), - - INCREMENT =FACT(statut='o',max='**', - regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - FONC_INST =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - PAS =SIMP(statut='f',typ='R' ), - b_pas =BLOC(condition = "PAS != None", - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - b_list_fonc =BLOC(condition = "LIST_INST != None or FONC_INST != None", - regles=(EXCLUS('INST_FIN','NUME_FIN'),), - NUME_FIN =SIMP(statut='f',typ='I' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), - COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), - COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.33334 ), - PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), - NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), - PAS_CALCUL =SIMP(statut='f',typ='I',defaut= 1 ), - ), - ARCHIVAGE =FACT(statut='f', - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE") ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramétres de sensibilité.", - ang="List of sensitivity parameters", - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 06/06/2007 AUTEUR SALMONA 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',), - CONCEPT_SENSIBLE('ENSEMBLE'),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - 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', - 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") ), - ), - COMP_INCR =C_COMP_INCR(), - COMP_ELAS =FACT(statut='f',max='**', - RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", - "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), -#------------------------------------------------------------------- - b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", - ETAT_INIT =FACT(statut='o', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','ACCE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_sdaster), - VITE =SIMP(statut='f',typ=cham_no_sdaster), - ACCE =SIMP(statut='f',typ=cham_no_sdaster), - SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), - VARI =SIMP(statut='f',typ=cham_elem), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ),), - b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif", - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','ACCE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_sdaster), - VITE =SIMP(statut='f',typ=cham_no_sdaster), - ACCE =SIMP(statut='f',typ=cham_no_sdaster), - SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), - VARI =SIMP(statut='f',typ=cham_elem), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ),), -#------------------------------------------------------------------- - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - SUBD_METHODE =SIMP( statut='f',typ='TXM', - into =("AUCUNE","UNIFORME","EXTRAPOLE"), - defaut="AUCUNE", - fr="Méthode de subdivision des pas de temps en cas de non-convergence" - ), - b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0, - fr="Coefficient multiplicateur de la 1ère subdivision"), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - ), - b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_OPTION =SIMP(statut='f',typ='TXM', - into =("IGNORE_PREMIERES","GARDE_DERNIERES",), - defaut="IGNORE_PREMIERES", - fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"), - SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0, - fr="Les n premières itérations sont ignorées pour l'extrapolation"), - SUBD_ITER_FIN =SIMP(statut='c',typ='I',defaut=8,val_min=3, - fr="Seules les n dernières itérations sont prises pour l'extrapolation"), - SUBD_PAS =SIMP(statut='c',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps en cas divergence"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20, - fr="% itération autorisée en plus"), - ), - # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',), - NOM_CMP =SIMP(statut='f',typ='TXM',), - VALE =SIMP(statut='f',typ='R'), - ), -#------------------------------------------------------------------- - 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.3 ), - MODI_EQUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - 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","MUMPS") ), - b_mult_front =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")), - SCALING =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=80,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - ), - b_gcpc =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -#------------------------------------------------------------------- - RECH_LINEAIRE =FACT(statut='f', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ITER_LINE_CRIT =SIMP(statut='f',typ='I',defaut= 20), - PAS_MINI_CRIT =SIMP(statut='f',typ='R',defaut=0.0E+0), - RHO_MIN =SIMP(statut='f',typ='R',defaut=1.0E-2), - RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), - RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2,val_min=0.), - ), - PILOTAGE =FACT(statut='f', - regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ETA_PILO_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_MIN =SIMP(statut='f',typ='R'), - ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), - PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**' ), - ), - CONVERGENCE =FACT(statut='d', - regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), - b_refe_rela =BLOC(condition = "RESI_REFE_RELA != None", - regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE', - 'FLUX_HYD1_REFE','FLUX_HYD2_REFE'),), - 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','GROUP_NO','GROUP_MA','VALE_MIN','VALE_MAX'), - 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='**'), - 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='**'), - POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - VALE_MAX =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ), - VALE_MIN =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ), - ), - - 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='**'), - ), -#------------------------------------------------------------------- - CRIT_FLAMB =FACT(statut='f',min=1,max=1, - NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3), - CHAR_CRIT =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10.), - fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"), - ), - MODE_VIBR =FACT(statut='f',min=1,max=1, - MATR_RIGI =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE") ), - NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3), - ), -#------------------------------------------------------------------- - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité", - ang="List of sensitivity parameters"), -#------------------------------------------------------------------- - SOLV_NON_LOCAL =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")), - SCALING =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=80,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LAGR_NON_LOCAL =FACT(statut='f', - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - R =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), -#------------------------------------------------------------------- - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=table_fonction, - fr="Calcul de la réponse par recombinaison modale d'une structure linéaire pour une excitation aléatoire", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - BASE_ELAS_FLUI =SIMP(statut='o',typ=melasflu_sdaster ), - EXCIT =FACT(statut='o', - INTE_SPEC_GENE =SIMP(statut='o',typ=table_fonction), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 06/06/2007 AUTEUR SALMONA 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',),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',into=("OUI","NON",) ), - EXCIT =FACT(statut='o',max='**', - regles=(PRESENT_ABSENT('FONC_MULT','ACCE'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'), - ), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), - CHARGE =SIMP(statut='o',typ=char_meca), - 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='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',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',max='**', - 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_HYPER")), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), -#------------------------------------------------------------------- - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','VITE'), - EXCLUS('EVOL_NOLI','ACCE'), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_sdaster), - VITE =SIMP(statut='f',typ=cham_no_sdaster), - ACCE =SIMP(statut='f',typ=cham_no_sdaster), - SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), - VARI =SIMP(statut='f',typ=cham_elem), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ), -#------------------------------------------------------------------- - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - SUBD_METHODE =SIMP( statut='f',typ='TXM', - into =("AUCUNE","UNIFORME","EXTRAPOLE"), - defaut="AUCUNE", - fr="Méthode de subdivision des pas de temps en cas de non-convergence" - ), - b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0, - fr="Coefficient multiplicateur de la 1ère subdivision"), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - ), - b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_OPTION =SIMP(statut='f',typ='TXM', - into =("IGNORE_PREMIERES","GARDE_DERNIERES",), - defaut="IGNORE_PREMIERES", - fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"), - SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0, - fr="Les n premières itérations sont ignorées pour l'extrapolation"), - SUBD_ITER_FIN =SIMP(statut='c',typ='I',defaut=8,val_min=3, - fr="Seules les n dernières itérations sont prises pour l'extrapolation"), - SUBD_PAS =SIMP(statut='c',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps en cas divergence"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20, - fr="% itération autorisée en plus"), - ), - # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',), - NOM_CMP =SIMP(statut='f',typ='TXM',), - VALE =SIMP(statut='f',typ='R'), - ), -#------------------------------------------------------------------- - 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") ), - 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'),), - b_refe_rela =BLOC(condition = "RESI_REFE_RELA != None", - regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE', - 'FLUX_HYD1_REFE','FLUX_HYD2_REFE'),), - SIGM_REFE =SIMP(statut='f',typ='R'), - EPSI_REFE =SIMP(statut='f',typ='R'), - FLUX_THER_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD1_REFE =SIMP(statut='f',typ='R'), - FLUX_HYD2_REFE =SIMP(statut='f',typ='R'), - ), - - - RESI_REFE_RELA =SIMP(statut='f',typ='R'), - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - 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 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene, - fr="Calcul de la réponse dynamique transitoire d'un système amorti ou non en coordonées généralisées" - +" par superposition modale ou par sous structuration", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'), - PRESENT_ABSENT('MODE_STAT','MODE_CORR'),), - METHODE =SIMP(statut='f',typ='TXM',defaut="EULER", - into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ), - MASS_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), - RIGI_GENE =SIMP(statut='o',typ=matr_asse_gene_r ), - AMOR_GENE =SIMP(statut='f',typ=matr_asse_gene_r ), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc) ), - MODE_CORR =SIMP(statut='f',typ=(mult_elas,mode_stat_acce) ,), - - ETAT_INIT =FACT(statut='f', - regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'), - EXCLUS('RESU_GENE','VITE_INIT_GENE'),), - RESU_GENE =SIMP(statut='f',typ=tran_gene ), - b_resu_gene =BLOC(condition = "RESU_GENE != None", - INST_INIT =SIMP(statut='f',typ='R' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - ), - INCREMENT =FACT(statut='o',max='**', - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='o',typ='R' ), - PAS =SIMP(statut='f',typ='R' ), - VERI_PAS =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - VITE_MIN =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ), - COEF_MULT_PAS =SIMP(statut='f',typ='R',defaut= 1.1 ), - COEF_DIVI_PAS =SIMP(statut='f',typ='R',defaut= 1.3333334 ), - PAS_LIMI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6 ), - NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ), - NMAX_ITER_PAS =SIMP(statut='f',typ='I',defaut= 16 ), - ), - ARCHIVAGE =FACT(statut='f', - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - ), - - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 20 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ), - - EXCIT =FACT(statut='f',max='**', - regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'), - PRESENT_PRESENT('ACCE','VITE','DEPL'), - PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'), - PRESENT_ABSENT('NUME_ORDRE','VECT_GENE','COEF_MULT'), - EXCLUS('MULT_APPUI','CORR_STAT'), - PRESENT_ABSENT('MULT_APPUI','COEF_MULT'), - PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),), - VECT_GENE =SIMP(statut='f',typ=vect_asse_gene ), - NUME_ORDRE =SIMP(statut='f',typ='I' ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_MULT =SIMP(statut='f',typ='R' ), - ACCE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - VITE =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - DEPL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - b_loca =BLOC(condition= "DIRECTION != None", - regles=(EXCLUS('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - D_FONC_DT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - D_FONC_DT2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - CHOC =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD_1','GROUP_NO_1' ), - EXCLUS('NOEUD_2','GROUP_NO_2'), - PRESENT_ABSENT('GROUP_MA','NOEUD_2','GROUP_NO_2'), - PRESENT_ABSENT('MAILLE','NOEUD_2','GROUP_NO_2'),), - INTITULE =SIMP(statut='f',typ='TXM' ), - GROUP_MA =SIMP(statut='f',typ=grma,max='**'), - MAILLE =SIMP(statut='f',typ=ma,max='**'), - NOEUD_1 =SIMP(statut='f',typ=no), - NOEUD_2 =SIMP(statut='f',typ=no), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - OBSTACLE =SIMP(statut='o',typ=table_fonction), - ORIG_OBST =SIMP(statut='f',typ='R',min=3,max=3), - NORM_OBST =SIMP(statut='o',typ='R',min=3,max=3), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - JEU =SIMP(statut='f',typ='R',defaut= 1. ), - DIST_1 =SIMP(statut='f',typ='R',val_min=0.E+0 ), - DIST_2 =SIMP(statut='f',typ='R',val_min=0.E+0 ), - SOUS_STRUC_1 =SIMP(statut='f',typ='TXM' ), - SOUS_STRUC_2 =SIMP(statut='f',typ='TXM' ), - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), - RIGI_NOR =SIMP(statut='f',typ='R' ), - AMOR_NOR =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - AMOR_TAN =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - COULOMB =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - - LAME_FLUIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - b_lame =BLOC(condition="LAME_FLUIDE=='OUI'", - ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BETA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - CHI =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DELTA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - ), - VERI_CHOC =FACT(statut='f',max='**', - STOP_CRITERE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - FLAMBAGE =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), - EXCLUS('NOEUD_2','GROUP_NO_2'),), - NOEUD_1 =SIMP(statut='f',typ=no), - NOEUD_2 =SIMP(statut='f',typ=no), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - OBSTACLE =SIMP(statut='o',typ=table_fonction), - ORIG_OBST =SIMP(statut='f',typ='R',max='**'), - NORM_OBST =SIMP(statut='o',typ='R',max='**'), - ANGL_VRIL =SIMP(statut='f',typ='R' ), - JEU =SIMP(statut='f',typ='R',defaut= 1. ), - DIST_1 =SIMP(statut='f',typ='R' ), - DIST_2 =SIMP(statut='f',typ='R' ), - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL"), - RIGI_NOR =SIMP(statut='f',typ='R' ), - FNOR_CRIT =SIMP(statut='f',typ='R' ), - FNOR_POST_FL =SIMP(statut='f',typ='R' ), - RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ), - ), - ANTI_SISM =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'), - UN_PARMI('NOEUD_2','GROUP_NO_2'),), - NOEUD_1 =SIMP(statut='f',typ=no), - NOEUD_2 =SIMP(statut='f',typ=no), - GROUP_NO_1 =SIMP(statut='f',typ=grno), - GROUP_NO_2 =SIMP(statut='f',typ=grno), - RIGI_K1 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RIGI_K2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - SEUIL_FX =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - C =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - PUIS_ALPHA =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DX_MAX =SIMP(statut='f',typ='R',defaut= 1. ), - ), - RELA_EFFO_DEPL =FACT(statut='f',max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - RELA_TRANSIS =FACT(statut='f',max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - RELA_EFFO_VITE =FACT(statut='f',max='**', - NOEUD =SIMP(statut='o',typ=no), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - RELATION =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - b_itmi =BLOC(condition = "METHODE=='ITMI'", - regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - ETAT_STAT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - PREC_DUREE =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - CHOC_FLUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - NB_MODE =SIMP(statut='f',typ='I' ), - NB_MODE_FLUI =SIMP(statut='f',typ='I' ), - NB_MODE_DIAG =SIMP(statut='f',typ='I' ), - TS_REG_ETAB =SIMP(statut='f',typ='R' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - IMPRESSION =FACT(statut='f',max='**', - regles=(EXCLUS('TOUT','NIVEAU'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NIVEAU =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ), - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - ) ; -#& MODIF COMMANDE DATE 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 29/08/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.exec_logiciel_ops import exec_logiciel_ops -def exec_logiciel_prod(self, MAILLAGE, **args): - if MAILLAGE != None: - mcf = MAILLAGE[0] - self.type_sdprod(mcf['MAILLAGE'], maillage_sdaster) - return None - -EXEC_LOGICIEL = MACRO(nom="EXEC_LOGICIEL",op=exec_logiciel_ops, sd_prod=exec_logiciel_prod, - fr="Exécute un logiciel ou une commande système depuis Aster", - UIinfo={"groupes":("Outils métier",)}, - - regles = (AU_MOINS_UN('LOGICIEL', 'MAILLAGE'),), - - LOGICIEL = SIMP(statut='f', typ='TXM'), - ARGUMENT = SIMP(statut='f', max='**', typ='TXM'), - - MAILLAGE = FACT(statut='f', - FORMAT = SIMP(statut='o', typ='TXM', into=("GMSH", "GIBI", "SALOME")), - UNITE_GEOM = SIMP(statut='f', typ='I', val_min=10, val_max=90, defaut=16, - fr="Unité logique définissant le fichier (fort.N) contenant les données géométriques (datg)"), - UNITE = SIMP(statut='f', typ='I', val_min=10, val_max=90, defaut=19, - fr="Unité logique définissant le fichier (fort.N) produit par le mailleur"), - MAILLAGE = SIMP(statut='o', typ=CO), - ), - - CODE_RETOUR_MAXI = SIMP(statut='f', typ='I', defaut=0, val_min=-1, - fr="Valeur maximale du code retour toléré (-1 pour l'ignorer)"), - - INFO = SIMP(statut='f', typ='I', defaut=2, into=(1,2),), -) -#& MODIF COMMANDE DATE 14/10/2005 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def extr_mode_prod(FILTRE_MODE,**args): - vale=FILTRE_MODE[0]['MODE'] - if AsType(vale) == mode_meca : return mode_meca - if AsType(vale) == mode_meca_c : return mode_meca_c - if AsType(vale) == mode_gene : return mode_gene - raise AsException("type de concept resultat non prevu") - -EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod, - reentrant='n',fr="Extraire séléctivement des modes des structures de données modales", - UIinfo={"groupes":("Résolution",)}, - FILTRE_MODE =FACT(statut='o',max='**', - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),), - MODE =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_gene ) ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE_EXCLU =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - FREQ_MIN =SIMP(statut='f',typ='R' ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',into=("MASS_EFFE_UN","MASS_GENE") ), - b_freq_min =BLOC(condition = "FREQ_MIN != None", - FREQ_MAX =SIMP(statut='o',typ='R' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - b_crit_extr =BLOC(condition = "CRIT_EXTR != None", - regles=(AU_MOINS_UN('SEUIL','SEUIL_X','SEUIL_Y','SEUIL_Z'),), - SEUIL =SIMP(statut='f',typ='R'), - SEUIL_X =SIMP(statut='f',typ='R'), - SEUIL_Y =SIMP(statut='f',typ='R'), - SEUIL_Z =SIMP(statut='f',typ='R'), - ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - IMPRESSION =FACT(statut='f', - CUMUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ), - ), -) ; -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def extr_resu_prod(RESULTAT,**args): - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == evol_ther : return evol_ther - if AsType(RESULTAT) == dyna_trans : return dyna_trans - if AsType(RESULTAT) == dyna_harmo : return dyna_harmo - if AsType(RESULTAT) == acou_harmo : return acou_harmo - if AsType(RESULTAT) == mode_meca : return mode_meca - if AsType(RESULTAT) == mode_acou : return mode_acou - if AsType(RESULTAT) == mode_stat_depl : return mode_stat_depl - if AsType(RESULTAT) == mode_stat_acce : return mode_stat_acce - if AsType(RESULTAT) == mode_stat_forc : return mode_stat_forc - if AsType(RESULTAT) == mult_elas : return mult_elas - if AsType(RESULTAT) == fourier_elas : return fourier_elas - raise AsException("type de concept resultat non prevu") - -EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Extraire des champs au sein d'une SD Résultat", - regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(), - DERIVABLE('RESULTAT'),), - RESULTAT =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca, - mode_acou,mode_stat_depl,mode_stat_acce,mode_stat_forc,evol_ther,evol_noli, - mult_elas,fourier_elas,fourier_ther ) ), - - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - - ARCHIVAGE =FACT(statut='f', - regles=( UN_PARMI('NUME_ORDRE', 'INST', 'FREQ', 'NUME_MODE', - 'NOEUD_CMP', 'LIST_INST', 'LIST_FREQ', 'LIST_ORDRE', - 'NOM_CAS', 'LIST_ARCH', 'PAS_ARCH' ), - EXCLUS( 'CHAM_EXCLU','NOM_CHAM' ), ), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()), - PRECISION =SIMP(statut='f',typ='R',defaut=1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),defaut="RELATIF"), - LIST_ARCH =SIMP(statut='f',typ=listis_sdaster), - PAS_ARCH =SIMP(statut='f',typ='I'), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM'), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def extr_table_prod(TYPE_RESU,**args): - if TYPE_RESU == "MATR_ASSE_GENE_R" : return matr_asse_gene_r - raise AsException("type de concept resultat non prevu") - -EXTR_TABLE=OPER(nom="EXTR_TABLE",op=173,sd_prod=extr_table_prod,reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Extraire d'une table la matrice de masse généralisée assemblée", - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MATR_ASSE_GENE_R",) ), - - TABLE =SIMP(statut='o',typ=table_sdaster), - - NOM_PARA =SIMP(statut='o',typ='TXM'), - - FILTRE =FACT(statut='f',min=1,max='**', - NOM_PARA =SIMP(statut='o',typ='TXM'), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_K =SIMP(statut='f',typ='TXM'),), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def fact_grad_prod(MATR_ASSE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r - if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r - if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r - raise AsException("type de concept resultat non prevu") - -FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod, - UIinfo={"groupes":("Résolution",)}, - fr="Construire une matrice de préconditionnement pour une résolution par gradient conjugué", - reentrant='n', - MATR_ASSE =SIMP(statut='o', - typ=(matr_asse_depl_r,matr_asse_temp_r, - matr_asse_pres_r) ), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="LDLT_INC",into=("LDLT_INC",) ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -def fact_ldlt_prod(MATR_ASSE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r - if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c - if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r - if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c - if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r - if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c - raise AsException("type de concept resultat non prevu") - -FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod, - fr="Factoriser une matrice assemblée en un produit de deux matrices triangulaires", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'), - EXCLUS('BLOC_FIN','DDL_FIN'),), - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r, - matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - NPREC =SIMP(statut='f',typ='I',defaut=8,val_min=0,), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ), - BLOC_DEBUT =SIMP(statut='f',typ='I',val_min=1,), - DDL_DEBUT =SIMP(statut='f',typ='I',val_min=1,), - BLOC_FIN =SIMP(statut='f',typ='I',val_min=1,), - DDL_FIN =SIMP(statut='f',typ='I',val_min=1,), -# - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - -# mots clés pour solveur MUMPS : - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=20,), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude, fin du travail engagé par une des commandes DEBUT ou POURSUITE", - UIinfo={"groupes":("Gestion du travail",)}, - FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', - typ='TXM',defaut="NON",into=("OUI","NON",) ), - RETASSAGE =SIMP(fr="provoque le retassage de la base GLOBALE", - statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - PERFORMANCE =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ", - statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - INFO_RESU =SIMP(fr="provoque l'impression des informations sur les structures de données", - statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - UNITE =SIMP(statut='f',typ='I',defaut=6), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction_sdaster, - reentrant='n',fr="Crée une fonction constante paramètrée par l'abscisse curviligne", - UIinfo={"groupes":("Fonction",)}, - TYPE_FLUI_STRU =SIMP(statut='o',typ=(type_flui_stru) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def form_pyth_ops(self,d): - import types,string - NOM_PARA=self.etape['NOM_PARA'] - VALE =self.etape['VALE'] - if type(NOM_PARA) not in (types.ListType,types.TupleType) : NOM_PARA=[NOM_PARA,] - if self.sd==None : return - texte=string.join(VALE.splitlines()) - - self.sd.setFormule(NOM_PARA,string.strip(texte)) - -FORMULE=FORM(nom="FORMULE",op_init=form_pyth_ops,op=-5, - sd_prod=formule,UIinfo={"groupes":("Fonction",)}, - fr="Définit une formule réelle à partir de son expression mathématique", - VALE =SIMP(statut='f',typ='TXM'), - NOM_PARA =SIMP(statut='o',typ='TXM',max='**'), -); -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CAMBIER S.CAMBIER -GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_fonction, - fr="Génération de la fonction temporelle à partir d une matrice interspectrale", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - INTE_SPEC =SIMP(statut='o',typ=table_fonction), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ), - b_interpol_oui =BLOC(condition = "INTERPOL == 'OUI' ",fr="Parametres cas interpolation autorisee", - DUREE_TIRAGE =SIMP(statut='f',typ='R' ), - FREQ_INIT =SIMP(statut='f',typ='R' ), - FREQ_FIN =SIMP(statut='f',typ='R' ), - ), - NB_POIN =SIMP(statut='f',typ='I'), - NB_TIRAGE =SIMP(statut='f',typ='I',defaut= 1 ), - INIT_ALEA =SIMP(statut='f',typ='I'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 11/07/2005 AUTEUR CAMBIER S.CAMBIER -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CAMBIER S.CAMBIER -def gene_matr_alea_prod(MATR_MOYEN,**args ): - if (AsType(MATR_MOYEN) == matr_asse_gene_r ) : return matr_asse_gene_r - if (AsType(MATR_MOYEN) == macr_elem_dyna) : return macr_elem_dyna - raise AsException("type de concept resultat non prevu") - -GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op= 27, -#sd_prod=matr_asse_gene_r, -sd_prod=gene_matr_alea_prod, - fr="Générer une réalisation d'une matrice aléatoire réelle sym. déf. positive ou d'un macro élément dynamique", - reentrant='n', - UIinfo={"groupes":("Matrice",)}, - MATR_MOYEN = SIMP(statut='o', typ=(matr_asse_gene_r,macr_elem_dyna)), - -# cas matrice generalisee - b_matr =BLOC( condition = "AsType(MATR_MOYEN) in (matr_asse_gene_r,)", - COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 , - fr="coefficient de variation de la matrice a generer" ), - ), -# cas macr_elem_dyna - b_macr =BLOC( condition = "AsType(MATR_MOYEN) in (macr_elem_dyna,)", - fr="cas macr_elem_dyna (sous-structuratio)", - COEF_VAR_RIGI = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 , - fr="coefficient de variation de la matrice de raideur" ), - COEF_VAR_MASS = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 , - fr="coefficient de variation de la matrice de masse" ), - COEF_VAR_AMOR = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 , - fr="coefficient de variation de la matrice d'amortissement" ),), - - INIT_ALEA =SIMP(statut='f',typ='I'), -) ; - -#& MODIF COMMANDE DATE 28/02/2006 AUTEUR VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE CAMBIER S.CAMBIER -from Macro.gene_vari_alea_ops import gene_vari_alea_ops,gene_vari_alea_init -GENE_VARI_ALEA=MACRO(nom="GENE_VARI_ALEA", - op_init=gene_vari_alea_init,op=gene_vari_alea_ops, - sd_prod=reel,reentrant='n', - fr="Générer une réalisation d'une variable aléatoire réelle de loi de probabilité donnée (Gamma ou Exponentielle)", - UIinfo={"groupes":("Fonction",)}, - TYPE = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"), - b_gamma =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma", - VALE_MOY = SIMP(statut='f', typ='R', defaut=1.), - BORNE_INF = SIMP(statut='f', typ='R', defaut=0.), - COEF_VAR = SIMP(statut='f', typ='R', defaut=0.1), - ), - b_expo =BLOC(condition = "TYPE == 'EXPONENTIELLE' ",fr="Parametres loi exponentielle", - VALE_MOY = SIMP(statut='f', typ='R', defaut=0.), - BORNE_INF = SIMP(statut='f', typ='R', defaut=-1.), - ), - b_expo_tronq =BLOC(condition = "TYPE == 'EXP_TRONQUEE' ",fr="Parametres loi exponentielle tronquee", - VALE_MOY = SIMP(statut='f', typ='R', defaut=0.), - BORNE_INF = SIMP(statut='f', typ='R', defaut=-1.), - BORNE_SUP = SIMP(statut='f', typ='R', defaut=1.), - 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 -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 10/05/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -IMPR_CO=PROC(nom="IMPR_CO",op=17, - UIinfo={"groupes":("Impression",)}, - fr="Imprimer tous les objets JEVEUX qui constituent un concept utilisateur existant (pour les développeurs)", - regles=(UN_PARMI('CONCEPT','CHAINE','TOUT' ),), - - UNITE =SIMP(statut='f',typ='I',defaut=8), - NIVEAU =SIMP(statut='f',typ='I',defaut=2,into=(-1,0,1,2) ), - ATTRIBUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ), - CONTENU =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ), - BASE =SIMP(statut='f',typ='TXM',defaut="G",into=(" ","G","V","L") ), - CONCEPT =FACT(statut='f',max='**', - regles=(DERIVABLE('NOM'),), - NOM =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter",max='**'),), - CHAINE =SIMP(statut='f',typ='TXM'), - POSITION =SIMP(statut='f',typ='I',defaut=1), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), -) ; -#& MODIF COMMANDE DATE 09/05/2007 AUTEUR SALMONA 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. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -from Macro.impr_fonction_ops import impr_fonction_ops - -IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None, - fr="Imprime le contenu d'objets de type fonction ou liste de réels dans un fichier destiné à un traceur de courbe", - UIinfo={"groupes":("Fonction",)}, - FORMAT =SIMP(statut='o',typ='TXM',position='global',defaut='TABLEAU', - into=("TABLEAU","AGRAF","XMGRACE",),), - b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'", - fr="Mots-clés propres à XMGRACE", - PILOTE =SIMP(statut='f',typ='TXM',defaut='', - into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'), - fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"), - UNITE =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - ), - b_agraf = BLOC(condition = "FORMAT == 'AGRAF'", - fr="Mots-clés propres à AGRAF", - UNITE =SIMP(statut='o',typ='I',defaut=25, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - UNITE_DIGR =SIMP(statut='o',typ='I',defaut=26, - fr="Unité logique définissant le fichier dans lequel on écrit les directives Agraf"), - ), - # unite pour TABLEAU dans le bloc de mise en forme spécifique - - COURBE =FACT(statut='o',max='**',fr="Définition de la fonction à tracer", - regles=(UN_PARMI('FONCTION','LIST_RESU','FONC_X','ABSCISSE'),), - FONCTION =SIMP(statut='f',typ=(fonction_sdaster, formule, fonction_c, nappe_sdaster), - fr="Fonction réelle ou complexe", ), - LIST_RESU =SIMP(statut='f',typ=listr8_sdaster, - fr="Liste des ordonnees d'une fonction réelle définie par deux listes", ), - FONC_X =SIMP(statut='f',typ=(fonction_sdaster,formule), - fr="Fonction abscisses d'une fonction paramétrique",), - ABSCISSE =SIMP(statut='f',typ='R',max='**', - fr="Valeurs des abscisses", ), - b_fonction =BLOC(condition = "FONCTION != None", - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - ), - b_fonction_c =BLOC(condition = "AsType(FONCTION) == fonction_c", - fr="Fonction complexe définie par le mot-clé fonction", - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), - ), - b_list_resu =BLOC(condition = "LIST_RESU != None", - LIST_PARA =SIMP(statut='o',typ=listr8_sdaster ), - ), - b_fonc_x =BLOC(condition = "FONC_X != None", - FONC_Y =SIMP(statut='o',typ=(fonction_sdaster,formule),fr="Fonction ordonnées d une fonction paramétrique" ), - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - ), - b_vale_resu =BLOC(condition = "ABSCISSE != None", - ORDONNEE =SIMP(statut='o',typ='R',max='**', - fr="Valeurs des ordonnées"), - ), - - # mots-clés utilisant uniquement aux formats autres que TABLEAU - # mais ce serait trop pénible de devoir les supprimer quand on change de format - # donc on ne les met pas dans un bloc - # "pseudo" bloc mise en forme : - - LEGENDE =SIMP(statut='f',typ='TXM', - fr="Légende associée à la fonction" ), - STYLE =SIMP(statut='f',typ='I',val_min=0, - fr="Style de la ligne représentant la fonction",), - COULEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Couleur associée à la fonction",), - MARQUEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Type du marqueur associé à la fonction",), - FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut=0, - fr="Fréquence d impression du marqueur associé à la fonction", ), - # fin bloc mise en forme - - TRI =SIMP(statut='f',typ='TXM',defaut="N", - fr="Choix du tri effectué sur les abscisses ou sur les ordonnées", - into=("N","X","Y","XY","YX") ), - ), - # Mise en page du tableau ou du graphique - b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'", - fr="Mots-clés propres au format Tableau", - UNITE =SIMP(statut='o',typ='I',defaut=8, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - TITRE =SIMP(statut='f',typ='TXM', - fr="Titre associé au graphique" ), - SOUS_TITRE =SIMP(statut='f',typ='TXM', - fr="Sous-titre du graphique" ), - SEPARATEUR =SIMP(statut='f',typ='TXM',defaut=' ', - fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"), - COMMENTAIRE =SIMP(statut='f',typ='TXM',defaut='#', - fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"), - DEBUT_LIGNE =SIMP(statut='f',typ='TXM',defaut='', - fr="Caractère de debut de ligne"), - FIN_LIGNE =SIMP(statut='f',typ='TXM',defaut='\n', - fr="Caractère de fin de ligne"), - ), - b_graphique = BLOC(condition = "FORMAT != 'TABLEAU'", - fr="Mise en page du graphique", - TITRE =SIMP(statut='f',typ='TXM', - fr="Titre associé au graphique" ), - SOUS_TITRE =SIMP(statut='f',typ='TXM', - fr="Sous-titre du graphique" ), - BORNE_X =SIMP(statut='f',typ='R',min=2,max=2, - fr="Intervalles de variation des abscisses"), - BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2, - fr="Intervalles de variation des ordonnées"), - ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), - fr="Type d'échelle pour les abscisses" ), - ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), - fr="Type d'échelle pour les ordonnées" ), - GRILLE_X =SIMP(statut='f',typ='R',max=1,val_min=0., - fr="Pas du quadrillage vertical" ), - GRILLE_Y =SIMP(statut='f',typ='R',max=1,val_min=0., - fr="Pas du quadrillage horizontal" ), - LEGENDE_X =SIMP(statut='f',typ='TXM', - fr="Légende associée à l'axe des abscisses" ), - LEGENDE_Y =SIMP(statut='f',typ='TXM', - fr="Légende associée à l'axe des ordonnées" ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_GENE=PROC(nom="IMPR_GENE",op= 157, - fr="Imprimer le résultat d'un calcul dynamique en variables généralisées au format RESULTAT", - UIinfo={"groupes":("Impression",)}, - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ), - UNITE =SIMP(statut='f',typ='I',defaut=8), - GENE =FACT(statut='o',max='**', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'), - EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'), - EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'), - EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'), - EXCLUS('TOUT_CHAM','NOM_CHAM'), - EXCLUS('TOUT_PARA','NOM_PARA'),), -# faut-il faire des blocs selon le type de RESU_GENE - RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - TOUT_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NUME_CMP_GENE =SIMP(statut='f',typ='I',max='**'), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',max='**'), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - INFO_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16, - UIinfo={"groupes":("Impression",)}, - fr="Imprimer le contenu des objets créés par JEVEUX (pour développeur)", - ENTITE =SIMP(fr="choix de l'observation",statut='o',typ='TXM', - into=("DISQUE","MEMOIRE","REPERTOIRE", - "OBJET","ATTRIBUT","SYSTEME") ), - b_objet =BLOC(condition = "(ENTITE=='OBJET')", - NOMOBJ =SIMP(fr="nom d'objet",statut='f',typ='TXM' ), - NUMOC =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ), - NOMOC =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ), - ), - b_attribut =BLOC(condition = "(ENTITE=='ATTRIBUT')", - NOMOBJ =SIMP(fr="nom de collection",statut='f',typ='TXM' ), - NOMATR =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM', - into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG', - '$$LONO','$$LUTI','$$NUM') ), - ), - b_systeme =BLOC(condition = "(ENTITE=='SYSTEME')", - CLASSE =SIMP(statut='o',typ='TXM',into=('G','V','L') ), - NOMATR =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM', - into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$MARQ', - '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG', - '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX', - '$$TLEC','$$TECR','$$IADM','$$ACCE','$$USADI') ), - ), - b_repertoire =BLOC(condition = "(ENTITE=='REPERTOIRE')", - CLASSE =SIMP(statut='f',typ='TXM',into=('G','V','L',' '),defaut=' '), - ), - b_disque =BLOC(condition = "(ENTITE=='DISQUE')", - CLASSE =SIMP(statut='f',typ='TXM' ,into=('G','V','L',' '),defaut=' '), - ), - IMPRESSION =FACT(statut='f', - NOM =SIMP(statut='f',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I'), - ), - COMMENTAIRE =SIMP(statut='f',typ='TXM' ), -) ; -#& MODIF COMMANDE DATE 06/06/2007 AUTEUR SALMONA 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. -# ====================================================================== -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='**'), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5",into=("1PE12.5","1PE16.9") ), - IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - b_cadyro =BLOC(condition = "FORMAT == 'CADYRO'", - SQUELETTE =SIMP(statut='f',typ=squelette ), - UNITE_MODE_MECA =SIMP(statut='f',typ='I',defaut= 26 ), - UNITE_MODE_STAT =SIMP(statut='f',typ='I',defaut= 27 ), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 28 ), - IMPR_MODE_MECA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - IMPR_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159, - fr="Imprimer sur un fichier au format IDEAS ou RESULTAT des matrices élémentaires et assemblées", - UIinfo={"groupes":("Impression",)}, - regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),), -# ====================================================================== - MATR_ELEM =FACT(statut='f',max='**', -# - MATRICE =SIMP(statut='o',typ=(matr_elem, vect_elem)), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS", - into=("IDEAS","RESULTAT") ), -# - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS", - UNITE =SIMP(statut='f',typ='I',defaut=30), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,), ), ), -# - b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT", - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - UNITE =SIMP(statut='f',typ='I',defaut=8), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR",into=("VALEUR","NOEUD","MAILLE") ), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ), ), - ), -# ====================================================================== - MATR_ASSE =FACT(statut='f',max='**', -# - MATRICE =SIMP(statut='o',typ=matr_asse_gd), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS","RESULTAT") ), -# - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS", - UNITE =SIMP(statut='f',typ='I',defaut=30), - VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,), ), ), -# - b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT", - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),), - UNITE =SIMP(statut='f',typ='I',defaut=8), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',defaut="SOUS_MATRICE",into=("SOUS_MATRICE","LIGNE","COLONNE") ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - GRAIN =SIMP(statut='f',typ='TXM',defaut="VALEUR",into=("VALEUR","NOEUD") ), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut= 4 ), - VALE_ZERO =SIMP(statut='f',typ='R',defaut= 0.E+0 ), ), - ), -# ====================================================================== -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162, - UIinfo={"groupes":("Impression",)}, - fr="Impression des données d'entrée pour une étude sismique avec MISS3D", - regles=(UN_PARMI('INST_INIT','FREQ_INIT'), - PRESENT_PRESENT('INST_INIT','INST_FIN'), - PRESENT_PRESENT('FREQ_INIT','FREQ_FIN'),), - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - EXCIT =FACT(statut='f',max='**', - regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),), - VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - COEF_MULT =SIMP(statut='f',typ='R' ), - ), - EXCIT_SOL =FACT(statut='f',max='**', - DIRECTION =SIMP(statut='o',typ='R',min=3,max=3), - FONC_SIGNAL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL", - into=("DEPL","VITE","ACCE","FORC",) ), - ), - INST_INIT =SIMP(statut='f',typ='R' ), - INST_FIN =SIMP(statut='f',typ='R' ), - FREQ_INIT =SIMP(statut='f',typ='R' ), - FREQ_FIN =SIMP(statut='f',typ='R' ), - PAS =SIMP(statut='o',typ='R' ), - UNITE =SIMP(statut='f',typ='I',defaut= 26 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 07/11/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE thomasso D.THOMASSON -# -from Macro.impr_oar_ops import impr_oar_ops -IMPR_OAR =MACRO(nom="IMPR_OAR",op= impr_oar_ops, sd_prod=None, - fr="Impression au format OAR", - UIinfo={"groupes":("Impression",)}, - TYPE_CALC = SIMP(statut='o', typ='TXM',into=('COMPOSANT', 'MEF', 'TUYAUTERIE')), - b_composant =BLOC(condition = "TYPE_CALC == 'COMPOSANT' ", - regles = (AU_MOINS_UN('RESU_MECA','RESU_THER')), - DIAMETRE = SIMP(statut='o', typ='R'), - ORIGINE = SIMP(statut='o', typ='TXM', defaut='INTERNE', into=('INTERNE', 'EXTERNE')), - COEF_U = SIMP(statut='f', typ='R', defaut=1.0), - ANGLE_C = SIMP(statut='o', typ='R', defaut=0.0), - REVET = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')), - RESU_MECA = FACT(statut='f', max='**', - NUM_CHAR = SIMP(statut='o', typ='I'), - TYPE = SIMP(statut='o', typ='TXM', defaut='FX', into=('FX', 'FY', 'FZ', 'MX', 'MY', 'MZ', 'PRE')), - TABLE = SIMP(statut='o', typ=table_sdaster), - TABLE_S = SIMP(statut='f', typ=table_sdaster)), - RESU_THER = FACT(statut='f', max='**', - NUM_TRAN = SIMP(statut='o', typ='I'), - TABLE_T = SIMP(statut='o', typ=table_sdaster), - TABLE_TEMP= SIMP(statut='o', typ=table_sdaster), - TABLE_S = SIMP(statut='f', typ=table_sdaster), - TABLE_ST = SIMP(statut='f', typ=table_sdaster)), - ), - b_mef = BLOC(condition = "TYPE_CALC == 'MEF' ", - regles = (AU_MOINS_UN('RESU_MECA','RESU_THER')), - DIAMETRE = SIMP(statut='o', typ='R'), - ORIGINE = SIMP(statut='o', typ='TXM', defaut='INTERNE', into=('INTERNE', 'EXTERNE')), - COEF_U = SIMP(statut='f', typ='R', defaut=1.0), - RESU_MECA = FACT(statut='f', max='**', - AZI = SIMP(statut='o', typ='R'), - TABLE_T = SIMP(statut='o', typ=table_sdaster), - TABLE_F = SIMP(statut='o', typ=table_sdaster), - TABLE_P = SIMP(statut='o', typ=table_sdaster), - TABLE_CA = SIMP(statut='o', typ=table_sdaster)), - RESU_THER=FACT(statut='f', max='**', - AZI = SIMP(statut='o', typ='R'), - NUM_CHAR = SIMP(statut='o', typ='I'), - TABLE_T = SIMP(statut='o', typ=table_sdaster), - TABLE_TI = SIMP(statut='o', typ=table_sdaster)), - ), - b_tuyauterie = BLOC(condition = "TYPE_CALC == 'TUYAUTERIE' ", - RESU_MECA = FACT(statut='o', max='**', - NUM_CHAR = SIMP(statut='o', typ='I'), - TABLE = SIMP(statut='o', typ=table_sdaster), - MAILLAGE = SIMP(statut='o', typ=maillage_sdaster)), - ), - UNITE = SIMP(statut='f',typ='I',defaut=38), - AJOUT = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')), - ); -#& MODIF COMMANDE DATE 09/05/2007 AUTEUR SALMONA 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. -# ====================================================================== -IMPR_RESU=PROC(nom="IMPR_RESU",op=39, - UIinfo={"groupes":("Impression",)}, - fr="Imprimer un maillage et/ou les résultats d'un calcul (différents formats)", - MODELE =SIMP(statut='f',typ=modele_sdaster), - - FORMAT =SIMP(statut='f',typ='TXM',position='global',defaut="RESULTAT", - into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ), - - b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT", - UNITE =SIMP(statut='f',typ='I',defaut=8), - ), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS", - UNITE =SIMP(statut='f',typ='I',defaut=30), - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_aster =BLOC(condition="FORMAT=='ASTER'",fr="unité logique d'impression au format ASTER", - UNITE =SIMP(statut='f',typ='I',defaut=26), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="unité logique d'impression et version CASTEM", - UNITE =SIMP(statut='f',typ='I',defaut=37), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - - b_format_ensight =BLOC(condition="FORMAT=='ENSIGHT'",fr="unité logique d'impression au format ENSIGHT", - UNITE =SIMP(statut='f',typ='I',defaut=31), - ), - - b_format_med =BLOC(condition="FORMAT=='MED'",fr="unité logique d'impression au format MED", - UNITE =SIMP(statut='f',typ='I',defaut=80), - ), - - b_format_gmsh =BLOC(condition="FORMAT=='GMSH'",fr="unité logique d'impression et version GMSH", - UNITE =SIMP(statut='f',typ='I',defaut=37), - VERSION =SIMP(statut='f',typ='R',defaut=1.2,into=(1.0,1.2)), - ), - - RESU =FACT(statut='o',max='**', - - regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'), - EXCLUS('CHAM_GD','RESULTAT'),), - MAILLAGE =SIMP(statut='f',typ=(maillage_sdaster,squelette)), - CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster), - RESULTAT =SIMP(statut='f',typ=resultat_sdaster),# CO() sd a creer !!! - - b_info_med =BLOC(condition="FORMAT=='MED'", - INFO_MAILLAGE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - b_sensibilite =BLOC(condition="RESULTAT != None", - fr="Définition des paramètres de sensibilité", - ang="Definition of sensitivity parameters", - regles=(DERIVABLE('RESULTAT'),), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"),), - -# b_partie =BLOC(condition="""((AsType(RESULTAT)==dyna_harmo) or -# (AsType(CHAM_GD)!=carte_sdaster)) and ((FORMAT=='CASTEM') or (FORMAT=='GMSH'))""", - PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ), -# ), - b_extrac =BLOC(condition="RESULTAT != None", - fr="extraction d un champ de grandeur", - regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP', - 'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - ANGL =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - - b_acce_reel =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - ), -### - b_parametres =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""", - regles=(EXCLUS('TOUT_PARA','NOM_PARA'),), - INFO_RESU =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - FORM_TABL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON","EXCEL") ), - ), -### - b_cmp=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\ - ((FORMAT == 'CASTEM')or(FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'ENSIGHT')or(FORMAT == 'MED'))""", - fr="sélection des composantes", - regles=(EXCLUS('TOUT_CMP','NOM_CMP'),), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), -### - b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""", - fr="sélection des composantes et des entités toplogiques", - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), -### - b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\ - ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'MED'))""", - fr="sélection des entités topologiques", - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), -### - b_valeurs=BLOC(condition="(FORMAT == 'RESULTAT')", - fr="sélection sur les valeurs", - VALE_MAX =SIMP(statut='f',typ='TXM',into=("OUI",) ), - VALE_MIN =SIMP(statut='f',typ='TXM',into=("OUI",) ), - BORNE_SUP =SIMP(statut='f',typ='R'), - BORNE_INF =SIMP(statut='f',typ='R'), - IMPR_COOR =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="1PE12.5"), - ), - - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de valeurs propres dans un intervalle donné", - UIinfo={"groupes":("Résolution",)}, - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"), - fr="Type d analyse" ), - b_dynamique =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - fr="Recheche du nombre de fréquences propres", - FREQ_MIN =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ), - FREQ_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), - ), - b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - fr="Recherche du nombre de charges critiques", - CHAR_CRIT_MIN =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ), - CHAR_CRIT_MAX =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ), - ), - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ), - UNITE =SIMP(statut='f',typ='I',defaut=8), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2 ), -) ; -#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -from Macro.impr_table_ops import impr_table_ops - -IMPR_TABLE=MACRO(nom="IMPR_TABLE",op=impr_table_ops,sd_prod=None, - UIinfo={"groupes":("Impression",)}, - fr="Impression du contenu d'une table dans un fichier", - regles=(DERIVABLE("TABLE"),), - TABLE =SIMP(statut='o',typ=table_sdaster), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - FORMAT =SIMP(statut='f',typ='TXM',defaut="TABLEAU", - into=("TABLEAU","ASTER","TABLEAU_CROISE","AGRAF","XMGRACE",),), - b_pilote =BLOC(condition = "FORMAT == 'XMGRACE'", - fr="Mots-clés propres à XMGRACE", - PILOTE =SIMP(statut='f',typ='TXM',defaut='', - into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'), - fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"), - UNITE =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - ), - b_unite =BLOC(condition = "FORMAT != 'XMGRACE'", - UNITE =SIMP(statut='f',typ='I',defaut=8, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - ), - FILTRE =FACT(statut='f',max='**', - NOM_PARA =SIMP(statut='o',typ='TXM'), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI"),), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_K =SIMP(statut='f',typ='TXM'), - ), - b_crit =BLOC(condition = "CRIT_COMP in ('EQ','NE')", - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - ), - TRI =FACT(statut='f', - NOM_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - ORDRE =SIMP(statut='f',typ='TXM',defaut="CROISSANT", # max='**', - into=("CROISSANT","DECROISSANT") ), - ), - PAGINATION =SIMP(statut='f',typ='TXM',max='**'), - FORMAT_R =SIMP(statut='f',typ='TXM',defaut="E12.5"), - FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE", - into=("MODULE_PHASE","REEL_IMAG") ), - NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - IMPR_FONCTION =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - - # mise en forme pour les formats qui passent par Graph - b_forme =BLOC(condition = "FORMAT == 'XMGRACE'", - fr="Données de mise en forme du graphique", - # pour la courbe - LEGENDE =SIMP(statut='f',typ='TXM', - fr="Légende associée à la fonction" ), - STYLE =SIMP(statut='f',typ='I',val_min=0, - fr="Style de la ligne représentant la fonction",), - COULEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Couleur associée à la fonction",), - MARQUEUR =SIMP(statut='f',typ='I',val_min=0, - fr="Type du marqueur associé à la fonction",), - FREQ_MARQUEUR =SIMP(statut='f',typ='I',defaut=0, - fr="Fréquence d impression du marqueur associé à la fonction", ), - # format du graphique - BORNE_X =SIMP(statut='f',typ='R',min=2,max=2, - fr="Intervalles de variation des abscisses"), - BORNE_Y =SIMP(statut='f',typ='R',min=2,max=2, - fr="Intervalles de variation des ordonnées"), - ECHELLE_X =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), - fr="Type d'échelle pour les abscisses" ), - ECHELLE_Y =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"), - fr="Type d'échelle pour les ordonnées" ), - GRILLE_X =SIMP(statut='f',typ='R',max=1,val_min=0., - fr="Pas du quadrillage vertical" ), - GRILLE_Y =SIMP(statut='f',typ='R',max=1,val_min=0., - fr="Pas du quadrillage horizontal" ), - LEGENDE_X =SIMP(statut='f',typ='TXM', - fr="Légende associée à l'axe des abscisses" ), - LEGENDE_Y =SIMP(statut='f',typ='TXM', - fr="Légende associée à l'axe des ordonnées" ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -INCLUDE=MACRO(nom="INCLUDE",op=ops.build_include, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Débranchement vers un fichier de commandes secondaires", - sd_prod=ops.INCLUDE,op_init=ops.INCLUDE_context,fichier_ini=1, - UNITE = SIMP(statut='o',typ='I'), - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -); -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14, - UIinfo={"groupes":("Modélisation",)}, - fr="Récupérer les caractéristiques d'un matériau dans le Catalogue Materiaux d'Aster ", - sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0, - NOM_AFNOR =SIMP(statut='o',typ='TXM' ), - TYPE_MODELE =SIMP(statut='o',typ='TXM',into=("REF","PAR") ), - VARIANTE =SIMP(statut='o',typ='TXM', - into=("A","B","C","D","E","F","G","H","I","J", - "K","L","M","N","O","P","Q","R","S","T","U","V", - "W","X","Y","Z",) ), - TYPE_VALE =SIMP(statut='o',typ='TXM',into=("NOMI","MINI","MAXI") ), - NOM_MATER =SIMP(statut='o',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I',defaut= 32 ), - EXTRACTION =FACT(statut='f',max=99, - COMPOR =SIMP(statut='o',typ='TXM' ), - TEMP_EVAL =SIMP(statut='o',typ='R' ), - ), - UNITE_LONGUEUR =SIMP(statut='f',typ='TXM',into=("M","MM"),defaut="M" ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE D6BHHJP J.P.LEFEBVRE -INFO_EXEC_ASTER=OPER(nom="INFO_EXEC_ASTER",op=35,sd_prod=table_sdaster, - fr="Récupère différentes informations propres à l'exécution en cours", - reentrant='n', - UIinfo={"groupes":("Gestion du travail",)}, - - regles=(), - LISTE_INFO =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=3, - into=("CPU_RESTANT","UNITE_LIBRE","ETAT_UNITE"),), - b_etat_unite =BLOC(condition = "'ETAT_UNITE' in LISTE_INFO", - regles=(UN_PARMI('UNITE','FICHIER'),), - UNITE =SIMP(statut='f',typ='I',val_min=1,val_max=99,max=1, - fr="Unité logique dont on veut obtenir l'état",), - FICHIER =SIMP(statut='f',typ='TXM',validators=LongStr(1,255), - fr="Nom du fichier dont on veut obtenir l'état",), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 24/10/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. -# ====================================================================== -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),max='**' ), - ), - NORME =FACT(statut='f',fr="Norme L2 d'une fonction", - FONCTION =SIMP(statut='o', typ=nappe_sdaster), - ), - ECART_TYPE =FACT(statut='f',fr="Ecart-type d'une fonction", - METHODE =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ), - FONCTION =SIMP(statut='o',typ=fonction_sdaster), - INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ), - INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3,val_min=0.E+0 ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster, - UIinfo={"groupes":("Post traitements",)}, - fr="Définition d'une courbe dans un maillage 2D",reentrant='n', - - MAILLAGE =SIMP(statut='o',typ=(maillage_sdaster) ), - - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'), - AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'), - PRESENT_ABSENT('DEFI_CHEMIN','DEFI_SEGMENT','DEFI_ARC'), - PRESENT_ABSENT('DEFI_SEGMENT','NOEUD_ORIG','GROUP_NO_ORIG'), - PRESENT_ABSENT('DEFI_ARC','NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'), - EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'), - EXCLUS('DEFI_CHEMIN','DEFI_ARC'),), - - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - DEFI_SEGMENT =FACT(statut='f',max='**', - regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - EXTREMITE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - ), - - DEFI_ARC =FACT(statut='f',max='**', - regles=(UN_PARMI('CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'), - UN_PARMI('RAYON','ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('RAYON','EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'), - PRESENT_PRESENT('RAYON','SECTEUR'),), - CENTRE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_CENTRE =SIMP(statut='f',typ=no,), - GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,), - RAYON =SIMP(statut='f',typ='R',val_min=0.E+0), - SECTEUR =SIMP(statut='f',typ='R',min=2,max=2, - val_min=-180.E+0,val_max=180E+0), - ORIGINE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - EXTREMITE =SIMP(statut='f',typ='R',min=2,max=2), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU",) ), - ), - - DEFI_CHEMIN =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA'),), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster, - UIinfo={"groupes":("Post traitements",)}, - fr="Définir un chemin de type segment de droite dans un maillage 3D",reentrant='n', - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - DEFI_SEGMENT =FACT(statut='o',max='**', - regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'), - UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),), - ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), - NOEUD_ORIG =SIMP(statut='f',typ=no,), - GROUP_NO_ORIG =SIMP(statut='f',typ=grno,), - EXTREMITE =SIMP(statut='f',typ='R',min=3,max=3), - NOEUD_EXTR =SIMP(statut='f',typ=no,), - GROUP_NO_EXTR =SIMP(statut='f',typ=grno,), - ), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 16/05/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def lire_champ_prod(TYPE_CHAM=None,**args): -# Remarque : si cette liste évolue, il faut penser à mettre à jour son -# homologue dans macr_adap_mail - import string -# - if TYPE_CHAM[0:5] == "NOEU_" : return cham_no_sdaster - if TYPE_CHAM[0:2] == "EL" : return cham_elem - raise AsException("type de concept resultat non prevu") - -LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod, - fr="Lire un champ dans un fichier au format MED et le stocker dans un concept.", - reentrant='n',UIinfo={"groupe":("Résultats et champs",)}, - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster,), - FORMAT =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",),), - UNITE =SIMP(statut='f',typ='I',defaut= 81,), - b_format =BLOC(condition = "FORMAT == 'MED'", - regles=( UN_PARMI('NOM_CMP_IDEM','NOM_CMP'), - PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ), - EXCLUS('NUME_ORDRE','INST'), - EXCLUS('NUME_PT','INST'),), - NOM_MED =SIMP(statut='o',typ='TXM', ), - NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), ), - NOM_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',), - NOM_CMP_MED =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',), - NUME_PT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**',), - NUME_ORDRE =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**', - fr="Numero d ordre du champ à lire",ang="Rank of the field to be read" ), - INST =SIMP(statut='f',typ='R',fr="Instant associé",ang="Instant" ), -# - b_precision =BLOC(condition="(INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ),), -# - NOM_MAIL_MED =SIMP(statut='f',typ='TXM',), - ), -# Remarque : si cette liste évolue, il faut penser à mettre à jour son -# homologue dans macr_adap_mail - TYPE_CHAM =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()), - b_modele =BLOC(condition = "TYPE_CHAM!=None and TYPE_CHAM[0:2] == 'EL'", - MODELE =SIMP(statut='o',typ=modele_sdaster, ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.lire_fonction_ops import lire_fonction_ops - -def lire_fonction_prod(self,TYPE,**args): - if (TYPE == 'FONCTION') : return fonction_sdaster - elif (TYPE == 'FONCTION_C'): return fonction_c - elif (TYPE == 'NAPPE' ) : return nappe_sdaster - raise AsException("type de concept resultat non prevu") - -LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_fonction_prod, - fr="Lit les valeurs réelles dans un fichier de données représentant une fonction et" - +" crée un concept de type fonction ou nappe", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - FORMAT =SIMP(statut='f',typ='TXM',into=("LIBRE",),defaut="LIBRE" ), - TYPE =SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C","NAPPE"),defaut="FONCTION" ), - SEPAR =SIMP(statut='f',typ='TXM',into=("None",",",";","/"),defaut="None" ), - INDIC_PARA =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,1]), - b_fonction =BLOC(condition = "TYPE=='FONCTION' ", - INDIC_RESU =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,2]), ), - b_fonction_c =BLOC(condition = "TYPE=='FONCTION_C' ", - FORMAT_C =SIMP(statut='f',typ='TXM',defaut="REEL_IMAG",into=("REEL_IMAG","MODULE_PHASE") ), - b_reel_imag =BLOC(condition = "FORMAT_C=='REEL_IMAG' ", - INDIC_REEL =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]), - INDIC_IMAG =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ) , - b_modu_phas =BLOC(condition = "FORMAT_C=='MODULE_PHASE' ", - INDIC_MODU =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]), - INDIC_PHAS =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ), ), - b_nappe =BLOC(condition = "TYPE=='NAPPE' ", - NOM_PARA_FONC =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ), - INDIC_ABSCISSE =SIMP(statut='o',typ='I',min=2,max=2,), - INTERPOL_FONC =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - DEFI_FONCTION =FACT(statut='f',max='**', - INDIC_RESU =SIMP(statut='o',typ='I',min=2,max=2,),), ), - UNITE =SIMP(statut='o',typ='I' ), - NOM_PARA =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ), - VERIF =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene, - fr="Création d un vecteur assemblé à partir de base modale", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - BASE =SIMP(statut='o',typ=base_modale ), - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - FREQ_EXTR =SIMP(statut='o',typ='R',max=1), - NOM_CMP =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE"),defaut="DEPL"), - UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=30), -) ; - -#& MODIF COMMANDE DATE 19/09/2006 AUTEUR ACBHHCD G.DEVESA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -LIRE_IMPE_MISS=OPER(nom="LIRE_IMPE_MISS",op= 164,sd_prod=matr_asse_gene_c, - fr="Création d une matrice assemblée à partir de base modale", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - BASE =SIMP(statut='o',typ=base_modale ), - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - FREQ_EXTR =SIMP(statut='o',typ='R',max=1), - UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), - TYPE =SIMP(statut='f',typ='TXM',defaut="ASCII",into=("BINAIRE","ASCII") ), -) ; - -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.lire_inte_spec_ops import lire_inte_spec_ops - -LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=table_fonction, - fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale", - reentrant='n', - UIinfo={"groupes":("Fonction",)}, - UNITE =SIMP(statut='o',typ='I' ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ), - NOM_PARA =SIMP(statut='f',typ='TXM',defaut="FREQ", - into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP", - "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ), - NOM_RESU =SIMP(statut='f',typ='TXM',defaut="DSP" ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 21/11/2006 AUTEUR COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op= 1,sd_prod=maillage_sdaster, - fr="Crée un maillage par lecture d'un fichier au format Aster ou Med", - ang="Readings of a mesh file", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, -# - UNITE =SIMP(statut='f',typ='I',defaut= 20 ), -# - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"), - fr="Format du fichier : ASTER ou MED.", - ang="Format of the file : ASTER or MED.",), -# - ABSC_CURV =FACT(statut='f',min=0, - TOUT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), -# - VERI_MAIL =FACT(statut='d', - VERIF =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - APLAT =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), -# - b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " , - fr="Informations complémentaires pour la lecture MED.", - ang="Further information for MED readings.", -# -# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel -# le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer. - NOM_MED = SIMP(statut='f',typ='TXM', - fr="Nom du maillage dans le fichier MED.", - ang="Name of the mesh into the MED file.",), - INFO_MED = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# - RENOMME = FACT(statut='f', max='**', - fr="Renommer un nom de groupe MED", - NOM_MED = SIMP(statut='o', typ=grma, - fr="Nom du groupe dans le fichier MED"), - NOM = SIMP(statut='o', typ=grma, validators=LongStr(1,8), - fr="Nom du groupe dans le maillage ASTER"), - ), - ), -# - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -# -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def lire_miss_3d_prod(TYPE_RESU,**args): - if TYPE_RESU == "TRANS" : return dyna_trans - if TYPE_RESU == "HARMO" : return dyna_harmo - raise AsException("type de concept resultat non prevu") - -LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod, - fr="Restituer sur base physique une réponse harmonique ou transitoire issue de MISS3D", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - MACR_ELEM_DYNA =SIMP(statut='o',typ=macr_elem_dyna ), - UNITE =SIMP(statut='f',typ='I',defaut= 27 ), - NOM =SIMP(statut='f',typ='TXM' ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char, - fr="Lire le fichier de résultats au format IDEAS produit par le logiciel EUROPLEXUS", - reentrant='n', - UIinfo={"groupes":("Maillage",)}, - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - UNITE =SIMP(statut='f',typ='I',defaut= 19 ), - FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)), - MAIL_PLEXUS =SIMP(statut='o',typ=maillage_sdaster ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - MODELE =SIMP(statut='o',typ=modele_sdaster ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - b_prec_crit =BLOC(condition = "LIST_INST != None or INST != None", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF", - into=("RELATIF","ABSOLU") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 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 03/04/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.lire_table_ops import lire_table_ops - -LIRE_TABLE=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=table_sdaster, - fr="Lecture d'un fichier contenant une table", - UIinfo={"groupes":("Table",)}, - UNITE =SIMP(statut='o',typ='I' ), - FORMAT =SIMP(statut='f',typ='TXM',into=("ASTER",),defaut="ASTER"), - NUME_TABLE =SIMP(statut='f',typ='I',defaut=1), - SEPARATEUR =SIMP(statut='f',typ='TXM',defaut=' '), - PARA =SIMP(statut='f',typ='TXM',max='**'), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - ) ; - -#& MODIF COMMANDE DATE 13/02/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# ====================================================================== - -MAC_MODES=OPER(nom="MAC_MODES",op= 141,sd_prod=table_sdaster, - fr="Normalisation de modes propres", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - BASE_1 =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ), - BASE_2 =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ), - MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 30/10/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS - - -from Macro.macr_adap_mail_ops import macr_adap_mail_ops - -def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args): -# -# 0. Typage des structures produites -# - maillage_np1=args['MAILLAGE_NP1'] - self.type_sdprod(maillage_np1,maillage_sdaster) -# - if ( args['MAILLAGE_NP1_ANNEXE'] is not None ) : - maillage_np1_annexe=args['MAILLAGE_NP1_ANNEXE'] - self.type_sdprod(maillage_np1_annexe,maillage_sdaster) -# - if MAJ_CHAM == None:return None -# Remarque : la liste qui suit doit etre conforme à son homologue de LIRE_CHAMP - for ch in MAJ_CHAM: - t=ch['TYPE_CHAM'] - if t[0:5] == "NOEU_":self.type_sdprod(ch['CHAM_MAJ'],cham_no_sdaster) - if t[0:2] == "EL": self.type_sdprod(ch['CHAM_MAJ'],cham_elem) - return None - - -MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=macr_adap_mail_ops,sd_prod=macr_adap_mail_prod, - fr="Adapter un maillage avec le logiciel HOMARD.", - ang="Mesh adaptation with HOMARD software.", - docu="U7.03.01-b",UIinfo={"groupe":("Maillage",)}, -# -# 1. Le niveau d'information -# - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -# -# 2. Version de HOMARD -# - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_5", - into=("V8_5", "V8_N", "V8_N_PERSO"), - fr="Version de HOMARD", - ang="HOMARD release"), -# -# 3. Langue des messages produits par HOMARD -# - LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS", - into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",), - fr="Langue des messages produits par HOMARD.", - ang="Language for HOMARD messages." ), -# -# 4. Les maillages -# 4.1. Quel que soit le type de traitement, il faut donner : -# A. Le concept du maillage initial (entree) -# B. Le concept du maillage final (sortie) -# - MAILLAGE_N = SIMP(statut='o',typ=maillage_sdaster, - fr="Maillage avant adaptation", - ang="Mesh before adaptation" ), -# - MAILLAGE_NP1 = SIMP(statut='o',typ=CO, - fr="Maillage apres adaptation", - ang="Mesh after adaptation" ), -# -# 4.2. Eventuellement, on peut produire un maillage annexe -# Actuellement, c'est le maillage n+1, mais de degré différent. -# - MAILLAGE_NP1_ANNEXE = SIMP(statut='f',typ=CO, - fr="Maillage annexe apres adaptation", - ang="Additional mesh after adaptation" ), -# -# 5. Le pilotage de l'adaptation, avec les variantes suivantes : -# . Raffinement et deraffinement, selon un champ d'indicateurs d'erreur -# . Raffinement seul, selon un champ d'indicateurs d'erreur -# . Deraffinement seul, selon un champ d'indicateurs d'erreur -# . Raffinement seul, selon des zones geometriques -# . Raffinement uniforme : toutes les mailles sont divisées -# . Deraffinement uniforme : toutes les mailles sont regroupées -# . Rien : le maillage est le meme a la sortie et a l'entree -# - ADAPTATION = SIMP(statut='o',typ='TXM', - into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT","RAFFINEMENT_ZONE", \ - "RAFFINEMENT_UNIFORME","DERAFFINEMENT_UNIFORME","RIEN"), - fr="Pilotage de l'adaptation : selon un indicateur d'erreur ou uniforme.", - ang="Adaptation control : among an error indicator or uniform" ), -# -# 6. Pour de l'adaptation libre, il faut un indicateur d'erreur -# - b_indicateur_d_erreur = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ - (ADAPTATION == 'RAFFINEMENT') or \ - (ADAPTATION == 'DERAFFINEMENT') " , - fr="Pour une adaptation libre, choix de l'indicateur d'erreur ou d'une zone à raffiner", - ang="For free adaptation, selection of error indicator or zone", -# - regles=(UN_PARMI('CHAM_GD','RESULTAT_N')), -# -# 6.1. Repérage de la zone à raffiner à l'aide d'un indicateur -# -# 6.1.1. Sous forme de champ de grandeur -# - CHAM_GD = SIMP(statut='f',typ=cham_gd_sdaster, - fr="Champ de grandeur Code_Aster contenant l'indicateur d'erreur", - ang="Code_Aster champ de grandeur with error indicator" ), -# -# 6.1.2. Sous forme de concept resultat_sdaster -# - RESULTAT_N = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) , - fr="Concept resultat Code_Aster contenant l'indicateur d'erreur", - ang="Code_Aster result with error indicator" ), -# - b_champ_indicateur = BLOC(condition="(RESULTAT_N != None)", - INDICATEUR = SIMP(statut='o',typ='TXM', - fr="Champ de l'indicateur d'erreur dans le résultat", - ang="Error indicator field in the result structure" ), - ), -# -# 6.1.3. Est-ce un champ dérivé -# - b_sensibilite = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", - fr="Est-ce un champ dérivé", - ang="Is the indicator a derivative field", -# - SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter") -# - ), -# -# 6.1.4. La composante retenue -# - b_composante = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", - fr="Choix de la composante pour l'indicateur", - ang="Component selection for error indicator", -# - NOM_CMP_INDICA = SIMP(statut='o',typ='TXM', - fr="Composante retenue pour l'indicateur d'erreur", - ang="Selected component for error indicator" ), -# - ), -# -# 6.1.5. Le paramètre temporel pour l'indicateur -# - b_parametre_temporel = BLOC(condition="(RESULTAT_N != None)", - fr="Choix éventuel du paramètre temporel pour l'indicateur", - ang="Time selection for error indicator (option)", -# - regles=(EXCLUS('NUME_ORDRE','INST'),), -# -# 6.1.5.1. Soit le numero d'ordre -# - NUME_ORDRE = SIMP(statut='f',typ='I', - fr="Numero d ordre", - ang="Rank" ), -# -# 6.1.5.2. Soit l'instant -# 6.1.5.2.1. Sa valeur -# - INST = SIMP(statut='f',typ='R', - fr="Instant associé", - ang="Instant" ), -# -# 6.1.5.2.2. La précision du choix de l'instant -# - b_precision = BLOC(condition="(INST != None)", - fr="Choix de la précision du choix de l'instant", - ang="Selection for instant choice", - PRECISION = SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ), - ), -# - ), -# -# 6.1.6. Type de valeur de l'indicateur : absolue ou relative -# - b_valeur_indicateur = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ", - fr="Type de valeur pour l'indicateur", - ang="Value type for error indicator", -# - TYPE_VALEUR_INDICA = SIMP(statut='f',typ='TXM',defaut="V_ABSOLUE",into=("V_ABSOLUE","V_RELATIVE"), - fr="Valeur absolue ou relative pour l'indicateur", - ang="Absolute or relative value for error indicator" ), -# - ), -# - ) , -# -# 7. Les criteres pour de l'adaptation libre avec un indicateur d'erreur : -# absolu, relatif, en proportion d'entite -# 7.1. Pour le raffinement : -# - b_critere_de_raffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ - (ADAPTATION == 'RAFFINEMENT') " , - fr="Critère de raffinement.", - ang="Refinement threshold.", -# - regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),), -# - CRIT_RAFF_ABS = SIMP(statut='f',typ='R', - fr="Critère absolu", - ang="Absolute threshold" ), - CRIT_RAFF_REL = SIMP(statut='f',typ='R', - fr="Critère relatif : fraction réelle entre 0. et 1.", - ang="Relative threshold : ratio between 0. and 1." ), - CRIT_RAFF_PE = SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments : fraction réelle entre 0. et 1.", - ang="Percentage of elements : ratio between 0. and 1." ), - ) , -# -# 7.2. Pour le deraffinement : -# - b_critere_de_deraffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ - (ADAPTATION == 'DERAFFINEMENT') " , - fr="Critère de déraffinement.", - ang="Unrefinement threshold.", -# - regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),), -# - CRIT_DERA_ABS = SIMP(statut='f',typ='R' , - fr="Critère absolu", - ang="Absolute threshold" ), - CRIT_DERA_REL = SIMP(statut='f',typ='R', - fr="Critère relatif : fraction réelle entre 0. et 1.", - ang="Relative threshold : ratio between 0. and 1." ), - CRIT_DERA_PE = SIMP(statut='f',typ='R', - fr="Pourcentage d'éléments : fraction réelle entre 0. et 1.", - ang="Percentage of elements : ratio between 0. and 1." ), - ) , -# -# 8. Pour de l'adaptation par zone, définitions des zones -# - b_zone = BLOC( condition = " (ADAPTATION == 'RAFFINEMENT_ZONE') " , - fr="Pour une adaptation selon une zone à raffiner", - ang="For adaptation among zone", - ZONE = FACT(statut='f',max='**', - fr="Définition de zones à raffiner.", - ang="Refined zone definition.", -# - regles=(AU_MOINS_UN('X_MINI','X_CENTRE'), - EXCLUS('X_MINI','X_CENTRE',), - EXCLUS('Z_MINI','X_CENTRE',), - EXCLUS('X_MINI','Z_CENTRE',), - EXCLUS('Z_MINI','Z_CENTRE',), - PRESENT_PRESENT('X_MINI','X_MAXI','Y_MINI','Y_MAXI'), - PRESENT_PRESENT('Z_MINI','Z_MAXI'), - PRESENT_PRESENT('X_CENTRE','Y_CENTRE','RAYON'),), -# -# 6.2.1. Une boite parallelepipedique -# - X_MINI = SIMP(statut='f',typ='R', - fr="Abscisse minimum de la boite", - ang="Minimum X for the box"), - X_MAXI = SIMP(statut='f',typ='R', - fr="Abscisse maximum de la boite", - ang="Maximum X for the box"), -# - Y_MINI = SIMP(statut='f',typ='R', - fr="Orodnnée minimum de la boite", - ang="Minimum Y for the box"), - Y_MAXI = SIMP(statut='f',typ='R', - fr="Abscisse maximum de la boite", - ang="Maximum Y for the box"), -# - Z_MINI = SIMP(statut='f',typ='R', - fr="Cote minimum de la boite", - ang="Minimum Z for the box"), - Z_MAXI = SIMP(statut='f',typ='R', - fr="Cote maximum de la boite", - ang="Maximum Z for the box"), -# -# 6.2.2. Une sphere -# - X_CENTRE = SIMP(statut='f',typ='R', - fr="Abscisse du centre de la sphere", - ang="X for the center of the sphere"), - Y_CENTRE = SIMP(statut='f',typ='R', - fr="Ordonnee du centre de la sphere", - ang="Y for the center of the sphere"), - Z_CENTRE = SIMP(statut='f',typ='R', - fr="Cote du centre de la sphere", - ang="Z for the center of the sphere"), - RAYON = SIMP(statut='f',typ='R', - fr="Rayon de la sphere", - ang="Radius of the sphere"), -# - ) , -# - ) , -# -# 9. Les niveaux extremes pour le maillage adapte -# 9.1. Pour le raffinement : -# - b_niveau_maximum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ - (ADAPTATION == 'RAFFINEMENT') or \ - (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \ - (ADAPTATION == 'RAFFINEMENT_ZONE') " , - fr="Niveau maximum de profondeur de raffinement", - ang="Maximum level for refinement", - NIVE_MAX = SIMP(statut='f',typ='I', - fr="Niveau maximum de profondeur de raffinement", - ang="Maximum level for refinement"), - ) , -# -# 9.2. Pour le deraffinement : -# - b_niveau_minimum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \ - (ADAPTATION == 'DERAFFINEMENT') or \ - (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " , - fr="Niveau minimum de profondeur de déraffinement", - ang="Minimum level for unrefinement", - NIVE_MIN = SIMP(statut='f',typ='I', - fr="Niveau minimum de profondeur de déraffinement", - ang="Minimum level for unrefinement"), - ) , -# -# 10. Suivi d'une frontiere -# - MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, - fr="Maillage de la frontiere à suivre", - ang="Boundary mesh" ), -# - b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " , - fr="Information complémentaire sur la frontière", - ang="Further information about boundary", -# - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Liste des groupes de mailles définissant la frontière", - ang="Mesh groups which define the boundary" ), -# - ) , -# -# 11. Mise à jour de champs sur le nouveau maillage -# - MAJ_CHAM = FACT(statut='f',max='**', - fr="Mise à jour de champs sur le nouveau maillage.", - ang="Updating of fields over the new mesh.", -# -# 11.1. Le nom du champ de grandeur qui contiendra le resultat de la mise a jour -# - CHAM_MAJ = SIMP(statut='o',typ=CO, - fr="Nom du champ de grandeur qui contiendra le champ mis à jour", - ang="Name of the field for the updated field"), -# -# 11.2. Le type du champ qui contiendra le resultat de la mise a jour -# - TYPE_CHAM = SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO(), - fr="Type du champ qui contiendra le champ mis à jour", - ang="Type of the field for the updated field" ), -# -# 11.3. Le champ a interpoler -# - regles=(UN_PARMI('CHAM_GD','RESULTAT')), -# -# 11.3.1. Sous forme de champ de grandeur -# - CHAM_GD = SIMP(statut='f',typ=cham_gd_sdaster, - fr="Champ de grandeur Code_Aster contenant le champ à mettre à jour", - ang="Champ de grandeur with field to be updated" ), -# -# 11.3.2. Sous forme de champ dans un resultat -# - RESULTAT = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther), - fr="Resultat contenant le champ à mettre à jour", - ang="Result with field to be updated" ), -# - b_nom_du_champ = BLOC(condition="(RESULTAT != None)", - fr="Choix éventuel du nom du champ à interpoler", - ang="Selection for the name of the field (option)", -# - NOM_CHAM = SIMP(statut='o',typ='TXM', - fr="Nom du champ à mettre à jour", - ang="Name of the field to be updated" ), -# - ), -# -# 11.4. Est-ce un champ dérivé -# - SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), -# -# 11.5. Le paramètre temporel pour le champ a interpoler -# - b_parametre_temporel = BLOC(condition="(RESULTAT != None)", - fr="Choix éventuel du paramètre temporel pour le champ à interpoler", - ang="Time selection for the field (option)", -# - regles=(EXCLUS('NUME_ORDRE','INST'),), -# -# 11.5.1. Soit le numero d'ordre -# - NUME_ORDRE = SIMP(statut='f',typ='I', - fr="Numero d ordre du champ à mettre à jour", - ang="Rank of the field to be updated" ), -# -# 11.5.2. Soit l'instant -# 11.5.2.1. Sa valeur -# - INST = SIMP(statut='f',typ='R', - fr="Instant associé", - ang="Instant" ), -# -# 11.5.2.2. La précision du choix de l'instant -# - b_precision = BLOC(condition="(INST != None)", - fr="Choix de la précision du choix de l'instant", - ang="Selection for instant choice", -# - PRECISION = SIMP(statut='f',typ='R',defaut=1.0E-3, - fr="Précision sur le choix de l'instant associé", - ang="Accuracy over instant choice" ), -# - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), - fr="Critère de précision sur le choix de l'instant associé", - ang="Accuracy criterium over instant choice" ), -# - ), -# - ), - ), -# -# 12. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres -# 12.1. Nombre de noeuds et éléments -# - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et éléments du maillage", - ang="Number of nodes and éléments in the mesh" ), -# -# 12.2. Determination de la qualité des éléments du maillage -# - QUALITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Mesh quality" ), -# -# 12.3. Connexite du maillage -# - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Mesh connexity." ), -# -# 12.4. Taille des sous-domaines du maillage -# - TAILLE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Tailles des sous-domaines du maillage.", - ang="Sizes of mesh sub-domains." ), -# -# 12.5. Controle de la non-interpenetration des éléments -# - INTERPENETRATION= SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des éléments.", - ang="Overlapping checking." ), -# -# 13. Gestion des éléments autres que ceux compatibles avec HOMARD -# "REFUSER" : ils sont refuses (defaut) -# "IGNORER" : ils sont ignorés -# - ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"), - fr="Acceptation d'éléments incompatibles avec HOMARD", - ang="Incompatible elements for HOMARD" ), -# -) ; -#& MODIF COMMANDE DATE 25/09/2006 AUTEUR MJBHHPE J.L.FLEJOU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES -from Macro.macr_ascouf_calc_ops import macr_ascouf_calc_ops -def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU_THER,**args): - self.type_sdprod(MODELE,modele_sdaster) - if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater) - if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem) - if FOND_FISS != None:self.type_sdprod(FOND_FISS,fond_fiss) - if CHARGE != None:self.type_sdprod(CHARGE,char_meca) - if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther) - return evol_noli - -MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=macr_ascouf_calc_prod, - fr="Réalise l'analyse thermomécanique du coude dont le maillage a été concu par MACR_ASCOUF_MAIL", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), - - TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', - into=("SAIN", - "FISS_COUDE", - "FISS_AXIS_DEB", - "SOUS_EPAIS_COUDE" - ) ), - - CL_BOL_P2_GV =FACT(statut='f', - ANGLE =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - ), - - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - MODELE =SIMP(statut='o',typ=CO,), - CHAM_MATER =SIMP(statut='f',typ=CO,), - CARA_ELEM =SIMP(statut='f',typ=CO,), - FOND_FISS =SIMP(statut='f',typ=CO,), - CHARGE =SIMP(statut='f',typ=CO,), - RESU_THER =SIMP(statut='f',typ=CO,), - - AFFE_MATERIAU =FACT(statut='o',max=3, - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ='TXM',into=("COUDE","BOL") ), - MATER =SIMP(statut='o',typ=mater_sdaster ), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - - PRES_REP =FACT(statut='f', - PRES =SIMP(statut='o',typ='R' ), - EFFE_FOND_P1 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - PRES_LEVRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - ECHANGE =FACT(statut='f', - COEF_H =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - TEMP_EXT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - TORS_P1 =FACT(statut='f',max=6, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - FX =SIMP(statut='f',typ='R' ), - FY =SIMP(statut='f',typ='R' ), - FZ =SIMP(statut='f',typ='R' ), - MX =SIMP(statut='f',typ='R' ), - MY =SIMP(statut='f',typ='R' ), - MZ =SIMP(statut='f',typ='R' ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ), - RESI_INTE_RELA =SIMP(statut='f',typ='R' - ,defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - - COMP_ELAS =FACT(statut='f', - RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - CONVERGENCE =FACT(statut='d', - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - ), - - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - - RECH_LINEAIRE =FACT(statut='d', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ), - - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - SUBD_METHODE =SIMP( statut='f',typ='TXM', - into =("AUCUNE","UNIFORME","EXTRAPOLE"), - defaut="AUCUNE", - fr="Méthode de subdivision des pas de temps en cas de non-convergence" - ), - b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0, - fr="Coefficient multiplicateur de la 1ère subdivision"), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - ), - b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_OPTION =SIMP(statut='f',typ='TXM', - into =("IGNORE_PREMIERES","GARDE_DERNIERES",), - defaut="IGNORE_PREMIERES", - fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"), - SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0, - fr="Les n premières itérations sont ignorées pour l'extrapolation"), - SUBD_ITER_FIN =SIMP(statut='c',typ='I',defaut=8,val_min=3, - fr="Seules les n dernières itérations sont prises pour l'extrapolation"), - SUBD_PAS =SIMP(statut='c',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps en cas divergence"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20, - fr="% itération autorisée en plus"), - ), - # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - ), - - THETA_3D =FACT(statut='f',max='**', - R_INF =SIMP(statut='o',typ='R' ), - R_SUP =SIMP(statut='o',typ='R' ), - ), - - IMPR_TABLE =FACT(statut='f', - regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ), - PRESENT_PRESENT('TOUT_PARA','ANGLE', ), - PRESENT_PRESENT('TOUT_PARA','R_CINTR', ), - UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),), - NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=4, - into=("TRESCA_MEMBRANE", - "TRESCA_MFLE", - "TRESCA", - "SI_LONG" - "SI_RADI" - "SI_CIRC" - ) ), - TOUT_PARA =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ANGLE =SIMP(statut='f',typ='R',max='**' ), - R_CINTR =SIMP(statut='f',typ='R',max='**' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ), - POSI_ANGUL =SIMP(statut='f',typ='R',max='**' ), - TRANSFORMEE =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), - ), - - IMPRESSION =FACT(statut='f', - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","ASTER","IDEAS","CASTEM") ), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - - ), - - TITRE =SIMP(statut='f',typ='TXM' ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES -from Macro.macr_ascouf_mail_ops import macr_ascouf_mail_ops -MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op=macr_ascouf_mail_ops,sd_prod=maillage_sdaster, - fr="Engendre le maillage d'un coude sain ou comportant une fissure ou une (ou plusieurs) sous-épaisseur(s)", - UIinfo={"groupes":("Outils métier",)},reentrant='n', - - regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),), - - EXEC_MAILLAGE =FACT(statut='o', - LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000") ), - UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), - UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)), - ), - - TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ), - - COUDE =FACT(statut='o', - ANGLE =SIMP(statut='o',typ='R' ), - R_CINTR =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - L_TUBE_P2 =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - NB_ELEM_EPAIS =SIMP(statut='f',typ='I',defaut= 3 ), - SYME =SIMP(statut='f',typ='TXM',defaut="ENTIER",into=("ENTIER","QUART","DEMI") ), - TRANSFORMEE =SIMP(statut='o',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ), - b_transf_coude =BLOC(condition = "TRANSFORMEE == 'COUDE' ", - DEXT =SIMP(statut='o',typ='R' ), - EPAIS =SIMP(statut='o',typ='R' ), - SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ), - ), - b_transf_tube =BLOC(condition = "TRANSFORMEE == 'TUBE' ", - TRAN_EPAIS =SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON") ), - b_trans_epais_oui =BLOC(condition = "TRAN_EPAIS == 'OUI' ", - regles=(ENSEMBLE('ANGL_TETA2','EPAIS_TI'), - UN_PARMI('ABSC_CURV_TRAN','POSI_ANGU_TRAN'),), - DEXT_T1 =SIMP(statut='o',typ='R' ), - EPAIS_T1 =SIMP(statut='o',typ='R' ), - EPAIS_T2 =SIMP(statut='o',typ='R' ), - EPAIS_TI =SIMP(statut='f',typ='R' ), - ANGL_TETA1 =SIMP(statut='o',typ='R' ), - ANGL_TETA2 =SIMP(statut='f',typ='R' ), - ABSC_CURV_TRAN =SIMP(statut='f',typ='R' ), - POSI_ANGU_TRAN =SIMP(statut='f',typ='R' ), - ), - b_trans_epais_non =BLOC(condition = "TRAN_EPAIS == 'NON' ", - DEXT =SIMP(statut='o',typ='R' ), - EPAIS =SIMP(statut='o',typ='R' ), - SUR_EPAIS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - BOL_P2 =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ), - ), - ), - ), - - SOUS_EPAIS_COUDE=FACT(statut='f', - regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), - UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), - TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), - AXE_CIRC =SIMP(statut='f',typ='R' ), - AXE_LONGI =SIMP(statut='o',typ='R' ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R' ), - SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), - NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), - NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), - NB_ELEM_RADI =SIMP(statut='f',typ='I',defaut= 3 ), - EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - SOUS_EPAIS_MULTI=FACT(statut='f',max='**', - regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'), - UN_PARMI('POSI_CURV_CIRC','AZIMUT'),), - TYPE =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ), - AXE_CIRC =SIMP(statut='f',typ='R' ), - AXE_LONGI =SIMP(statut='o',typ='R' ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - POSI_CURV_LONGI =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - POSI_CURV_CIRC =SIMP(statut='f',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R' ), - SOUS_EPAIS =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ), - NB_ELEM_LONGI =SIMP(statut='o',typ='I' ), - NB_ELEM_CIRC =SIMP(statut='o',typ='I' ), - EMPREINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - FISS_COUDE =FACT(statut='f', - regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),), - AXIS =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ), - b_axis_non =BLOC(condition = "AXIS == 'NON' ", - LONGUEUR =SIMP(statut='o',typ='R' ), - ), - b_axis_oui =BLOC(condition = "AXIS == 'OUI' ", - LONGUEUR =SIMP(statut='f',typ='R' ), - ), - PROFONDEUR =SIMP(statut='o',typ='R' ), - ABSC_CURV =SIMP(statut='f',typ='R' ), - POSI_ANGUL =SIMP(statut='f',typ='R' ), - FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - ORIEN =SIMP(statut='o',typ='R', - into=(45.,-45.,90.,0.E+0) ), - NB_TRANCHE =SIMP(statut='o',typ='I' ), - NB_SECTEUR =SIMP(statut='o',typ='I' ), - NB_COURONNE =SIMP(statut='o',typ='I' ), - RAYON_TORE =SIMP(statut='f',typ='R' ), - COEF_MULT_RC2 =SIMP(statut='f',typ='R',defaut= 1. ), - COEF_MULT_RC3 =SIMP(statut='f',typ='R' ), - ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.5 ), - ), - - IMPRESSION =FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('FICHIER','UNITE'),), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER", - into=("ASTER","IDEAS","CASTEM") ), - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - FICHIER =SIMP(statut='f',typ='TXM' ), - UNITE =SIMP(statut='f',typ='I' ), - ), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 25/09/2006 AUTEUR MJBHHPE J.L.FLEJOU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES -from Macro.macr_aspic_calc_ops import macr_aspic_calc_ops - -def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,**args): - if MODELE != None:self.type_sdprod(MODELE,modele_sdaster) - if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater) - if CARA_ELEM != None:self.type_sdprod(CARA_ELEM,cara_elem) - if FOND_FISS_1 != None:self.type_sdprod(FOND_FISS_1,fond_fiss) - if FOND_FISS_2 != None:self.type_sdprod(FOND_FISS_2,fond_fiss) - if CHARGE != None:self.type_sdprod(CHARGE,char_meca) - if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther) - return evol_noli - -MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_aspic_calc_prod, - fr="Réalise un calcul prédéfini de piquages sains ou fissurés ainsi que les post-traitements associés ", - UIinfo={"groupes":("Outils métier",)},reentrant='n', - regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),), - - TYPE_MAILLAGE =SIMP(statut='o',typ='TXM', - into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB", - "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ), - - TUBULURE =FACT(statut='o', - TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ), - ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - MODELE =SIMP(statut='f',typ=CO,), - CHAM_MATER =SIMP(statut='f',typ=CO,), - CARA_ELEM =SIMP(statut='f',typ=CO,), - FOND_FISS_1 =SIMP(statut='f',typ=CO,), - FOND_FISS_2 =SIMP(statut='f',typ=CO,), - CHARGE =SIMP(statut='f',typ=CO,), - RESU_THER =SIMP(statut='f',typ=CO,), - - AFFE_MATERIAU =FACT(statut='o',max=3, - regles=(UN_PARMI('TOUT','GROUP_MA'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - GROUP_MA =SIMP(statut='f',typ='TXM',into=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ), - MATER =SIMP(statut='o',typ=mater_sdaster), - TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - RCCM =SIMP(statut='o',typ='TXM',into=("OUI","NON")), - ), - - EQUILIBRE =FACT(statut='o', - NOEUD =SIMP(statut='o',typ=no), - ), - - PRES_REP =FACT(statut='o', - PRES =SIMP(statut='o',typ='R'), - NOEUD =SIMP(statut='f',typ=no), - EFFE_FOND =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - PRES_LEVRE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - - ECHANGE =FACT(statut='f', - COEF_H_TUBU =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - COEF_H_CORP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - TEMP_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - - TORS_CORP =FACT(statut='f',max=6, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - NOEUD =SIMP(statut='o',typ=no), - FX =SIMP(statut='f',typ='R'), - FY =SIMP(statut='f',typ='R'), - FZ =SIMP(statut='f',typ='R'), - MX =SIMP(statut='f',typ='R'), - MY =SIMP(statut='f',typ='R'), - MZ =SIMP(statut='f',typ='R'), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - - TORS_TUBU =FACT(statut='f',max=6, - regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),), - FX =SIMP(statut='f',typ='R'), - FY =SIMP(statut='f',typ='R'), - FZ =SIMP(statut='f',typ='R'), - MX =SIMP(statut='f',typ='R'), - MY =SIMP(statut='f',typ='R'), - MZ =SIMP(statut='f',typ='R'), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - - COMP_INCR =FACT(statut='f', - RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ), - VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut=0), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - - COMP_ELAS =FACT(statut='f', - RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ), - ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ), - RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6), - ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")), - ), - - THETA_3D =FACT(statut='f',max='**', - R_INF =SIMP(statut='o',typ='R'), - R_SUP =SIMP(statut='o',typ='R'), - ), - - OPTION =SIMP(statut='f',typ='TXM',into=("CALC_G_MAX","CALC_G_MAX_LOCAL") ), - BORNES =FACT(statut='f',max='**', - NUME_ORDRE =SIMP(statut='o',typ='I'), - VALE_MIN =SIMP(statut='o',typ='R'), - VALE_MAX =SIMP(statut='o',typ='R'), - ), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - - CONVERGENCE =FACT(statut='d', - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"), - ), - - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut=1), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL","DEPL_CALCULE")), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE")), - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0), - ), - - RECH_LINEAIRE =FACT(statut='d', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-3), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut=3), - ), - - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - SUBD_METHODE =SIMP( statut='f',typ='TXM', - into =("AUCUNE","UNIFORME","EXTRAPOLE"), - defaut="AUCUNE", - fr="Méthode de subdivision des pas de temps en cas de non-convergence" - ), - b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0, - fr="Coefficient multiplicateur de la 1ère subdivision"), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - ), - b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_OPTION =SIMP(statut='f',typ='TXM', - into =("IGNORE_PREMIERES","GARDE_DERNIERES",), - defaut="IGNORE_PREMIERES", - fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"), - SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0, - fr="Les n premières itérations sont ignorées pour l'extrapolation"), - SUBD_ITER_FIN =SIMP(statut='c',typ='I',defaut=8,val_min=3, - fr="Seules les n dernières itérations sont prises pour l'extrapolation"), - SUBD_PAS =SIMP(statut='c',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps en cas divergence"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20, - fr="% itération autorisée en plus"), - ), - # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - ), - - PAS_AZIMUT =SIMP(statut='f',typ='I',defaut=1), - - IMPRESSION =FACT(statut='f', - FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT", - into=("RESULTAT","ASTER","CASTEM","IDEAS")), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - - b_extrac =BLOC(condition="((FORMAT=='IDEAS')or(FORMAT=='CASTEM'))", - fr="extraction d un champ de grandeur", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3, - into=("DEPL","EQUI_ELNO_SIGM","TEMP")), - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - ), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - - TITRE =SIMP(statut='f',typ='TXM'), -) -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE F1BHHAJ J.ANGLES - -from Macro.macr_aspic_mail_ops import macr_aspic_mail_ops - -MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= macr_aspic_mail_ops,sd_prod=maillage_sdaster,reentrant='n', - fr="Engendre le maillage d'un piquage sain ou avec fissure (longue ou courte)", - UIinfo={"groupes":("Outils métier",)}, - - EXEC_MAILLAGE =FACT(statut='o', - LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000")), - UNITE_DATG =SIMP(statut='f',typ='I',defaut=70), - UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19), - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)), - ), - - TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")), - - RAFF_MAIL =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")), - - TUBULURE =FACT(statut='o', - E_BASE =SIMP(statut='o',typ='R'), - DEXT_BASE =SIMP(statut='o',typ='R'), - L_BASE =SIMP(statut='o',typ='R'), - L_CHANF =SIMP(statut='o',typ='R'), - E_TUBU =SIMP(statut='o',typ='R'), - DEXT_TUBU =SIMP(statut='o',typ='R'), - Z_MAX =SIMP(statut='o',typ='R'), - TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")), - L_PENETR =SIMP(statut='f',typ='R',defaut= 0.0E+0), - ), - - SOUDURE =FACT(statut='o', - H_SOUD =SIMP(statut='o',typ='R'), - ANGL_SOUD =SIMP(statut='o',typ='R'), - JEU_SOUD =SIMP(statut='o',typ='R'), - ), - - CORPS =FACT(statut='o', - E_CORP =SIMP(statut='o',typ='R'), - DEXT_CORP =SIMP(statut='o',typ='R'), - X_MAX =SIMP(statut='o',typ='R'), - ), - - FISS_SOUDURE =FACT(statut='f', - TYPE =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")), - AXIS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - PROFONDEUR =SIMP(statut='o',typ='R'), - LONGUEUR =SIMP(statut='f',typ='R'), - AZIMUT =SIMP(statut='o',typ='R'), - RAYON_TORE =SIMP(statut='f',typ='R'), - POSITION =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")), - FISSURE =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")), - LIGA_INT =SIMP(statut='f',typ='R'), - ANGL_OUVERTURE =SIMP(statut='f',typ='R',defaut= 0.0E+0), - COEF_MULT_RC1 =SIMP(statut='f',typ='R'), - COEF_MULT_RC2 =SIMP(statut='f',typ='R'), - COEF_MULT_RC3 =SIMP(statut='f',typ='R'), - NB_TRANCHE =SIMP(statut='f',typ='I'), - NB_SECTEUR =SIMP(statut='f',typ='I'), - NB_COURONNE =SIMP(statut='f',typ='I'), - ), - - IMPRESSION =FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('FICHIER','UNITE'),), - FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")), - - b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas", - VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)), - ), - - b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem", - NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)), - ), - FICHIER =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 25/09/2006 AUTEUR MJBHHPE J.L.FLEJOU -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_cabri_calc_ops import macr_cabri_calc_ops - -def macr_cabri_calc_prod(self,MODELE_THER,MODELE_MECA,CHAM_MATER, - CHAR_THER,CHAR_MECA,RESU_THER,**args): - if MODELE_THER != None: - self.type_sdprod(MODELE_THER,modele_sdaster) - if MODELE_MECA != None: - self.type_sdprod(MODELE_MECA,modele_sdaster) - if RESU_THER != None: - self.type_sdprod(RESU_THER,evol_ther) - if CHAM_MATER != None: - self.type_sdprod(CHAM_MATER,cham_mater) - if CHAR_THER != None: - for m in CHAR_THER: - self.type_sdprod(m['CHARGE'],char_ther) - if CHAR_MECA != None: - for m in CHAR_MECA: - self.type_sdprod(m['CHARGE'],char_meca) - return evol_noli - - -MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC", - op=macr_cabri_calc_ops, - sd_prod=macr_cabri_calc_prod, - fr="Calcul thermo-mécanique d'une jonction boulonnée de tuyauterie", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster,), - AFFE_MATERIAU = FACT(statut='o',max='**', - regles=(UN_PARMI('TOUT','GROUP_MA',),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA = SIMP(statut='f',typ='TXM',into=( - "BRIDE", - "GOUJON", - "ROND", - "ECROU", - "JOINT",) ), - MATER = SIMP(statut='o',typ=mater_sdaster), - TEMP_REF = SIMP(statut='d',typ='R',defaut= 25. ), - ), - CHAM_MATER = SIMP(statut = 'f',typ=CO,), - MODELE_THER= SIMP(statut = 'f',typ=CO,), - - DEFI_CHAR_THER = FACT(statut ='d', - TEMP_INIT = SIMP(statut='d',typ='R',defaut= 25.,), - COEF_H_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - TEMP_EXT_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - COEF_H_AIR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - TEMP_EXT_AIR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - CHAR_THER = FACT(statut = 'f',max=4, - CHARGE = SIMP(statut='o',typ=CO), - TYPE = SIMP(statut='o',typ='TXM', - into=("BRIDE_FLUIDE","BRIDE_AIR","ECROU_GOUJON", - "BRIDE_JOINT"),) - ), - - RESU_THER = SIMP(statut = 'f',typ=CO,), - - - MODELE_MECA= SIMP(statut = 'f',typ=CO,), - - DEFI_CHAR_MECA = FACT(statut='o', - PRETENS = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - PRES_REP = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - EFFE_FOND = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),), - ), - - CHAR_MECA = FACT(statut = 'f',max=11, - CHARGE = SIMP(statut='o',typ=CO), - TYPE = SIMP(statut='o',typ='TXM', - into=("BLOC_BAS_GOUJ","BLOC_BAS_JOINT", - "BLOC_LAT_ALES","BLOC_LAT_NALES", - "PLAN_TUBE", - "PRES_FLU","EFFET_FOND", - "CONT_JOINT", - "DEFO_THER", - "SERR_ECROU_1","SERR_ECROU_2",),) - ), - - RELATION = SIMP(statut='f',typ='TXM', - into=('VMIS_ISOT_TRAC','ELAS','ELAS_VMIS_TRAC',),), - - SOLVEUR = FACT(statut='d', - METHODE = SIMP(statut='d',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT",) ), - b_mult_front = BLOC(condition = "METHODE == 'MULT_FRONT' ", - fr="Paramètres de la méthode multi frontale", - RENUM = SIMP(statut='d',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - NPREC = SIMP(statut='d',typ='I',defaut=8), - STOP_SINGULIER = SIMP(statut='d',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - ), - INCREMENT = FACT(statut='f', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - SUBD_METHODE =SIMP( statut='f',typ='TXM', - into =("AUCUNE","UNIFORME","EXTRAPOLE"), - defaut="AUCUNE", - fr="Méthode de subdivision des pas de temps en cas de non-convergence" - ), - b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0, - fr="Coefficient multiplicateur de la 1ère subdivision"), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - ), - b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_OPTION =SIMP(statut='f',typ='TXM', - into =("IGNORE_PREMIERES","GARDE_DERNIERES",), - defaut="IGNORE_PREMIERES", - fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"), - SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0, - fr="Les n premières itérations sont ignorées pour l'extrapolation"), - SUBD_ITER_FIN =SIMP(statut='c',typ='I',defaut=8,val_min=3, - fr="Seules les n dernières itérations sont prises pour l'extrapolation"), - SUBD_PAS =SIMP(statut='c',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps en cas divergence"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20, - fr="% itération autorisée en plus"), - ), - # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',), - NOM_CMP =SIMP(statut='f',typ='TXM',), - VALE =SIMP(statut='f',typ='R'), - ), - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE", - into=("IMPLICITE",)), - CONVERGENCE =FACT(statut='d', - regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), - SIGM_REFE =SIMP(statut='f',typ='R'), - EPSI_REFE =SIMP(statut='f',typ='R'), - FLUX_THER_REFE =SIMP(statut='f',typ='R'), - RESI_REFE_RELA =SIMP(statut='f',typ='R'), - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ), - ); - -#& MODIF COMMANDE DATE 07/02/2005 AUTEUR MABBAS M.ABBAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_cabri_mail_ops import macr_cabri_mail_ops - -MACR_CABRI_MAIL=MACRO(nom="MACR_CABRI_MAIL", - op=macr_cabri_mail_ops, - sd_prod=maillage_sdaster, - fr="maillage d'une jonction boulonnée de tuyauterie", - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - EXEC_MAILLAGE = FACT(statut='o', - LOGICIEL = SIMP(statut = 'o',typ='TXM',into=("GIBI2000",),), - UNITE_DATG = SIMP(statut = 'f',typ='I',defaut=70,), - UNITE_MGIB = SIMP(statut = 'f',typ='I',defaut=19,), - NIVE_GIBI = SIMP(statut = 'f',typ='I',defaut=10, - into = (3,4,5,6,7,8,9,10,11), - ), - ), - RAFF_MAILLAGE = FACT(statut = 'd', - NB_RADIAL = SIMP(statut = 'f',typ='I',defaut=2,), - NB_CIRCONF = SIMP(statut = 'f',typ='I',defaut=3,), - NB_VERTICAL = SIMP(statut = 'f',typ='I',defaut=6,), - NB_ALESAGE = SIMP(statut = 'f',typ='I',defaut=5,), - ), - VERI_MAIL = FACT(statut='d', - VERIF = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - APLAT = SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ), - GEOM_BRID = FACT(statut = 'o', - NORME = SIMP(statut = 'o',typ='TXM',into=("OUI","NON"),), - b_bride_iso = BLOC(condition = "NORME == 'OUI'", - TYPE = SIMP(statut='o',typ='TXM', - into=('A','AA','B','B1','C','D','D1','E','F', - 'FF','G','GG','H','H1','I','J','J1', - 'K','L','L1','M','N','O','P','S','T','W'), - ), - ), - b_bride_niso = BLOC(condition = "NORME == 'NON'", - TUBU_D_EXT = SIMP(statut='o',typ='R',), - TUBU_H = SIMP(statut='o',typ='R',), - BRID_D_EXT = SIMP(statut='o',typ='R',), - BRID_D_INT = SIMP(statut='o',typ='R',), - BRID_H = SIMP(statut='o',typ='R',), - BRID_D_CONGE = SIMP(statut='o',typ='R',), - BRID_R_CONGE = SIMP(statut='o',typ='R',), - BRID_D_EPAUL = SIMP(statut='o',typ='R',), - BRID_H_EPAUL = SIMP(statut='o',typ='R',), - BRID_D_ALESAG = SIMP(statut='o',typ='R',), - BRID_P_ALESAG = SIMP(statut='o',typ='R',), - BRID_H_ALESAG = SIMP(statut='o',typ='R',), - GOUJ_N_GOUJON = SIMP(statut='o',typ='I',), - GOUJ_D_GOUJON = SIMP(statut='o',typ='R',), - GOUJ_E_FILET = SIMP(statut='o',typ='R',), - GOUJ_D_RONDEL = SIMP(statut='o',typ='R',), - GOUJ_E_RONDEL = SIMP(statut='o',typ='R',), - GOUJ_D_ECROU = SIMP(statut='o',typ='R',), - GOUJ_E_ECROU = SIMP(statut='o',typ='R',), - ETAN_E_JOINT = SIMP(statut='o',typ='R',), - ), - ), - IMPRESSION = FACT(statut='d', - UNITE = SIMP(statut='f',typ='I'), - FORMAT = SIMP(statut='f',typ='TXM',defaut="ASTER", - into=("ASTER","CASTEM","IDEAS"), - ), - b_impr_castem = BLOC(condition = "FORMAT == 'CASTEM'", - NIVE_GIBI = SIMP(statut='f',typ='I',defaut=10,into=(3,10),), - ), - b_impr_ideas = BLOC(condition = "FORMAT == 'IDEAS'", - VERSION = SIMP(statut='f',typ='I',defaut=5,into=(4,5),), - ), - ), - ); - -#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX - -from Macro.macr_cara_poutre_ops import macr_cara_poutre_ops - -MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=table_sdaster, - reentrant='n', - UIinfo={"groupes":("Modélisation",)}, - fr="Calculer les caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section", - regles=(EXCLUS('SYME_X','GROUP_MA_BORD'), - EXCLUS('SYME_Y','GROUP_MA_BORD'),), - - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 20 ), - ORIG_INER =SIMP(statut='f',typ='R',max=3,defaut=(0.E+0,0.E+0), - fr="Point par rapport auquel sont calculées les inerties"), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - - SYME_X =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a x=0"), - SYME_Y =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a y=0"), - - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Calcul des caractéristiques équivalentes a plusieurs sections disjointes"), - - GROUP_MA_BORD =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"), - - b_gma_bord = BLOC( condition = "GROUP_MA_BORD != None", - fr=" calcul des carac. mecaniques", - - NOEUD =SIMP(statut='f',typ=no,max='**', - fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"), - GROUP_MA_INTE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="groupes de mailles linéiques bordant des trous dans la section"), - ), - - b_reseau = BLOC( condition ="""(GROUP_MA_BORD != None) and (GROUP_MA != None)""", - fr=" calcul des coef de cisaillement équivalents a un reseau de poutres", - regles=(ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,), - LONGUEUR =SIMP(statut='f',typ='R',fr="Longueur du réseau de poutres"), - MATERIAU =SIMP(statut='f',typ=mater_sdaster,fr="Materiau elastique lineaire du reseau"), - LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT"), - fr="type de conditions aux limites sur le plancher supérieur" ), - ), - ) -#& MODIF COMMANDE DATE 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 31/10/2006 AUTEUR A3BHHAE H.ANDRIAMBOLOLONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Définition d'un macro-élément pour l'analyse statique par sous-structuration", - regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'), - ENSEMBLE('DEFINITION','EXTERIEUR'),), - DEFINITION =FACT(statut='f', - regles=(PRESENT_PRESENT('PROJ_MESU','MODE_MESURE'),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHAR_MACR_ELEM =SIMP(statut='f',typ=char_meca), - INST =SIMP(statut='f',typ='R',defaut=0.0E+0 ), - NMAX_CAS =SIMP(statut='f',typ='I',defaut=10), - NMAX_CHAR =SIMP(statut='f',typ='I',defaut=10), - PROJ_MESU =SIMP(statut='f',typ=(mode_gene,tran_gene,harm_gene),max=1), - MODE_MESURE =SIMP(statut='f',typ=( mode_meca,base_modale) ), - ), - EXTERIEUR =FACT(statut='f', - regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - ), - RIGI_MECA =FACT(statut='f', - ), - MASS_MECA =FACT(statut='f', - ), - CAS_CHARGE =FACT(statut='f',max='**', - NOM_CAS =SIMP(statut='o',typ='TXM'), - SUIV =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - INST =SIMP(statut='f',typ='R',defaut=0.E+0), - ), - -) ; -#& MODIF COMMANDE DATE 27/11/2006 AUTEUR GNICOLAS G.NICOLAS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS - -from Macro.macr_fiabilite_ops import macr_fiabilite_ops - -# -#==== -# 1. Le retour : une liste de rééls. -#==== -# -def macr_fiabilite_prod ( self , **args ): - return listr8_sdaster -# -#==== -# 2. L'entete -#==== -# -MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops, - docu="U7.03.31",UIinfo={"groupe":("Post traitements",)}, - sd_prod=macr_fiabilite_prod, - fr="Calcule les probabiltés de dépassement de seuil (mécanique de fiabilité).", - ang="Fiability mechanics.", -# -#==== -# 3. Le niveau d'information -#==== -# - INFO = SIMP(statut="f",typ="I",defaut=1,into=(1,2)), -# -#==== -# 4. Nom et Version du logiciel de fiabilité -#==== -# - LOGICIEL = SIMP(statut="f",typ="TXM",defaut="MEFISTO", - into=("MEFISTO",), - fr="Nom du logiciel de fiabilité.", - ang="Fiability software name."), -# - VERSION = SIMP(statut="f",typ="TXM",defaut="V3_2", - into=("V3_2", "V3_N"), - fr="Version du logiciel de fiabilité.", - ang="Fiability software release."), -# -#==== -# 5. Les entrees-sorties du calcul ASTER déterministe -#==== -# -# 5.1. ==> Le jeu de commandes déterministe -# - UNITE_ESCL = SIMP(statut="o",typ="I", - fr="Unité logique associée aux commandes du calcul ASTER déterministe.", - ang="Logical unit for the commands of the ASTER deterministic calculation."), -# -# 5.2. ==> Le destin des messages produits par ASTER -# - MESS_ASTER = SIMP(statut="f",typ="TXM",defaut="DERNIER", - into=("AUCUN", "DERNIER", "TOUS"), - fr="Quels messages ASTER récupérer.", - ang="Which ASTER messages must be kept."), -# -#==== -# 6. Options -#==== -# 6.1. ==> Générales -# -# 6.1.1. ==> La valeur du seuil -# - SEUIL = SIMP(statut="o",typ="R",max=1, - fr="Le seuil de défaillance.", - ang="Failure threshold."), -# -# 6.1.2. ==> Le type du seuil : on a deux cas de figure selon que -# la défaillance a lieu au dessus d'un seuil maximum ou -# en dessous d'un seuil minimum -# - SEUIL_TYPE = SIMP(statut="o",typ="TXM",max=1, - into=("MINIMUM","MAXIMUM"), - fr="Que faut-il ne pas dépasser : un maximum ou un minimum.", - ang="What is the failure threshold : maximum or minimum."), -# -# 6.2. ==> Pour MEFISTO -# -### en attente de résolution de AL 2004-006 (1/2) b_mefisto=BLOC( condition = "LOGICIEL=='MEFISTO'", -# -# 6.2.1. ==> Pilotage de la recherche du point de conception -# - RECH_PT_CONCEPT = SIMP(statut="f",typ="TXM",defaut="OUI", - into=("OUI","NON"), - fr="Pour trouver le point de conception.", - ang="To find the design point."), -# - b_rech_pt_concept=BLOC( condition = "RECH_PT_CONCEPT=='OUI'", -# - EPSILON_U = SIMP(statut="f",typ="R",defaut=1.0E-2, - fr="Précision du test d'arret sur les points itératifs dans l'espace standard.", - ang="Precision of stop test for iterative points in standard space."), -# - EPSILON_G = SIMP(statut="f",typ="R",defaut=1.0E-2, - fr="Précision du test d'arret sur la proximité de la surface d'état limite.", - ang="Precision of stop test for limit state surface."), -# - TAU = SIMP(statut="f",typ="R",defaut=5.0E-1, - fr="Paramètre de la méthode de minimisation.", - ang="Parameter for the minimization method."), -# - OMEGA = SIMP(statut="f",typ="R",defaut=1.0E-4, - fr="Paramètre de la méthode de minimisation.", - ang="Parameter for the minimization method."), -# - ITER_MAX = SIMP(statut="f",typ="I",defaut=50, - fr="Nombre maximum d'itérations.", - ang="Maximum number of iterations."), - ), -# -# 6.2.2. ==> Méthode(s) employée(s) pour la probabilité de défaillance -# - METHODE_FORM = SIMP(statut="f",typ="TXM",defaut="OUI", - into=("OUI","NON"), - fr="Recherche de la probabilité de défaillance avec la méthode FORM.", - ang="Research of failure probability with FORM method."), -# - METHODE_SORM = SIMP(statut="f",typ="TXM",defaut="NON", - into=("OUI","NON"), - fr="Recherche de la probabilité de défaillance avec la méthode SORM.", - ang="Research of failure probability with SORM method."), -# - TIRAGE_IMPORTANCE = SIMP(statut="f",typ="TXM",defaut="NON", - into=("OUI","NON"), - fr="Recherche de la probabilité de défaillance avec le tirage d'importance.", - ang="Research of failure probability with ."), -# - b_tirage_importance=BLOC( condition = "TIRAGE_IMPORTANCE=='OUI'", -# - NB_SIMULATION = SIMP(statut="f",typ="I",defaut=3, - fr="Nombre de simulations pour le tirage d'importance.", - ang="Number of simulation for."), -# - ), -# -# 6.2.3. ==> Création d'une surface de réponse polynomiale -# - POLYNOME_TAYLOR = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),), - HGRAD = SIMP(statut="f",typ="R",defaut=1.0E-2, - fr="Pas incrémental pour le calcul des gradients.", - ang="Step for calculation of gradients."), - HHESS = SIMP(statut="f",typ="R",defaut=1.0E-2, - fr="Pas incrémental pour le calcul des dérivées secondes.", - ang="Step for calculation of second derivatives."), -# -# 6.2.4. ==> Recherche d'un plan d'expérience -# - PLAN_EXPERIENCE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), - fr="Construction d'un plan d'expérience.", - ang="Construction of an experiment plan."), -# - b_plan_experience=BLOC( condition = "PLAN_EXPERIENCE=='OUI'", -# - ALPHA = SIMP(statut="f",typ="R",defaut=2.0E-1, - fr="Plan d'expérience : maille du plan de type composite centré.", - ang="Experiment plane : mesh centered composite."), -# - BETA = SIMP(statut="f",typ="R",defaut=4.0E-1, - fr="Plan d'expérience : maille du plan de type factoriel.", - ang="Experiment plane : mesh factor."), -# - ), -# -# 6.2.5. ==> Les tests -# 6.2.5.1. ==> Test de la sphere -# - T_SPHERE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), - fr="Test de la sphère.", - ang="Sphere test."), -# - b_test_de_la_sphere=BLOC( condition = "T_SPHERE=='OUI'", -# - METHODE_TEST = SIMP(statut="f",typ="TXM",defaut="GAUSSIENNE", - into=("GAUSSIENNE","PARAMETRIQUE","REJECTION"), - fr="Type de méthode.", - ang="Method."), -# - NB_POINT = SIMP(statut="f",typ="I",max=1,defaut=60, - fr="Nombre de points de la sphere.", - ang="Number of points over the sphere.") - ), -# -# 6.2.5.2. ==> Test du maximum fort -# - T_MAXIMUM_FORT = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), - fr="Test du maximum fort.", - ang="Strong maximum test."), -# - b_test_du_maximum_fort=BLOC( condition = "T_MAXIMUM_FORT=='OUI'", -# - COS_LIM = SIMP(statut="f",typ="R",max=1,defaut=1.0, - fr="Cosinus de l'angle d'exclusion.", - ang="Cosine of angle of exclusion."), -# - DPROB = SIMP(statut="f",typ="R",max=1,defaut=4.3E-1, - fr="Fraction d'iso-densité de probabilité de défaillance.", - ang="Fraction.") -# - ), -# -# 6.2.5.3. ==> Test du hessien -# - T_HESSIEN = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"), - fr="Test du hessien.", - ang="Hessian test."), -# -# 6.2.6. ==> Les correlations entre les variables -# - MATRICE = SIMP(statut="f",typ="R",max="**", - fr="Matrice de corrélation entre les variables.", - ang="Correlation matrix."), -# -### en attente de résolution de AL 2004-006 (2/2) ), -# -#==== -# 7. Definition des paramètres -#==== -# - VARIABLE = FACT(statut="o",min=1,max="**", -# -# 7.1. ==> Nom de la variable -# - NOM = SIMP(statut="o",typ="TXM", - fr="Nom de la variable, identique au nom de concept PARA_SENSI.", - ang="Name of the variable, identical to the name of the PARA_SENSI conceipt."), -# -# 7.2. ==> Loi de distribution -# - LOI = SIMP(statut="o",typ="TXM", - into=("UNIFORME","NORMALE","LOGNORMALE","NORMALE_TRONQUEE"), - fr="Choix de la loi", - ang="Law."), -# -# 7.2.1. ==> Loi normale -# - b_normale=BLOC(condition="LOI=='NORMALE'", -# - VALE_MOY = SIMP(statut="o",typ="R",max=1, - fr="Valeur moyenne.", - ang="Mean value."), -# - ECART_TYPE = SIMP(statut="o",typ="R",max=1, - fr="Ecart type.", - ang="Standard deviation."), -# - ), -# -# 7.2.2. ==> Loi lognormale -# - b_lognormale=BLOC(condition="LOI=='LOGNORMALE'", -# - VALE_MIN = SIMP(statut="o",typ="R",max=1, - fr="Valeur minimale.", - ang="Minimal value."), -# - VALE_MOY = SIMP(statut="f",typ="R",max=1, - fr="Valeur moyenne dans l'espace de la loi normale.", - ang="Mean value in the space of the normal law."), -# - ECART_TYPE = SIMP(statut="f",typ="R",max=1, - fr="Ecart type dans l'espace de la loi normale.", - ang="Standard deviation in the space of the normal law."), -# - VALE_MOY_PHY = SIMP(statut="f",typ="R",max=1, - fr="Valeur moyenne dans l'espace physique.", - ang="Mean value in the physical space."), -# - ECART_TYPE_PHY = SIMP(statut="f",typ="R",max=1, - fr="Ecart type dans l'espace physique.", - ang="Standard deviation in the physical space."), -# - regles=(AU_MOINS_UN("VALE_MOY" ,"VALE_MOY_PHY"), - AU_MOINS_UN("ECART_TYPE","ECART_TYPE_PHY"), - EXCLUS ("VALE_MOY" ,"VALE_MOY_PHY"), - EXCLUS ("VALE_MOY" ,"ECART_TYPE_PHY"), - EXCLUS ("ECART_TYPE","VALE_MOY_PHY"), - EXCLUS ("ECART_TYPE","ECART_TYPE_PHY")), -# - ), -# -# 7.2.3. ==> Loi uniforme -# - b_uniforme=BLOC(condition="LOI=='UNIFORME'", -# - VALE_MIN = SIMP(statut="o",typ="R",max=1, - fr="Valeur minimale.", - ang="Minimal value."), -# - VALE_MAX = SIMP(statut="o",typ="R",max=1, - fr="Valeur maximale.", - ang="Maximal value."), -# - ), -# -# 7.2.4. ==> Loi normale tronquée -# - b_normale_tronquee=BLOC(condition="LOI=='NORMALE_TRONQUEE'", -# - VALE_MOY = SIMP(statut="o",typ="R",max=1, - fr="Valeur moyenne de la loi normale complète.", - ang="Mean value for the entire normal law."), -# - ECART_TYPE = SIMP(statut="o",typ="R",max=1, - fr="Ecart type de la loi normale complète.", - ang="Standard deviation for the entire normal law."), -# - VALE_MIN = SIMP(statut="o",typ="R",max=1, - fr="Valeur minimale.", - ang="Minimal value."), -# - VALE_MAX = SIMP(statut="o",typ="R",max=1, - fr="Valeur maximale.", - ang="Maximal value."), -# - ), -# -# 7.3. ==> Paramètres de calcul -# 7.3.1. ==> Soit on cherche le point de conception, soit on le connait deja -# - regles=(EXCLUS("POINT_INI","POINT_CONCEPT"), - EXCLUS("POINT_REF","POINT_CONCEPT"),), -# -# 7.3.2. ==> Quand on cherche le point de conception, on peut préciser le départ de l'algorithme. -# Si on ne le fait pas, le programme prendra la valeur moyenne. -# - POINT_INI = SIMP(statut="f",typ="R",max=1, - fr="Point de démarrage de l'algorithme itératif.", - ang="Initial point for iterative process."), -# -# 7.3.3. ==> Quand on cherche le point de conception, on peut préciser un point de référence pour normaliser. -# Si on ne le fait pas, le programme prendra la valeur moyenne. -# - POINT_REF = SIMP(statut="f",typ="R",max=1, - fr="Point de référence de l'algorithme itératif.", - ang="Reference point for iterative process."), -# -# 7.3.4. ==> Quand on cherche uniquement la probabilité de défaillance, il faut donner le point de conception -# - POINT_CONCEPT = SIMP(statut="f",typ="R",max=1, - fr="Point de conception.", - ang="Design point."), -# -# 7.4. ==> Mode d'obtention du gradient par rapport à ce paramètre -# - GRADIENT = SIMP(statut="o",typ="TXM",max=1, - into=("OUI","NON"), - fr="ASTER calcule directement le gradient.", - ang="ASTER computes the gradient for this parameter."), - - b_gradient=BLOC(condition="GRADIENT=='NON'", - INCREMENT = SIMP(statut="o",typ="R",max=1, - fr="Incrément dans la direction.", - ang="Direction increment."), - ), - - ), -# -); -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS - -from Macro.macr_fiab_impr_ops import macr_fiab_impr_ops - -MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops, - docu="U7.04.41",UIinfo={"groupe":("Impression",)}, - fr="Imprimer les valeurs à transmettre au logiciel de fiabilité.", - ang="Print values for the fiability software", -# -# 1. Le niveau d'information -# - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -# -# 2. Impression de la valeur de la cible -# -# 2.1. ==> La table contenant la valeur à imprimer -# - TABLE_CIBLE = SIMP(statut='o',typ=table_sdaster, - fr="Table contenant la valeur cible.", - ang="Table which includes the target value."), -# -# 2.2. ==> Le nom du paramètre associé à la valeur cible dans cette table -# - NOM_PARA_CIBLE = SIMP(statut='o',typ='TXM', - fr="Nom du paramètre associé à la valeur cible.", - ang="Name of the parameter connected to the target value."), -# -# 3. Impressions des valeurs des éventuels gradients -# - GRADIENTS = FACT(statut='f',min=1,max='**', -# -# 3.1. ==> La table contenant la valeur à imprimer -# - TABLE = SIMP(statut='o',typ=table_sdaster, - fr="Table contenant le gradient.", - ang="Table which includes the gradient."), -# -# 3.2. ==> Le paramètre sensible -# - PARA_SENSI = SIMP(statut='o',typ=(para_sensi,theta_geom), - fr="Paramètre sensible associé au gradient.", - ang="Sensitivity parameter connected to the gradient."), -# -# 3.3. ==> Le nom du paramètre associé au gradient dans cette table -# - NOM_PARA = SIMP(statut='o',typ='TXM', - fr="Nom du paramètre associé au gradient.", - ang="Name of the parameter connected to the gradient."), -# - ), -# -); -#& MODIF COMMANDE DATE 30/10/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE GNICOLAS G.NICOLAS - -from Macro.macr_adap_mail_ops import macr_adap_mail_ops - -MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=macr_adap_mail_ops, - docu="U7.03.02-b",UIinfo={"groupe":("Maillage",)}, - fr="Donner des informations sur un maillage.", - ang="To give information about a mesh.", -# -# 1. Le niveau d'information -# - INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -# -# 2. Version de HOMARD -# - VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_5", - into=("V8_5", "V8_N", "V8_N_PERSO"), - fr="Version de HOMARD", - ang="HOMARD release"), -# -# 3. Langue des messages issus de HOMARD -# - LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS", - into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",), - fr="Langue des messages issus de HOMARD.", - ang="Language for HOMARD messages." ), -# -# 4. Le nom du maillage a analyser -# - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster, - fr="Maillage à analyser.", - ang="Mesh to be checked." ), -# -# 5. Suivi d'une frontiere -# - MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster, - fr="Maillage de la frontiere à suivre", - ang="Boundary mesh" ), -# - b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " , - fr="Information complémentaire sur la frontière", - ang="Further information about boundary", -# - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**', - fr="Groupes de mailles définissant la frontière", - ang="Mesh groups which define the boundary" ), -# - ) , -# -# 6. Les options ; par defaut, on controle tout -# 6.1. Nombre de noeuds et elements -# - NOMBRE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Nombre de noeuds et éléments du maillage", - ang="Number of nodes and elements in the mesh" ), -# -# 6.2. Determination de la qualite des elements du maillage -# - QUALITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Qualité du maillage", - ang="Mesh quality" ), -# -# 6.3. Connexite du maillage -# - CONNEXITE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Connexité du maillage.", - ang="Mesh connexity." ), -# -# 6.4. Taille des sous-domaines du maillage -# - TAILLE = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"), - fr="Tailles des sous-domaines du maillage.", - ang="Sizes of mesh sub-domains." ), -# -# 6.5. Controle de la non-interpenetration des elements -# - INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"), - fr="Controle de la non interpénétration des éléments.", - ang="Overlapping checking." ), -# -# 7. Gestion des éléments autres que ceux compatibles avec HOMARD -# "REFUSER" : ils sont refuses (defaut) -# "IGNORER" : ils sont ignorés -# - ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"), - fr="Acceptation d'éléments incompatibles avec HOMARD", - ang="Incompatible elements for HOMARD" ), -) ; -#& MODIF COMMANDE DATE 09/05/2006 AUTEUR GALENNE E.GALENNE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_lign_coupe_ops import macr_lign_coupe_ops - -MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=table_sdaster, - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Extraction des valeurs d'un résultat dans une ou plusieurs tables sur des lignes de coupe définies" - +" par deux points et un intervalle", - 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 ), - 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), - 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 04/04/2006 AUTEUR CIBHHLV L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES - -from Macro.macro_elas_mult_ops import macro_elas_mult_ops - -def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ): - if isinstance(NUME_DDL,CO) : - self.type_sdprod(NUME_DDL,nume_ddl_sdaster) - else: - self.type_sdprod(NUME_DDL,NUME_DDL.__class__) - if CAS_CHARGE[0]['NOM_CAS'] != None : return mult_elas - if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas - raise AsException("type de concept resultat non prevu") - -MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Calculer les réponses statiques linéaires pour différents cas de charges ou modes de Fourier", - regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster,CO)), - CHAR_MECA_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - CHAR_CINE_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)), - CAS_CHARGE =FACT(statut='o',max='**', - regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'), - UN_PARMI('CHAR_MECA','CHAR_CINE','VECT_ASSE'),), - NOM_CAS =SIMP(statut='f',typ='TXM' ), - MODE_FOURIER =SIMP(statut='f',typ='I' ), - TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), - CHAR_MECA =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - CHAR_CINE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'), - OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', - into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL", - "SIGM_ELNO_CART","EFGE_ELNO_CART","DEGE_ELNO_DEPL","EPSI_ELNO_DEPL", - "EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO","EPSP_ELGA", - "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC", - "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI", - "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA", - "ERZ2_ELEM_SIGM","VNOR_ELEM_DEPL","ERRE_ELNO_ELEM","SIRE_ELNO_DEPL", - "ERRE_ELEM_SIGM","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI", - "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM", - "EQUI_ELGA_EPSI","FORC_NODA","REAC_NODA","EPSI_NOEU_DEPL","SIGM_NOEU_DEPL", - "EFGE_NOEU_DEPL","EQUI_NOEU_SIGM","EQUI_NOEU_EPSI","FLUX_NOEU_TEMP") ), - NUME_COUCHE =SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")), - SOUS_TITRE =SIMP(statut='f',typ='TXM',max='**'), - VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ), - b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ", - fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_matr_ajou_ops import macro_matr_ajou_ops - -def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args): - self.type_sdprod(MATR_AMOR_AJOU,matr_asse_gene_r) - self.type_sdprod(MATR_MASS_AJOU,matr_asse_gene_r) - self.type_sdprod(MATR_RIGI_AJOU,matr_asse_gene_r) - if FORC_AJOU != None: - for m in FORC_AJOU: - self.type_sdprod(m['VECTEUR'],vect_asse_gene) - - return None - -MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro_matr_ajou_prod, - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Calculer de facon plus condensée qu'avec CALC_MATR_AJOU des matrices de masse, d'amortissement" - +" ou de rigidité ajoutés", - regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'), - AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'), - EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'), - EXCLUS('MONO_APPUI','MODE_STAT',), - ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster), - GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma), - GROUP_MA_INTERF =SIMP(statut='o',typ=grma), - MODELISATION =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")), - FLUIDE =FACT(statut='o',max='**', - RHO =SIMP(statut='o',typ='R'), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - GROUP_MA =SIMP(statut='f',typ=grma), - MAILLE =SIMP(statut='f',typ=ma), - ), - DDL_IMPO =FACT(statut='o',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO'), - UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - PRES_FLUIDE =SIMP(statut='f',typ='R'), - PRES_SORTIE =SIMP(statut='f',typ='R'), - ), - ECOULEMENT =FACT(statut='f', - GROUP_MA_1 =SIMP(statut='o',typ=grma), - GROUP_MA_2 =SIMP(statut='o',typ=grma), - VNOR_1 =SIMP(statut='o',typ='R'), - VNOR_2 =SIMP(statut='f',typ='R'), - POTENTIEL =SIMP(statut='f',typ=evol_ther), - ), - MODE_MECA =SIMP(statut='f',typ=mode_meca), - DEPL_IMPO =SIMP(statut='f',typ=cham_no_sdaster), - MODELE_GENE =SIMP(statut='f',typ=modele_gene), - NUME_DDL_GENE =SIMP(statut='f',typ=nume_ddl_gene), - DIST_REFE =SIMP(statut='f',typ='R',defaut= 1.0E-2), - MATR_MASS_AJOU =SIMP(statut='f',typ=CO,), - MATR_RIGI_AJOU =SIMP(statut='f',typ=CO,), - MATR_AMOR_AJOU =SIMP(statut='f',typ=CO,), - MONO_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",),), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),), - FORC_AJOU =FACT(statut='f',max='**', - DIRECTION =SIMP(statut='o',typ='R',max=3), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - VECTEUR =SIMP(statut='o',typ=CO), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non iversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), -) -#& MODIF COMMANDE DATE 06/02/2008 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_matr_asse_ops import macro_matr_asse_ops - -def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args): - if not MATR_ASSE: raise AsException("Impossible de typer les concepts resultats") - if not NUME_DDL : raise AsException("Impossible de typer les concepts resultats") - if isinstance(NUME_DDL,CO) : - self.type_sdprod(NUME_DDL,nume_ddl_sdaster) - else: - self.type_sdprod(NUME_DDL,NUME_DDL.__class__) - for m in MATR_ASSE: - opti=m['OPTION'] - - if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" , - "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA", - "AMOR_MECA","IMPE_MECA","MASS_ID_MDEP_R","MASS_ID_MDNS_R", - "ONDE_FLUI","MASS_MECA_DIAG" ) : t=matr_asse_depl_r - - if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c - - if opti in ( "RIGI_THER","MASS_THER","RIGI_THER_CONV" , - "RIGI_THER_CONV_D","MASS_ID_MTEM_R","MASS_ID_MTNS_R",) : t=matr_asse_temp_r - - if opti == "RIGI_MECA_HYST" : t= matr_asse_depl_c - - self.type_sdprod(m['MATRICE'],t) - return None - -MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops, - UIinfo={"groupes":("Matrices/vecteurs",)}, - sd_prod=macro_matr_asse_prod, - fr="Calcul des matrices assemblées (rigidité, masse, amortissement,...) ", - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - INST =SIMP(statut='f',typ='R',defaut=0.), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - CHARGE =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'), - CHAR_CINE =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ), - NUME_DDL =SIMP(statut='o',typ=(nume_ddl_sdaster,CO)), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",), - b_mult_front =BLOC(condition="METHODE=='MULT_FRONT'",fr="Paramètres associés à la méthode multifrontale", - RENUM =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ), - ), - b_ldlt =BLOC(condition="METHODE=='LDLT'",fr="Paramètres associés à la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")), - ), - 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" ), - ), - ), - - MATR_ASSE =FACT(statut='o',max='**', - MATRICE =SIMP(statut='o',typ=CO), - OPTION =SIMP(statut='o',typ='TXM', - into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG", - "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA", - "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU", - "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR", - "RIGI_THER","MASS_THER", - "RIGI_ACOU","MASS_ACOU","AMOR_ACOU", - "MASS_ID_MTEM_R","MASS_ID_MTNS_R","MASS_ID_MDEP_R","MASS_ID_MDNS_R",) - ), - - b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'", - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), - ), - - b_rigi_geom = BLOC( condition = "OPTION=='RIGI_GEOM'", - SIEF_ELGA =SIMP(statut='o',typ=cham_elem), - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), - ), - - b_rigi_meca_lagr = BLOC( condition = "OPTION=='RIGI_MECA_LAGR'", - THETA =SIMP(statut='o',typ=theta_geom), - PROPAGATION =SIMP(statut='f',typ='R'), - ), - - b_rigi_ther = BLOC( condition = "OPTION=='RIGI_THER'", - MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0), - ), - - ), # fin MATR_ASSE - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 28/05/2008 AUTEUR GREFFET N.GREFFET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_miss_3d_ops import macro_miss_3d_ops - -MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops, - fr="Préparation des données puis exécution du logiciel MISS3D", - UIinfo={"groupes":("Matrices/vecteurs",)}, - OPTION =FACT(statut='o', - regles=(UN_PARMI('TOUT','MODULE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",)), - MODULE =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")), - ), - PROJET =SIMP(statut='o',typ='TXM'), - REPERTOIRE =SIMP(statut='f',typ='TXM'), - VERSION =SIMP(statut='f',typ='TXM',into=("V1_3","V1_4",),defaut="V1_4"), - UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25), - UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26), - UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27), - UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30), - UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=0), - PARAMETRE =FACT(statut='f', - regles=(PRESENT_PRESENT('FREQ_MIN','FREQ_MAX','FREQ_PAS'), - PRESENT_PRESENT('CONTR_NB','CONTR_LISTE'), - PRESENT_PRESENT('LFREQ_NB','LFREQ_LISTE'), - PRESENT_PRESENT('OFFSET_MAX','OFFSET_NB'), - PRESENT_PRESENT('SPEC_MAX','SPEC_NB'),), - FREQ_MIN =SIMP(statut='f',typ='R'), - FREQ_MAX =SIMP(statut='f',typ='R'), - FREQ_PAS =SIMP(statut='f',typ='R'), - Z0 =SIMP(statut='f',typ='R'), - SURF =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"), - RFIC =SIMP(statut='f',typ='R'), - FICH_RESU_IMPE =SIMP(statut='f',typ='TXM'), - FICH_RESU_FORC =SIMP(statut='f',typ='TXM'), - TYPE =SIMP(statut='f',typ='TXM',into=("BINAIRE","ASCII",),defaut="ASCII"), - DREF =SIMP(statut='f',typ='R'), - ALGO =SIMP(statut='f',typ='TXM',into=("DEPL","REGU")), - OFFSET_MAX =SIMP(statut='f',typ='R'), - OFFSET_NB =SIMP(statut='f',typ='I'), - SPEC_MAX =SIMP(statut='f',typ='R'), - SPEC_NB =SIMP(statut='f',typ='I'), - ISSF =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"), - FICH_POST_TRAI =SIMP(statut='f',typ='TXM'), - CONTR_NB =SIMP(statut='f',typ='I'), - CONTR_LISTE =SIMP(statut='f',typ='R',max='**'), - LFREQ_NB =SIMP(statut='f',typ='I'), - LFREQ_LISTE =SIMP(statut='f',typ='R',max='**'), - ), -) ; -#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -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=table_sdaster), - NORME =SIMP(statut='f',typ='TXM',defaut="TRAN_ROTA", - into=("MASS_GENE","RIGI_GENE","EUCL", - "EUCL_TRAN","TRAN","TRAN_ROTA") ), - INFO =SIMP(statut='f',typ='I',defaut= 1 ,into=(1,2) ), - ), - FILTRE_MODE =FACT(statut='f', - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", - into=("MASS_EFFE_UN","MASS_GENE") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - IMPRESSION =FACT(statut='d', - TOUT_PARA =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - CUMUL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN", - into=("MASS_EFFE_UN","MASS_GENE",) ), - ), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macro_proj_base_ops import macro_proj_base_ops - -def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args ): - if MATR_ASSE_GENE != None: - for m in MATR_ASSE_GENE: - self.type_sdprod(m['MATRICE'],matr_asse_gene_r) - if VECT_ASSE_GENE != None: - for v in VECT_ASSE_GENE: - self.type_sdprod(v['VECTEUR'],vect_asse_gene) - return None - -MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops, - regles=(AU_MOINS_UN('MATR_ASSE_GENE','VECT_ASSE_GENE')), - UIinfo={"groupes":("Matrices/vecteurs",)}, - sd_prod=macro_proj_base_prod, - fr="Projection des matrices et/ou vecteurs assemblés sur une base (modale ou de RITZ)", - BASE =SIMP(statut='o',typ=(mode_meca,mode_stat,base_modale,mode_gene) ), - NB_VECT =SIMP(statut='f',typ='I',defaut= 9999), - PROFIL =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ), - MATR_ASSE_GENE =FACT(statut='f',max='**', - MATRICE =SIMP(statut='o',typ=CO,), - regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE',),), - MATR_ASSE =SIMP(statut='f',typ=matr_asse_depl_r), - MATR_ASSE_GENE =SIMP(statut='f',typ=matr_asse_gene_r), - ), - VECT_ASSE_GENE =FACT(statut='f',max='**', - VECTEUR =SIMP(statut='o',typ=CO,), - regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE',),), - TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), - VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), - VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene), - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 31/10/2006 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_recal_ops import macr_recal_ops - -def macr_recal_prod(self,**args ): - return listr8_sdaster - -MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops, - UIinfo={"groupes":("Résultats et champs",)}, - sd_prod=macr_recal_prod, - fr="Réalise le recalage des calculs Aster sur des résultats expérimentaux" - +" ou sur d'autres résultats de calculs", - UNITE_ESCL =SIMP(statut='o',typ='I'), - RESU_EXP =SIMP(statut='o',typ=assd,max='**'), - POIDS =SIMP(statut='f',typ=assd,max='**'), - RESU_CALC =SIMP(statut='o',typ=assd,max='**'), - LIST_PARA =SIMP(statut='o',typ=assd,max='**'), - LIST_DERIV =SIMP(statut='f',typ=assd,max='**'), - ITER_MAXI =SIMP(statut='f',typ='I',defaut=10), - ITER_FONC_MAXI =SIMP(statut='f',typ='I',defaut=100), - RESI_GLOB_RELA =SIMP(statut='f',typ='R',defaut=1.E-3), - UNITE_RESU =SIMP(statut='f',typ='I',defaut=91), - PARA_DIFF_FINI =SIMP(statut='f',typ='R',defaut=0.001), -# GRAPHIQUE =FACT(statut='d', - GRAPHIQUE =FACT(statut='f', - 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")), - AFFICHAGE =SIMP(statut='f',typ='TXM',defaut='TOUTE_ITERATION',into=("TOUTE_ITERATION","ITERATION_FINALE")),), - SUIVI_ESCLAVE =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON"),), - - METHODE =SIMP(statut='f',typ='TXM',defaut='LEVENBERG',into=("LEVENBERG","FMIN","FMINBFGS","FMINNCG","EXTERNE")), - - b_gradient =BLOC(condition = "METHODE == 'FMINBFGS' or METHODE == 'FMINNCG'" , - GRADIENT =SIMP(statut='f',typ='TXM',defaut='NON_CALCULE', into=("NON_CALCULE", "NORMAL", "ADIMENSIONNE" )), - ), - - b_gradient_externe =BLOC(condition = "METHODE == 'EXTERNE'" , - GRADIENT =SIMP(statut='f',typ='TXM',defaut='NON_CALCULE', into=("NON_CALCULE", "NORMAL", "ADIMENSIONNE" )), - ), - - b_type_fonctionnelle =BLOC(condition = "METHODE == 'EXTERNE'" , - FONCTIONNELLE =SIMP(statut='f',typ='TXM',defaut='SCALAIRE',into=("SCALAIRE","VECTORIELLE")), - ), - - INFO =SIMP(statut='f',typ='I',defaut=2,into=( 1, 2 ) ), -); -#& MODIF COMMANDE DATE 09/01/2007 AUTEUR VIVAN L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.macr_spectre_ops import macr_spectre_ops - -MACR_SPECTRE=MACRO(nom="MACR_SPECTRE",op=macr_spectre_ops,sd_prod=table_sdaster, - reentrant='n', UIinfo={"groupes":("Outils métier",)}, - fr="calcul de spectre, post-traitement de séisme", - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster,), - PLANCHER =FACT(statut='o',max='**', - regles=(AU_MOINS_UN('NOEUD','GROUP_NO' ),), - NOM =SIMP(statut='o',typ='TXM',), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), ), - NOM_CHAM =SIMP(statut='o',typ='TXM' ,into=('ACCE','DEPL')), - CALCUL =SIMP(statut='o',typ='TXM' ,into=('ABSOLU','RELATIF'),position='global'), - b_acce =BLOC( condition = "NOM_CHAM=='ACCE'", - regles=(UN_PARMI('LIST_FREQ','FREQ'),), - AMOR_SPEC =SIMP(statut='o',typ='R',max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',max='**'), - NORME =SIMP(statut='o',typ='R'), - RESU =FACT(statut='o',max='**', - regles=(UN_PARMI('RESU_GENE','RESULTAT'),), - RESU_GENE =SIMP(statut='f',typ=tran_gene), - RESULTAT =SIMP(statut='f',typ=(dyna_trans,evol_noli)), - b_calc =BLOC( condition = "CALCUL=='RELATIF'", - ACCE_X =SIMP(statut='o',typ=fonction_sdaster), - ACCE_Y =SIMP(statut='o',typ=fonction_sdaster), - ACCE_Z =SIMP(statut='o',typ=fonction_sdaster),), ), - IMPRESSION =FACT(statut='f', - TRI =SIMP(statut='f',typ='TXM',defaut='AMOR_SPEC',into=("AMOR_SPEC","DIRECTION",),), - FORMAT =SIMP(statut='f',typ='TXM',defaut='TABLEAU',into=("TABLEAU","XMGRACE",),), - UNITE =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"), - b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'", - PILOTE =SIMP(statut='f',typ='TXM',defaut='', - into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),),), - TOUT =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON",),), - ), - ), - b_depl =BLOC( condition = "NOM_CHAM=='DEPL'", - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - RESU =FACT(statut='o',max=3, - regles=(UN_PARMI('RESU_GENE','RESULTAT'),), - RESU_GENE =SIMP(statut='f',typ=tran_gene), - RESULTAT =SIMP(statut='f',typ=(dyna_trans,evol_noli)), - b_calc =BLOC( condition = "CALCUL=='ABSOLU'", - DEPL_X =SIMP(statut='o',typ=fonction_sdaster), - DEPL_Y =SIMP(statut='o',typ=fonction_sdaster), - DEPL_Z =SIMP(statut='o',typ=fonction_sdaster),),), - ), -) -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MAJ_CATA=PROC(nom="MAJ_CATA",op=20, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Compilation des catalogues de commandes et d'éléments", - - ELEMENT =FACT(statut='f',), - -) ; -#& MODIF COMMANDE DATE 12/06/2006 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',), - CONCEPT_SENSIBLE('ENSEMBLE'),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater, - fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)", - ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"), - CARA_ELEM =SIMP(statut='f',typ=cara_elem, - fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...", - ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ), - ), - INST =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST_FIN =SIMP(statut='f',typ='R'), - OPTION =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA_DEPL","SANS"),defaut="SIEF_ELGA_DEPL",max=1, - fr="seule option : contraintes aux points de Gauss. Utiliser CALC_ELEM pour les autres.", - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","FETI","MUMPS") ), - - b_feti =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1", - PARTITION =SIMP(statut='o',typ=sd_feti_sdaster), - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.), - NMAX_ITER =SIMP(statut='f',typ='I',defaut=0,val_min=0), - TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ), - NB_REORTHO_DD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ), - SCALING =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ), - VERIF_SDFETI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - TEST_CONTINU =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.), - INFO_FETI =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'), - STOCKAGE_GI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ), - NB_SD_PROC0 =SIMP(statut='f',typ='I',defaut=0,val_min=0), - ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' or METHODE == 'FETI' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut=8), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")), - SCALING =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=80,), - 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 10/05/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ): - if TYPE_RESU == "MODE_FLAMB" : return mode_flamb - if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c - if AsType(MATR_A) == matr_asse_depl_r : return mode_meca - if AsType(MATR_A) == matr_asse_pres_r : return mode_acou - if AsType(MATR_A) == matr_asse_gene_r : return mode_gene - raise AsException("type de concept resultat non prevu") - -MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op= 44,sd_prod=mode_iter_inv_prod - ,fr="Calcul des modes propres par itérations inverses ; valeurs propres et modes réels ou complexes", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), - MATR_A =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_B =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ), - MATR_C =SIMP(statut='f',typ=matr_asse_depl_r ), - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE", - into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ), - b_dynam =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'", - CALC_FREQ =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres", - - OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), - fr="Choix de l option pour estimer les valeurs propres" ), - FREQ =SIMP(statut='o',typ='R',max='**'), - AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ), - NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ), - NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=0 ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ), - - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ), - ), - ), - b_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'", - CALC_FREQ =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres", - - OPTION =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"), - fr="Choix de l option pour estimer les valeurs propres" ), - CHAR_CRIT =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ), - NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ), - NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ), - PREC_SEPARE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ), - NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ), - PREC_AJUSTE =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ), - - NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ), - NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ), - PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ), - SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ), - ), - ), - CALC_MODE =FACT(statut='d',min=0,fr="Choix des paramètres pour le calcul des vecteurs propres", - OPTION =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ), - PREC =SIMP(statut='f',typ='R',defaut= 1.E-5,val_min=0.E+0,fr="Précision de convergence" ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), - ), - VERI_MODE =FACT(statut='d',min=0, - STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, - fr="Valeur limite admise pour l ereur a posteriori des modes" ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des param\350tres de sensibilit\351.", - ang="List of sensitivity parameters", - ), - b_sensibilite =BLOC(condition = "SENSIBILITE != None", - CHAM_MATER =SIMP(statut='f',typ=cham_mater ), - CARA_ELEM =SIMP(statut='f',typ=cara_elem ), - EXCIT =FACT(statut='f',max='**',), # que pour NMDOME - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), - TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), -) ; -#& MODIF COMMANDE DATE 10/05/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def mode_iter_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",)}, - 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) ), - 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 01/10/2008 AUTEUR MACOCCO K.MACOCCO -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster, - fr="Effectuer des modifications sur un maillage existant: réorienter des mailles servant," - +" à l'application d'une pression, à la modélisation du contact,...", - reentrant='o', - UIinfo={"groupes":("Maillage",)}, - regles=(AU_MOINS_UN('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE', - 'TRANSLATION','ROTATION','MODI_BASE','ECHELLE','ORIE_SHB8','SYMETRIE', - ), - PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('DEFORME','ORIE_FISSURE','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('EQUE_PIQUA','ORIE_FISSURE','DEFORME','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_FISSURE','DEFORME','EQUE_PIQUA', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('ORIE_PEAU_3D','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('ORIE_NORM_COQUE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'PLAQ_TUBE','MODI_MAILLE',), - PRESENT_ABSENT('PLAQ_TUBE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE',), - PRESENT_ABSENT('MODI_MAILLE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D', - 'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE',), - EXCLUS('EQUE_PIQUA','PLAQ_TUBE'), - EXCLUS('EQUE_PIQUA','TUBE_COUDE'), - EXCLUS('ROTATION','MODI_BASE'), - EXCLUS('SYMETRIE','ROTATION'), - EXCLUS('SYMETRIE','TRANSLATION'), - EXCLUS('SYMETRIE','MODI_BASE'), - EXCLUS('SYMETRIE','ECHELLE'), - ), - MAILLAGE =SIMP(statut='o',typ=maillage_sdaster ), - - ORIE_FISSURE =FACT(statut='f', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - - DEFORME =FACT(statut='f', - OPTION =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ), - DEPL =SIMP(statut='o',typ=cham_no_sdaster ), - b_deform =BLOC(condition = "OPTION=='TRAN_APPUI'", - GROUP_NO_APPUI = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ), - GROUP_NO_STRU = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),), - ), - - EQUE_PIQUA =FACT(statut='f', - GROUP_NO =SIMP(statut='o',typ=grno), - E_BASE =SIMP(statut='o',typ='R' ), - DEXT_BASE =SIMP(statut='o',typ='R' ), - L_BASE =SIMP(statut='o',typ='R' ), - L_CHANF =SIMP(statut='o',typ='R' ), - TYPE =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")), - H_SOUD =SIMP(statut='o',typ='R' ), - ANGL_SOUD =SIMP(statut='o',typ='R' ), - JEU_SOUD =SIMP(statut='o',typ='R' ), - E_CORP =SIMP(statut='o',typ='R' ), - DEXT_CORP =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='o',typ='R' ), - RAFF_MAIL =SIMP(statut='o',typ='TXM' ), - X_MAX =SIMP(statut='o',typ='R' ), - ), - ORIE_PEAU_2D =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - ORIE_PEAU_3D =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - ORIE_SHB8 =FACT(statut='f',max=1, - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - ORIE_NORM_COQUE =FACT(statut='f',max='**', - GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - VECT_NORM =SIMP(statut='f',typ='R',max=3), - b_vect_norm =BLOC(condition = "VECT_NORM != None", - regles=UN_PARMI('NOEUD','GROUP_NO'), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - ), - ), - PLAQ_TUBE =FACT(statut='f', - DEXT =SIMP(statut='o',typ='R' ), - EPAIS =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - AZIMUT =SIMP(statut='f',typ='R',defaut= 90. ), - COUTURE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ), - ), - TUBE_COUDE =FACT(statut='f', - ANGLE =SIMP(statut='o',typ='R' ), - R_CINTR =SIMP(statut='o',typ='R' ), - L_TUBE_P1 =SIMP(statut='o',typ='R' ), - ), - MODI_MAILLE =FACT(statut='f',max=1, - regles=(AU_MOINS_UN('GROUP_MA_FOND','MAILLE_FOND','GROUP_NO_FOND','NOEUD_FOND'),), - OPTION =SIMP(statut='o',typ='TXM',into=("NOEUD_QUART",) ), - GROUP_MA_FOND =SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1), - MAILLE_FOND =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max=1), - GROUP_NO_FOND =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1), - NOEUD_FOND =SIMP(statut='f',typ=no ,validators=NoRepeat(),max=1), - ), - MODI_BASE =FACT(statut='f', - VECT_X =SIMP(statut='o',typ='R',min=2,max=3), - VECT_Y =SIMP(statut='f',typ='R',min=2,max=3), - ), - ECHELLE =SIMP(statut='f',typ='R',), - TRANSLATION =SIMP(statut='f',typ='R',min=2,max=3), - ROTATION =FACT(statut='f',max='**', - POIN_1 =SIMP(statut='o',typ='R',min=2,max=3), - ANGL =SIMP(statut='o',typ='R',defaut= 0.E+0 ), - regles=(EXCLUS('DIR','POIN_2'),), - POIN_2 =SIMP(statut='f',typ='R',min=2,max=3), - DIR =SIMP(statut='f',typ='R',min=2,max=3), - ), - SYMETRIE =FACT(statut='f',max='**', - fr = "Symétrie du maillage par rapport à un plan en 3D ou à une droite en 2D.", - POINT =SIMP(statut='o',typ='R',min=2,max=3, - fr="Point appartenant à la droite ou au plan."), - AXE_1 =SIMP(statut='o',typ='R',min=2,max=3, - fr="Vecteur directeur de la droite ou 1er vecteur appartenant au plan."), - AXE_2 =SIMP(statut='f',typ='R',min=3,max=3, - fr="2nd vecteur appartenant du plan."), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 13/06/2006 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.67E-8), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)), - -) ; -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=table_fonction, - fr="Calculer les obstacles dans les systèmes guidage-tube après usure", - reentrant='f', - UIinfo={"groupes":("Modélisation",)}, - regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'), - PRESENT_PRESENT('V_USUR_TUBE','V_USUR_OBST'),), - OBSTACLE =SIMP(statut='f',typ=table_fonction), - GUIDE =SIMP(statut='o',typ=table_sdaster), - CRAYON =SIMP(statut='f',typ=table_sdaster), - TABL_USURE =SIMP(statut='f',typ=table_sdaster), - INST =SIMP(statut='f',typ='R'), - R_MOBILE =SIMP(statut='f',typ='R'), - PERCEMENT =SIMP(statut='f',typ='R',defaut=1), - V_USUR_TUBE =SIMP(statut='f',typ='R',max='**'), - V_USUR_OBST =SIMP(statut='f',typ='R',max='**'), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 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 31/10/2006 AUTEUR A3BHHAE H.ANDRIAMBOLOLONA -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def norm_mode_prod(MODE,**args ): - if AsType(MODE) == mode_meca : return mode_meca - if AsType(MODE) == mode_meca_c : return mode_meca_c - if AsType(MODE) == mode_flamb : return mode_flamb - if AsType(MODE) == base_modale : return base_modale - raise AsException("type de concept resultat non prevu") - -NORM_MODE=OPER(nom="NORM_MODE",op= 37,sd_prod=norm_mode_prod, - fr="Normer des modes propres en fonction d'un critère choisi par l'utilisateur", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'), - CONCEPT_SENSIBLE('SEPARE'), - DERIVABLE('MODE'),), - MODE =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ), - NORME =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...", - into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ), - NOEUD =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"), - b_noeud =BLOC(condition = "NOEUD != None", - NOM_CMP =SIMP(statut='o',typ='TXM' ), - ), - AVEC_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - SANS_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - MASS_INER =SIMP(statut='f',typ=table_sdaster), - MODE_SIGNE =FACT(statut='f',fr="Imposer un signe sur une des composantes des modes", - NOEUD =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"), - NOM_CMP =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ), - SIGNE =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"), - fr="Choix du signe" ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des param\350tres de sensibilit\351.", - ang="List of sensitivity parameters", - ), - b_base =BLOC(condition = "AsType(MODE) == base_modale", - MASSE = SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ), ), - RAIDE = SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ), ), - AMOR = SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), -) ; -#& MODIF COMMANDE DATE 12/06/2006 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 -NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice", - regles=(UN_PARMI('MATR_RIGI','MODELE'),), - MATR_RIGI =SIMP(statut='f',validators=NoRepeat(),max=100, - typ=(matr_elem_depl_r ,matr_elem_depl_c,matr_elem_temp_r ,matr_elem_pres_c) ), - MODELE =SIMP(statut='f',typ=modele_sdaster ), - b_modele =BLOC(condition = "MODELE != None", - CHARGE =SIMP(statut='f',validators=NoRepeat(),max='**',typ=(char_meca,char_ther,char_acou, ),), - ), - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), - b_mult_front =BLOC(condition="METHODE=='MULT_FRONT'",fr="paramètres associés à la méthode multifrontale", - RENUM =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ), - ), - b_ldlt =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")), - ), - 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/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -from Macro.post_dyna_alea_ops import post_dyna_alea_ops - -POST_DYNA_ALEA=MACRO(nom="POST_DYNA_ALEA",op= post_dyna_alea_ops,sd_prod=table_sdaster, - fr="Traitements statistiques de résultats de type interspectre et impression sur fichiers", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),), - INTE_SPEC =SIMP(statut='o',typ=table_fonction), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE_I =SIMP(statut='f',typ='I',max='**' ), - NOEUD_I =SIMP(statut='f',typ=no,max='**'), - OPTION =SIMP(statut='f',typ='TXM',into=("DIAG",) ), - b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None", - NUME_ORDRE_J =SIMP(statut='o',typ='I',max='**' ), - ), - b_noeud_i =BLOC(condition = "NOEUD_I != None", - NOEUD_J =SIMP(statut='o',typ=no,max='**'), - NOM_CMP_I =SIMP(statut='o',typ='TXM',max='**' ), - NOM_CMP_J =SIMP(statut='o',typ='TXM',max='**' ), - ), - MOMENT =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=table_sdaster, - fr="Post-traiter les résultats en coordonnées généralisées produit par DYNA_TRAN_MODAL", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),), - RESU_GENE =SIMP(statut='o',typ=tran_gene ), - CHOC =FACT(statut='f',max='**', - fr="Analyse des non linéarités de choc", - INST_INIT =SIMP(statut='f',typ='R',defaut= -1. ), - INST_FIN =SIMP(statut='f',typ='R',defaut= 999. ), - NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), - SEUIL_FORCE =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - DUREE_REPOS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - OPTION =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ), - NB_CLASSE =SIMP(statut='f',typ='I',defaut= 10 ), - ), - RELA_EFFO_DEPL =FACT(statut='f', - fr="Analyse des relationsnon linéaires effort-déplacement", - NOEUD =SIMP(statut='o',typ=no), - NOM_CMP =SIMP(statut='o',typ='TXM' ), - ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 12/09/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE G8BHHXD X.DESROCHES -POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle", - - regles=(UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN','TRAV_EXT', - 'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE', - 'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL', - 'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE','INTEGRALE'), - ), - - MASS_INER = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ORIG_INER = SIMP(statut='f',typ='R',min=3,max=3 ), - ), - b_mass_iner = BLOC(condition = "( MASS_INER != None )", - fr="calcul de la masse, les inerties et le centre de gravité", - regles=(EXCLUS('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - GEOMETRIE = SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")), - CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), - RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_noli,mult_elas, - fourier_elas,dyna_trans) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - FREQ = SIMP(statut='f',typ='R',), - LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE = SIMP(statut='f',typ='I',), - NOEUD_CMP = SIMP(statut='f',typ='TXM',min=2,validators=NoRepeat(),max=2), - NOM_CAS = SIMP(statut='f',typ='TXM',), - ), - - ENER_POT = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_ener_pot = BLOC(condition = "( ENER_POT != None )", - fr="calcul de l'énergie potentielle de déformation", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - ANGLE = SIMP(statut='f',typ='I',defaut=0), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), - RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans,mult_elas) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - FREQ = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE = SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - NOEUD_CMP = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - ), - - ENER_CIN = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - OPTION = SIMP(statut='f',typ='TXM', - into=("MASS_MECA","MASS_MECA_DIAG"), - defaut="MASS_MECA" ), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_ener_cin = BLOC(condition = "( ENER_CIN != None )", - fr="calcul de l'énergie cinétique", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE', - 'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - ANGLE = SIMP(statut='f',typ='I',defaut=0), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), - RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - FREQ = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ = SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NOEUD_CMP = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - ), - - ENER_ELAS = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_ener_elas = BLOC(condition = "( ENER_ELAS != None )", - fr="calcul de l'énergie de déformation élastique", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - ENER_TOTALE = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_ener_totale = BLOC(condition = "( ENER_TOTALE != None )", - fr="calcul de l'énergie de déformation totale", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - INTEGRALE = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - NOM_CHAM = SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), - NOM_CMP = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'), - ), - b_integrale = BLOC(condition = "( INTEGRALE != None )", - fr="calcul de la moyenne d'une composante", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - RESULTAT = SIMP(statut='o',typ=(evol_noli,evol_ther,evol_elas) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - WEIBULL = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - OPTION = SIMP(statut='f',typ='TXM', - into=("SIGM_ELGA","SIGM_ELMOY"), - defaut="SIGM_ELGA"), - CORR_PLAST = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - COEF_MULT = SIMP(statut='f',typ='R',defaut=1.), - ), - b_weibull = BLOC(condition = "( WEIBULL != None )", - fr="calcul du champ élémentaire de la puissance m-ième de la contrainte de Weibull", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), - RESULTAT = SIMP(statut='f',typ=(evol_noli) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - RICE_TRACEY = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - OPTION = SIMP(statut='f',typ='TXM', - into=("SIGM_ELGA","SIGM_ELMOY"), - defaut="SIGM_ELGA"), - LOCAL = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - ), - b_rice_tracey = BLOC(condition = "( RICE_TRACEY != None )", - fr="calcul du taux de croissance d'une cavité sphérique par rapport à un domaine", - regles=(UN_PARMI('CHAM_GD','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - NUME_COUCHE = SIMP(statut='f',typ='I',defaut=1), - NIVE_COUCHE = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ), - RESULTAT = SIMP(statut='f',typ=(evol_noli) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - INDIC_ENER = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_indic_ener = BLOC(condition = "( INDIC_ENER != None )", - fr="calcul un indicateur global de perte de proportionnalité du chargement", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - INDIC_SEUIL = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - ), - b_indic_seuil = BLOC(condition = "( INDIC_SEUIL != None )", - fr="calcul un indicateur global de perte de proportionnalité du chargement", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - CHAR_LIMITE = FACT(statut='f',min=0, - CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON") - ), - b_char_limite = BLOC(condition = "( CHAR_LIMITE != None )", - fr="post-traitement du calcul de la charge limite", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CARA_ELEM = SIMP(statut='f',typ=cara_elem), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - RESULTAT = SIMP(statut='o',typ=(evol_noli) ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster), - INST = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST = SIMP(statut='f',typ=listr8_sdaster), - ), - - CARA_GEOM = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - SYME_X = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - SYME_Y = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ORIG_INER = SIMP(statut='f',typ='R',min=2,max=2), - ), - b_cara_geom = BLOC(condition = "( CARA_GEOM != None )", - fr="calcul des caractéristiques géométriques d'un section de poutre", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - ), - - CARA_POUTRE = FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT','GROUP_MA'), - ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),), - TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - GROUP_MA_INTE = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - CARA_GEOM = SIMP(statut='o',typ=table_sdaster), - RT = SIMP(statut='f',typ='R'), - LAPL_PHI = SIMP(statut='f',typ=evol_ther), - LAPL_PHI_Y = SIMP(statut='f',typ=evol_ther), - LAPL_PHI_Z = SIMP(statut='f',typ=evol_ther), - LIAISON = SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")), - LONGUEUR = SIMP(statut='f',typ='R'), - MATERIAU = SIMP(statut='f',typ=mater_sdaster), - OPTION = SIMP(statut='f',typ='TXM', - into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ), - ), - b_cara_poutre = BLOC(condition = "( CARA_POUTRE != None )", - fr="calcul des caractéristiques mécaniques d'un section de poutre", - MODELE = SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER = SIMP(statut='f',typ=cham_mater), - CHARGE = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ), - MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0), - ), - - AIRE_INTERNE = FACT(statut='f',max='**', - GROUP_MA_BORD = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'), - ), - b_aire_interne = BLOC(condition = "( AIRE_INTERNE != None )", - fr="calcul de l'aire d'un trou dans un maillage 2D", - MODELE = SIMP(statut='f',typ=modele_sdaster), - ), - - TRAV_EXT = FACT(statut='f',), - b_trav_ext = BLOC(condition = "( TRAV_EXT != None )", - fr="calcul du travail des efforts extérieurs", - RESULTAT = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans) ), - PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - - ) ; -#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=table_sdaster,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Calculer le dommage de fatigue subi par une structure soumise à une sollicitation de type aléatoire", - regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'), - PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'), - UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ), - MOMENT_SPEC_0 =SIMP(statut='f',typ='R'), - MOMENT_SPEC_2 =SIMP(statut='f',typ='R'), - MOMENT_SPEC_4 =SIMP(statut='f',typ='R'), - TABL_POST_ALEA =SIMP(statut='f',typ=table_sdaster), - COMPTAGE =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")), - DUREE =SIMP(statut='f',typ='R',defaut= 1.), - CORR_KE =SIMP(statut='f',typ='TXM',into=("RCCM",)), - DOMMAGE =SIMP(statut='o',typ='TXM',into=("WOHLER",)), - MATER =SIMP(statut='o',typ=mater_sdaster), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=table_sdaster,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Calculer en un point, le dommage de fatigue subi par une structure soumise à une histoire de chargement", - - CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")), - - b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'", - regles=(PRESENT_PRESENT('CORR_KE','MATER'), - PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'), - PRESENT_PRESENT('DOMMAGE','MATER'),), - HISTOIRE = FACT(statut='o', - regles=(UN_PARMI('SIGM','EPSI'),), - SIGM = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - EPSI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), - COMPTAGE = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")), - DELTA_OSCI = SIMP(statut='f',typ='R',defaut= 0.0E+0), - COEF_MULT = FACT(statut='f', - KT = SIMP(statut='o',typ='R'),), - CORR_KE = SIMP(statut='f',typ='TXM',into=("RCCM",)), - DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN", - "TAHERI_MANSON","TAHERI_MIXTE")), - MATER = SIMP(statut='f',typ=mater_sdaster), - CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")), - TAHERI_NAPPE = SIMP(statut='f',typ=(nappe_sdaster,formule)), - TAHERI_FONC = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), - ), - - b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'", - HISTOIRE = FACT(statut='o', - SIGM_XX = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_YY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_ZZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_XY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_XZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_YZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),), - CRITERE = SIMP(statut='o',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")), - DOMMAGE = SIMP(statut='f',typ='TXM',into=("WOHLER",)), - MATER = SIMP(statut='o',typ=mater_sdaster), - COEF_CORR = SIMP(statut='f',typ='R'), - ), - - b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'", - HISTOIRE = FACT(statut='o', - SIGM_XX = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_YY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_ZZ = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_XY = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_XZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - SIGM_YZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - EPSP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)), - TEMP = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),), - DOMMAGE = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),), - MATER = SIMP(statut='o',typ=mater_sdaster), - CUMUL = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 31/10/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.post_gp_ops import post_gp_ops -def post_gp_prod(self, TABL_RESU, **kargs): - """Typage des sd_prod - """ - if TABL_RESU != None: - self.type_sdprod(TABL_RESU, table_sdaster) - return table_sdaster - -POST_GP=MACRO(nom="POST_GP", op=post_gp_ops, sd_prod=post_gp_prod, - fr="Calcul du critère énergétique Gp suite à un calcul thermo-mécanique", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - regles=(AU_MOINS_UN('IDENTIFICATION', 'PREDICTION'),), - - # Résultat, modèle, comportement, chargement - RESULTAT = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),), - RESU_THER = SIMP(statut='f',typ=evol_ther,), - MODELE = SIMP(statut='o',typ=modele_sdaster), - MATER = SIMP(statut='o',typ=mater_sdaster), - - COMP_ELAS = FACT(statut='o', - RELATION = SIMP(statut='f',typ='TXM',defaut="ELAS", - into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC"),), - DEFORMATION = SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN"),), - ), - - EXCIT = FACT(statut='f', max='**', - CHARGE = SIMP(statut='o', typ=(char_meca,char_cine_meca)), - FONC_MULT = SIMP(statut='f', typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE = SIMP(statut='f', typ='TXM', defaut="FIXE", into=("FIXE",)), - ), - SYME_CHAR = SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS")), - - DIRECTION = SIMP(statut='o', typ='R', max=3), - THETA_2D = FACT(statut='o', max='**', - fr="paramètres de définition des champs theta", - GROUP_NO = SIMP(statut='o', typ=grno, validators=NoRepeat(), max='**'), - R_INF = SIMP(statut='o', typ='R'), - R_SUP = SIMP(statut='o', typ='R'), - ), - - # copeaux - GROUP_MA = SIMP(statut='o', typ=grma, validators=NoRepeat(), max='**'), - PAS_ENTAILLE = SIMP(statut='o', typ='R', val_min=0.), - - # critère sur Gp - CRIT_MAXI_GP = SIMP(statut='f', typ='TXM', defaut="ABSOLU", - into=("RELATIF","ABSOLU")), - - # correction axisymétrie - RAYON_AXIS = SIMP(statut='f', typ='R', val_min=0., defaut=1.), - - # identification - IDENTIFICATION = FACT(statut='f', max=1, - KJ_CRIT = SIMP(statut='o', typ='R', val_min=0., max='**'), - TEMP = SIMP(statut='o', typ='R', val_min=0., max='**'), - ), - - # prédiction - PREDICTION = FACT(statut='f', max=1, - GP_CRIT = SIMP(statut='o', typ='R', val_min=0., max='**'), - TEMP = SIMP(statut='o', typ='R', val_min=0., max='**'), - ), - - # table résultat - TABL_RESU = SIMP(statut='o', typ=CO,), - - INFO = SIMP(statut='f', typ='I', defaut=1, into=(1, 2),), -) -#& MODIF COMMANDE DATE 09/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. -# ====================================================================== -# RESPONSABLE GALENNE E.GALENNE -from Macro.post_k1_k2_k3_ops import post_k1_k2_k3_ops -POST_K1_K2_K3=MACRO(nom="POST_K1_K2_K3",op=post_k1_k2_k3_ops,sd_prod=table_sdaster, - fr="Calcul des facteurs d'intensité de contraintes en 2D et en 3D par extrapolation des sauts de déplacements" - +" sur les lèvres de la fissure", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - - regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'), - 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), - 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='**'), - 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=table_sdaster, - fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"), - TABL_DEPL_INF =SIMP(statut='f',typ=table_sdaster, - fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"), - ABSC_CURV_MAXI=SIMP(statut='f',typ='R', - fr="distance maximum à partir du fond de fissure à utiliser pour le calcul"), - PREC_VIS_A_VIS= SIMP(statut='f',typ='R',defaut=0.1), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)", - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","SANS") ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - VECT_K1 =SIMP(statut='o',typ='R',max=3, - fr="Vecteur normal au plan de fissure, orienté de la lèvre inférieure vers la lèvre supérieure"), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -# -POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=table_sdaster, - fr="Calcul des facteurs d'intensité de contraintes par la méthode K_BETA", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - MAILLAGE = SIMP(statut='o',typ=maillage_sdaster), - MATER_REV = SIMP(statut='o',typ=mater_sdaster), - EPAIS_REV = SIMP(statut='o',typ='R'), - FISSURE = FACT(statut='o', - DECALAGE = SIMP(statut='f',typ='R',defaut=-2.e-04), - PROFONDEUR = SIMP(statut='o',typ='R'), - LONGUEUR = SIMP(statut='o',typ='R'), - ORIENTATION = SIMP(statut='o',typ='TXM', - into=("CIRC","LONGI"),), - ), - K1D = FACT(statut='o',max='**', - TABL_MECA_REV = SIMP(statut='o',typ=(table_sdaster)), - TABL_MECA_MDB = SIMP(statut='o',typ=(table_sdaster)), - TABL_THER = SIMP(statut='o',typ=(table_sdaster)), - INTITULE = SIMP(statut='o',typ='TXM' ), - ), - TITRE = SIMP(statut='f',typ='TXM',max='**'), -); -#& MODIF COMMANDE DATE 31/10/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.post_k_trans_ops import post_k_trans_ops - -POST_K_TRANS=MACRO(nom="POST_K_TRANS",op=post_k_trans_ops,sd_prod=table_sdaster, - fr="Calcul des facteurs d intensite des contrainte par recombinaison modale",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - RESU_TRANS =SIMP(statut='o',typ=tran_gene), - K_MODAL =FACT(statut='o', - TABL_K_MODA =SIMP(statut='f',typ=table_sdaster,), - RESU_MODA =SIMP(statut='f',typ=mode_meca,), - FOND_FISS =SIMP(statut='f',typ=fond_fiss,), - FISSURE =SIMP(statut='f',typ=fiss_xfem,), - THETA =SIMP(statut='f',typ=(theta_geom,cham_no_sdaster)), - R_INF =SIMP(statut='f',typ='R'), - R_SUP =SIMP(statut='f',typ='R'), - MODULE =SIMP(statut='f',typ='R'), - DIRE_THETA =SIMP(statut='f',typ=cham_no_sdaster ), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - R_INF_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - MODULE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DEGRE =SIMP(statut='f',typ='I',into=(0,1,2,3,4,5,6,7) ), - LISSAGE_THETA =SIMP(statut='f',typ='TXM',into=("LEGENDRE","LAGRANGE","LAGRANGE_REGU"),), - LISSAGE_G =SIMP(statut='f',typ='TXM',into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO","LAGRANGE_REGU"),), - - - regles=(UN_PARMI('TABL_K_MODA','RESU_MODA'), - UN_PARMI('FISSURE','FOND_FISS'), - EXCLUS('MODULE','MODULE_FO'), - PRESENT_PRESENT('R_INF','R_SUP'), - PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ), - ), - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM'), -) - -#& MODIF COMMANDE DATE 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/02/2008 AUTEUR VIVAN L.VIVAN -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTIC -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE JMBHH01 J.M.PROIX -POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster, - fr="Vérification des critères de niveau 0 et certains critères de niveau A du RCC-M-B3200 (Edition 1991)", - reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","DETAILS") ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - TYPE_RESU_MECA =SIMP(statut='o',typ='TXM',into=("EVOLUTION","UNITAIRE","TUYAUTERIE") ), - -# ====================================================================== - b_evolution =BLOC(condition="(TYPE_RESU_MECA == 'EVOLUTION')", - - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("PM_PB","SN","FATIGUE_ZH210") ), - MATER =SIMP(statut='o',typ=mater_sdaster ), - SY_MAX =SIMP(statut='f',typ='R', - fr="limite élastique utilisée pourle calcul du rochet thermique" ), - - 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" ), - TABL_RESU_PRES =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes sous chargement de pression" ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - b_inst =BLOC(condition = "(INST != None) or (LIST_INST != None)" , - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), - ), - ), - ), - -# ====================================================================== - b_unitaire =BLOC(condition="(TYPE_RESU_MECA == 'UNITAIRE')", - - OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**', - into=("PM_PB","SN","FATIGUE") ), - MATER =SIMP(statut='o',typ=mater_sdaster ), - SY_MAX =SIMP(statut='f',typ='R', - fr="limite élastique utilisée pourle calcul du rochet thermique" ), - TYPE_KE =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"), - fr="Ke meca seul ou partition mecanique + thermique" ), - CHAR_MECA =FACT(statut='o',max='**',fr="Chargements mécaniques", - regles=(UN_PARMI('MX','MX_TUBU'),), - NUME_CHAR =SIMP(statut='o',typ='I',fr="numéro du chargement" ), - NOM_CHAR =SIMP(statut='f',typ='TXM',fr="nom du chargement" ), - TYPE_CHAR =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",), - MX =SIMP(statut='f',typ='R',fr="moment suivant x", ), - MX_TUBU =SIMP(statut='f',typ='R',fr="moment suivant x, tubulure", ), - b_1_tenseur =BLOC( condition = "MX != None", - FX =SIMP(statut='f',typ='R',fr="effort suivant x", ), - FY =SIMP(statut='f',typ='R',fr="effort suivant y", ), - FZ =SIMP(statut='f',typ='R',fr="effort suivant z", ), - MY =SIMP(statut='o',typ='R',fr="moment suivant y", ), - MZ =SIMP(statut='o',typ='R',fr="moment suivant z", ), - ), - b_2_tenseurs =BLOC( condition = "MX_TUBU != None", - FX_TUBU =SIMP(statut='f',typ='R',fr="effort suivant x, tubulure", ), - FY_TUBU =SIMP(statut='f',typ='R',fr="effort suivant y, tubulure", ), - FZ_TUBU =SIMP(statut='f',typ='R',fr="effort suivant z, tubulure", ), - MY_TUBU =SIMP(statut='o',typ='R',fr="moment suivant y, tubulure", ), - MZ_TUBU =SIMP(statut='o',typ='R',fr="moment suivant z, tubulure", ), - FX_CORP =SIMP(statut='f',typ='R',fr="effort suivant x, corps du piquage", ), - FY_CORP =SIMP(statut='f',typ='R',fr="effort suivant y, corps du piquage", ), - FZ_CORP =SIMP(statut='f',typ='R',fr="effort suivant z, corps du piquage", ), - MX_CORP =SIMP(statut='o',typ='R',fr="moment suivant x, corps du piquage", ), - MY_CORP =SIMP(statut='o',typ='R',fr="moment suivant y, corps du piquage", ), - MZ_CORP =SIMP(statut='o',typ='R',fr="moment suivant z, corps du piquage", ), - ), - - ), - RESU_MECA_UNIT =FACT(statut='o',fr="resultats mécaniques unitaires", - regles=(UN_PARMI('TABL_MX','TABL_MX_TUBU'),), - TABL_MX =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MX"), - TABL_MX_TUBU =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MX_TUBU"), - b_1_tenseur =BLOC( condition = "TABL_MX != None", - TABL_FX =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FX"), - TABL_FY =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FY"), - TABL_FZ =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FZ"), - TABL_MY =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MY"), - TABL_MZ =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MZ"), - ), - b_2_tenseurs =BLOC( condition = "TABL_MX_TUBU != None", - TABL_FX_TUBU =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FX_TUBU"), - TABL_FY_TUBU =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FY_TUBU"), - TABL_FZ_TUBU =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FZ_TUBU"), - TABL_MY_TUBU =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MY_TUBU"), - TABL_MZ_TUBU =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MZ_TUBU"), - TABL_FX_CORP =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FX_CORP"), - TABL_FY_CORP =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FY_CORP"), - TABL_FZ_CORP =SIMP(statut='f',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire FZ_CORP"), - TABL_MX_CORP =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MX_CORP"), - TABL_MY_CORP =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MY_CORP"), - TABL_MZ_CORP =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire MZ_CORP"), - ), - TABL_PRES =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes pour chargement unitaire de pression"), - ), - - RESU_THER =FACT(statut='f',max='**',fr="resultats thermiques", - NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ), - TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster, - fr="table relevé des contraintes sous chargement thermique seul" ), - ), - SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang", - NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ), - NB_CYCL_SEISME =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ), - NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ), - NOM_SITU =SIMP(statut='f',typ='TXM',fr="nom de la situation" ), - COMBINABLE =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ), - NUME_GROUPE =SIMP(statut='f',typ='I',max=2, - fr="numéro du groupe de la situation,si 2 numéros cette situation est une situation de passage" ), - 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='f',typ='I',max=2, - fr="numéro du groupe de la situation,si 2 numéros cette situation est une situation de passage" ), - 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 27/11/2006 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=table_sdaster,reentrant='f', - fr="Extraire des valeurs de composantes de champs de grandeurs pour y effectuer des calculs (moyenne,invariants,..)" - +" ou pour les exprimer dans d'autres repères", - docu="U4.81.21",UIinfo={"groupes":("Post traitements",)}, - - ACTION =FACT(statut='o',max='**', - regles=(UN_PARMI('RESULTAT','CHAM_GD'),), - - OPERATION =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE","EXTREMA"),validators=NoRepeat(),max=2), - INTITULE =SIMP(statut='o',typ='TXM'), - - CHAM_GD =SIMP(statut='f',typ=(cham_no_sdaster, - cham_elem,),), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_ther,evol_noli,dyna_trans, - mode_meca,mode_flamb,mode_acou,base_modale,mode_stat, - mult_elas,fourier_elas,fourier_ther,dyna_harmo,acou_harmo)), -# -# 1. Sensibilité -# 1.1. Cas d'un résultat réel -# Cas d'un résultat harmonique dont on veut partie réelle ou imaginaire -# - b_sensibilite =BLOC(condition=" (RESULTAT != None) and \ - ( AsType(RESULTAT) in (evol_elas,evol_ther,evol_noli,dyna_trans, \ - mode_meca,mode_flamb,mode_acou,base_modale,mode_stat, \ - mult_elas,fourier_elas,fourier_ther) or \ - ( AsType(RESULTAT) in (dyna_harmo,acou_harmo) and FORMAT_C != 'MODULE' ) )", - fr="Définition des paramètres de sensibilité", - ang="Definition of sensitivity parameters", - regles=(CONCEPT_SENSIBLE("SEPARE"), REUSE_SENSIBLE(), - DERIVABLE('RESULTAT'),), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - - ), -# -# 1.2. Cas d'un résultat harmonique dont on veut le module -# - b_sensibilite_harmo =BLOC(condition=" (RESULTAT != None) and \ - ( AsType(RESULTAT) in (dyna_harmo,acou_harmo) and FORMAT_C == 'MODULE' )", - fr="Définition des paramètres de sensibilité", - ang="Definition of sensitivity parameters", - regles=(CONCEPT_SENSIBLE("SEPARE"), REUSE_SENSIBLE(), - DERIVABLE('RESULTAT'),), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"), - b_sensibilite_harmo =BLOC(condition=" SENSIBILITE != None", - fr="Option pour la sensibilite", - ang="Option for sensitivity", - SENSIBILITE_OPTION =SIMP(statut='o',typ='TXM',into=("MODULE_SENSIBILITE","SENSIBILITE_MODULE",), - fr="Option : module de la dérivée ou dérivée du module", - ang="Option : modulus of derivative or derivative of modulus"), - ), - ), - - b_extrac =BLOC(condition = "RESULTAT != None",fr="extraction des résultats", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE', - 'INST','LIST_INST','FREQ','LIST_FREQ','NOEUD_CMP','NOM_CAS'), ), - NOM_CHAM =SIMP(statut='o',typ='TXM' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_MODE =SIMP(statut='f',typ=listis_sdaster), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - NOM_CAS =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - ), - - b_extrema =BLOC(condition="OPERATION == 'EXTREMA'", - fr="recherche de MIN MAX", - regles=(EXCLUS('TOUT_CMP','NOM_CMP'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - - b_autre =BLOC(condition="OPERATION != 'EXTREMA'", - fr="extraction et moyenne", - regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'), - EXCLUS('CHEMIN','GROUP_NO'), - EXCLUS('CHEMIN','NOEUD'), - PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'), - UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'), - PRESENT_PRESENT('TRAC_DIR','DIRECTION'), - ENSEMBLE('MOMENT','POINT'), - PRESENT_PRESENT('MOMENT','RESULTANTE'), - PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'), - EXCLUS('TRAC_DIR','TRAC_NOR'), - PRESENT_PRESENT('ORIGINE','AXE_Z'),), - - CHEMIN =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster) ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - - TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",)), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - INVARIANT =SIMP(statut='f',typ='TXM',into=("OUI",)), - ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ), - RESULTANTE =SIMP(statut='f',typ='TXM',max='**'), - - MOMENT =SIMP(statut='f',typ='TXM',max='**'), - POINT =SIMP(statut='f',typ='R',max='**'), - - REPERE =SIMP(statut='f',typ='TXM',defaut="GLOBAL", - into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),), - ANGL_NAUT =SIMP(statut='f',typ='R',min=3,max=3), - ORIGINE =SIMP(statut='f',typ='R',min=3,max=3), - AXE_Z =SIMP(statut='f',typ='R',min=3,max=3), - - TRAC_NOR =SIMP(statut='f',typ='TXM',into=("OUI",)), - TRAC_DIR =SIMP(statut='f',typ='TXM',into=("OUI",)), - DIRECTION =SIMP(statut='f',typ='R',max='**'), - - VECT_Y =SIMP(statut='f',typ='R',max='**'), - MOYE_NOEUD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - ), - - FORMAT_C =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")), - - ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=table_sdaster,reentrant='f', - UIinfo={"groupes":("Post traitements",)}, - fr="Calcul des volumes d'usure et des profondeurs d'usure d'après la puissance d'usure", - regles=(UN_PARMI('TUBE_NEUF','RESU_GENE','PUIS_USURE'), - PRESENT_PRESENT('RESU_GENE','NOEUD','LOI_USURE'), - PRESENT_PRESENT('PUIS_USURE','LOI_USURE'),), - TUBE_NEUF =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ETAT_INIT =FACT(statut='f', - TABL_USURE =SIMP(statut='f',typ=table_sdaster), - INST_INIT =SIMP(statut='f',typ='R'), - ), - RESU_GENE =SIMP(statut='f',typ=tran_gene), - NOEUD =SIMP(statut='f',typ=no,), - INST_INIT =SIMP(statut='f',typ='R',defaut=-1.0E+0), - INST_FIN =SIMP(statut='f',typ='R'), - NB_BLOC =SIMP(statut='f',typ='I',defaut= 1 ), - PUIS_USURE =SIMP(statut='f',typ='R'), - LOI_USURE =SIMP(statut='f',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")), - b_archard =BLOC(condition = "LOI_USURE == 'ARCHARD'", - regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'), - EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f', - COEF_USURE =SIMP(statut='o',typ='R'), - ), - OBSTACLE =FACT(statut='f', - COEF_USURE =SIMP(statut='o',typ='R'), - ), - SECTEUR =FACT(statut='f',max='**', - CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", - "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", - "GRAPPE_1_ENCO","GRAPPE_2_ENCO")), - COEF_USUR_MOBILE=SIMP(statut='f',typ='R'), - COEF_USUR_OBST =SIMP(statut='f',typ='R'), - ANGL_INIT =SIMP(statut='f',typ='R'), - ANGL_FIN =SIMP(statut='f',typ='R'), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), - ), - b_kwu_epri =BLOC(condition = "LOI_USURE == 'KWU_EPRI'", - regles=(UN_PARMI('MOBILE','MATER_USURE'), - EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f', - COEF_FNOR =SIMP(statut='f',typ='R'), - COEF_VTAN =SIMP(statut='f',typ='R'), - COEF_USURE =SIMP(statut='f',typ='R'), - COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), - COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), - ), - OBSTACLE =FACT(statut='f', - COEF_FNOR =SIMP(statut='f',typ='R' ), - COEF_VTAN =SIMP(statut='f',typ='R' ), - COEF_USURE =SIMP(statut='o',typ='R'), - COEF_K =SIMP(statut='f',typ='R',defaut=5.0E+0), - COEF_C =SIMP(statut='f',typ='R',defaut=10.0E+0), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), - FNOR_MAXI =SIMP(statut='f',typ='R' ), - VTAN_MAXI =SIMP(statut='f',typ='R' ), - ), - b_edf_mz =BLOC(condition = "LOI_USURE == 'EDF_MZ'", - regles=(UN_PARMI('MOBILE','MATER_USURE'), - EXCLUS('MATER_USURE','OBSTACLE'), - EXCLUS('MOBILE','USURE_OBST'),), - MOBILE =FACT(statut='f', - COEF_USURE =SIMP(statut='f',typ='R',defaut=1.0E-13), - COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), - COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), - COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), - ), - OBSTACLE =FACT(statut='f', - COEF_USURE =SIMP(statut='o',typ='R',defaut=1.0E-13), - COEF_B =SIMP(statut='f',typ='R',defaut=1.2E+0), - COEF_N =SIMP(statut='f',typ='R',defaut=2.44E-8), - COEF_S =SIMP(statut='f',typ='R',defaut=1.14E-16), - ), - MATER_USURE =SIMP(statut='f',typ='TXM'), - USURE_OBST =SIMP(statut='f',typ='TXM',into=("OUI",)), - ), - b_tube_neuf =BLOC(condition = "TUBE_NEUF == 'OUI'", - TABL_USURE =SIMP(statut='o',typ=table_sdaster), - INST =SIMP(statut='f',typ='R'), - ), - CONTACT =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO", - "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", - "GRAPPE_1_ENCO","GRAPPE_2_ENCO")), - RAYON_MOBILE =SIMP(statut='f',typ='R'), - RAYON_OBST =SIMP(statut='f',typ='R'), - LARGEUR_OBST =SIMP(statut='f',typ='R'), - ANGL_INCLI =SIMP(statut='f',typ='R'), - ANGL_ISTHME =SIMP(statut='f',typ='R'), - ANGL_IMPACT =SIMP(statut='f',typ='R'), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - COEF_INST =SIMP(statut='f',typ='R',defaut=1.0E+0), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - fr="Déterminer l'état adapté ou accommodé par la méthode de Zarka-Casier d'une structure sous" - +" chargement cyclique élastique affine ou non", - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_meca), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",into=("FIXE_CSTE",)), - ), - EVOL_ELAS =SIMP(statut='o',typ=evol_elas), - b_evol_elas =BLOC(condition="EVOL_ELAS != None", - regles=(UN_PARMI('NUME_ORDRE','LIST_INST','INST'),), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - ), - TEMP_ZAC =SIMP(statut='f',typ='R',defaut=0.0E+0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - b_evol_noli =BLOC(condition="EVOL_NOLI != None", - INST_MAX =SIMP(statut='o',typ='R'), - ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - -) ; -#& MODIF COMMANDE DATE 19/06/2006 AUTEUR VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n', - fr="Poursuite d'une étude à partir de la sauvegarde au format JEVEUX ou HDF de sa base globale", - sd_prod = ops.POURSUITE, - UIinfo={"groupes":("Gestion du travail",)}, - op_init = ops.POURSUITE_context,fichier_ini = 1, - FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', - typ='TXM',defaut="NON",into=("OUI","NON",) ), - PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', - into=("OUI","NON"),defaut="OUI"), - IMPR_MACRO =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess", - statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"), - BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX", - statut='f',min=1,max=2, - FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM'), - TITRE =SIMP(statut='f',typ='TXM'), - CAS =SIMP(statut='f',typ='TXM'), - NMAX_ENRE =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'), - LONG_ENRE =SIMP(fr="longueur des enregistrements",statut='f',typ='I'), - LONG_REPE =SIMP(fr="longueur du répertoire",statut='f',typ='I'), - ), - IMPRESSION =FACT(statut='f',min=1,max=3, - FICHIER =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='o',typ='I'), - ), - CATALOGUE =FACT(statut='f',min=1,max=10, - FICHIER =SIMP(statut='o',typ='TXM'), - TITRE =SIMP(statut='f',typ='TXM'), - UNITE =SIMP(statut='f',typ='I'), - ), - ERREUR =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1, - ERREUR_F =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'), - ), - DEBUG =FACT(fr="option de déboggage reservée aux développeurs", - statut='f',min=1,max=1, - JXVERI =SIMP(fr="vérifie l intégrité de la segmentation mémoire", - statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), - SDVERI =SIMP(fr="vérifie la conformité des SD produites par les commandes", - statut='f',typ='TXM',into=('OUI','NON'),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) - ), - CODE =FACT("définition d un nom pour l'esemble d'une étude", - statut='f',min=1,max=1, - NOM =SIMP(statut='o',typ='TXM'), - UNITE =SIMP(statut='f',typ='I',defaut=15), - ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PRE_GIBI=PROC(nom="PRE_GIBI",op=49, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d'un fichier de maillage GIBI au format Aster", - UNITE_GIBI =SIMP(statut='f',typ='I',defaut=19), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -PRE_GMSH=PROC(nom="PRE_GMSH",op=47, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d'un fichier de maillage GMSH au format Aster", - UNITE_GMSH =SIMP(statut='f',typ='I',defaut=19), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47, - UIinfo={"groupes":("Gestion du travail",)}, - fr="Conversion d'un fichier universel IDEAS-SUPERTAB au format Aster", - UNITE_IDEAS =SIMP(statut='f',typ='I',defaut=19), - UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut=20), - CREA_GROUP_COUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=cham_no_sdaster, - fr="Effectuer le produit d'une matrice par un vecteur", - reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_pres_c ) ), - CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 12/09/2006 AUTEUR VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# 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) == 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_stat_depl : return mode_stat_depl - if AsType(RESULTAT) == base_modale : return base_modale - if CHAM_NO_REFE != None : return cham_no_sdaster - raise AsException("type de concept resultat non prevu") - -PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Projeter les champs aux noeuds d'une SD résultat de type evol_xxx sur un autre maillage", -# - METHODE =SIMP(statut='f',typ='TXM',defaut="ELEM", - into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ), - b_nuage =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')", - fr="Lissage d'un nuage de points", - CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), - CHAM_NO_REFE =SIMP(statut='o',typ=cham_no_sdaster), - ), - b_elem =BLOC(condition="METHODE=='ELEM'", - fr="Utilisation des fonctions de forme du maillage initial", - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'), - EXCLUS('TOUT_CHAM','NOM_CHAM',), - CONCEPT_SENSIBLE('SEPARE'), - REUSE_SENSIBLE(), - DERIVABLE('RESULTAT'),), - RESULTAT =SIMP(statut='o',typ=(evol_ther,evol_elas,evol_noli,dyna_trans,evol_char,dyna_harmo, - 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), - - NOM_PARA =SIMP(statut='f',typ='TXM', max='**'), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - -# POUR IMPOSER LA NUMEROTATION DES DDLS : -# ------------------------------------------------------------------ - NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster) ), - - - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), - NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'), - - - CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), - DISTANCE_MAX =SIMP(statut='f',typ='R', - fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."), - TRANSF_GEOM_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3, - fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+ - " aux noeuds du MODELE_2 avant la projection."), - - ALARME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - - TYPE_CHAM =SIMP(statut='f',typ='TXM',into=("NOEU",), - fr="Pour forcer le type des champs projetés. NOEU -> cham_no"), - - PROL_ZERO =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON", - fr="Si le résultat est un mode_xxx ou une base_xxx, on peut prolonger" - +" les champs par zéro la ou la projection ne donne pas de valeurs."), - - ), - - VIS_A_VIS =FACT(statut='f',max='**', - regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'), - AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),), - TOUT_1 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_1 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_1 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_1 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_1 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - TOUT_2 =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA_2 =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE_2 =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - GROUP_NO_2 =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD_2 =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - CAS_FIGURE =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ), - TRANSF_GEOM_2 =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),min=2,max=3, - fr="2 (ou 3) fonctions fx,fy,fz définissant la transformation géométrique à appliquer"+ - " aux noeuds du MODELE_2 avant la projection."), - ), - - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args): - if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_gene_r - if AsType(MATR_ASSE_GENE) == matr_asse_gene_r : return matr_asse_gene_r - if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_gene_c - if AsType(MATR_ASSE_GENE) == matr_asse_gene_c : return matr_asse_gene_c - raise AsException("type de concept resultat non prevu") - -PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op= 71,sd_prod=matr_asse_gene_prod, - fr="Projection d'une matrice assemblée sur une base (modale ou de RITZ)", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ), - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ), - MATR_ASSE_GENE =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ), -) ; - -#& MODIF COMMANDE DATE 19/06/2006 AUTEUR VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -def proj_mesu_modal_prod(MODELE_MESURE,**args): - vale=MODELE_MESURE['MESURE'] - if AsType(vale) == dyna_trans : return tran_gene - if AsType(vale) == dyna_harmo : return harm_gene - if AsType(vale) == mode_meca : return mode_gene -# if AsType(vale) == mode_meca_c : return mode_gene_c - if AsType(vale) == base_modale : return mode_gene - raise AsException("type de concept resultat non prevu") - -PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193, - sd_prod=proj_mesu_modal_prod, - reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Calcul des coordonnees généralisees de mesure experimentale relatives a une base de projection", - - MODELE_CALCUL =FACT(statut='o', - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,) ), - ), - MODELE_MESURE =FACT(statut='o', - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - MESURE =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,mode_meca,mode_meca_c,) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ), - ), - CORR_MANU =FACT(statut='f',max='**', - regles=(PRESENT_PRESENT('NOEU_CALCUL','NOEU_MESURE'),), - NOEU_CALCUL =SIMP(statut='f',typ=no), - NOEU_MESURE =SIMP(statut='f',typ=no), - ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - RESOLUTION =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ), - b_svd =BLOC(condition="METHODE=='SVD'", - EPS=SIMP(statut='f',typ='R',defaut=0. ), - ), - REGUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ), - b_regul =BLOC(condition="REGUL!='NON'", - regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),), - COEF_PONDER =SIMP(statut='f',typ='R',defaut=0. ,max='**' ), - COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ), - ), - ), - - ); -#& MODIF COMMANDE DATE 06/06/2007 AUTEUR SALMONA 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. -# ====================================================================== -PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=table_fonction,reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - fr="Projecter un ou plusieurs spectres de turbulence sur une (ou plusieurs) base(s) modale(s) ", - regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'),), - SPEC_TURB =SIMP(statut='o',typ=spectre_sdaster,validators=NoRepeat(),max='**' ), - TOUT_CMP =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), - FREQ_INIT =SIMP(statut='o',typ='R',val_min=0.E+0 ), - FREQ_FIN =SIMP(statut='o',typ='R',val_min=0.E+0 ), - NB_POIN =SIMP(statut='o',typ='I' ), - OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")), - GROUP_MA =SIMP(statut='f',typ=grma), -# Quel est le type attendu derriere MODELE_INTERFACE - MODELE_INTERFACE=SIMP(statut='f',typ=modele_sdaster), - VECT_X =SIMP(statut='f',typ='R',min=3,max=3 ), - VECT_Y =SIMP(statut='f',typ='R',min=3,max=3 ), - ORIG_AXE =SIMP(statut='f',typ='R',min=3,max=3 ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op= 72,sd_prod=vect_asse_gene, - fr="Projection d'un vecteur assemblé sur une base (modale ou de RITZ)", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),), - BASE =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ), - NUME_DDL_GENE =SIMP(statut='o',typ=nume_ddl_gene ), - TYPE_VECT =SIMP(statut='f',typ='TXM',defaut="FORC"), - VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster), - VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene ), -) ; -#& MODIF COMMANDE DATE 22/08/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',),), - ), - - RAYON =SIMP(statut='o',typ='R',), - - METHODE =SIMP(statut='f',typ='TXM',into=("SIMPLEXE","UPWIND",),defaut="COEFF_POSITIF"), - -# RUNGE_KUTTA =SIMP(statut='f',typ='I',into=("1","2",),defaut=1), - - INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 03/01/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=table_sdaster, - fr="Recaler les paramètres du modèle de WEIBULL sur des données expérimentales",reentrant='n', - UIinfo={"groupes":("Post traitements",)}, - LIST_PARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("SIGM_REFE","M",) ), - RESU =FACT(statut='o',max='**', - regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',), - AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),), - EVOL_NOLI =SIMP(statut='o',typ=(evol_noli) ), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - TEMPE =SIMP(statut='f',typ='R' ), - LIST_INST_RUPT =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.E0 ), - ), - OPTION =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ), - CORR_PLAST =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - METHODE =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ), - INCO_GLOB_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ), - ) ; -#& MODIF COMMANDE DATE 07/11/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -def recu_fonction_prod(RESULTAT=None,TABLE=None,RESU_GENE=None, - BASE_ELAS_FLUI=None,CHAM_GD=None,NAPPE=None, - NOM_PARA_TABL=None,**args): - if AsType(RESULTAT) == dyna_harmo or \ - AsType(RESU_GENE) == harm_gene or \ - (TABLE != None and NOM_PARA_TABL == "FONCTION_C"): - return fonction_c - else: - return fonction_sdaster - -RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod, - fr="Extraire sous forme d'une fonction, l'évolution d'une grandeur en fonction d'une autre", - reentrant='f', - UIinfo={"groupes":("Fonction",)}, - regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','NAPPE'),), - - CHAM_GD =SIMP(statut='f',typ=(cham_no_sdaster, - cham_elem,),), - RESULTAT =SIMP(statut='f',typ=(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,table_fonction)), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster), - NAPPE =SIMP(statut='f',typ=nappe_sdaster), - -# ======= SENSIBILITE ================================================= - b_sensibilite =BLOC(condition="RESULTAT != None", - fr="Définition des paramètres de sensibilité", - ang="Definition of sensitivity parameters", - regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(), - DERIVABLE('RESULTAT'),), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters"),), -# ======= ACCES A LA SD RESULTAT ================================================= - b_acces = BLOC ( condition = "(RESULTAT != None) or (RESU_GENE != None)", - fr="acces a une SD résultat", -# on ne peut pas mettre de regles, le défaut TOUT_ORDRE est pris en compte dans le fortran - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)", - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - INTERP_NUME =SIMP(statut='f',typ='TXM',into=("NON","LIN") ), - ), - ), -# ======= BASE_ELAS_FLUI ================================================= - b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None", - fr="Récupération de la fonction à partir d un concept melasflu", - regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'), - NUME_MODE =SIMP(statut='o',typ='I' ), - PARA_X =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ), - PARA_Y =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ), - ), - -# ======= TABLE ================================================= - b_table = BLOC ( condition = "TABLE != None", - fr="Récupération de la fonction à partir d un concept table", - regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'), - PRESENT_PRESENT('PARA_X','PARA_Y'),), - PARA_X = SIMP(statut='f',typ='TXM', - fr="1ère colonne de la table qui définit la fonction à récupérer", ), - PARA_Y = SIMP(statut='f',typ='TXM', - fr="2ème colonne de la table qui définit la fonction à récupérer", ), - #b_tabl_fonc = BLOC(condition = "AsType(TABLE) == table_fonction", - NOM_PARA_TABL = SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C"), - fr="Nom du paramètre de la table contenant la fonction" ), - #), - - FILTRE = FACT(statut='f',max='**', - NOM_PARA =SIMP(statut='o',typ='TXM' ), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R' ), - VALE_I =SIMP(statut='f',typ='I' ), - VALE_C =SIMP(statut='f',typ='C' ), - VALE_K =SIMP(statut='f',typ='TXM' ),), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - ), - -# ======= RESULTAT ================================================= - b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT", - regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), - b_cham = BLOC ( condition = "NOM_CHAM != None", - regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'), - PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'), - PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'), - EXCLUS('GROUP_MA','MAILLE'), - EXCLUS('GROUP_NO','NOEUD'),), - NOM_CMP =SIMP(statut='o',typ='TXM' ), - MAILLE =SIMP(statut='f',typ=ma), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I' ), - ), - ), - -# ======= RESU_GENE ================================================= - b_tran_gene = BLOC ( condition = "AsType(RESU_GENE) == tran_gene", - fr="Récupération d'une fonction à partir d un concept TRAN_GENE", - regles=(UN_PARMI('NOM_CHAM','NOEUD_CHOC','GROUP_NO_CHOC'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ), - NOEUD_CHOC =SIMP(statut='f',typ=no), - GROUP_NO_CHOC =SIMP(statut='f',typ=grno), - b_cham = BLOC ( condition = "(NOM_CHAM=='DEPL') or (NOM_CHAM=='VITE') or (NOM_CHAM=='ACCE')", - regles=(UN_PARMI('GROUP_NO','NOEUD'), - EXCLUS('MULT_APPUI','CORR_STAT'),), - NOM_CMP =SIMP(statut='o',typ='TXM' ), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,formule)), - ), - b_choc = BLOC ( condition = "(NOEUD_CHOC != None) or (GROUP_NO_CHOC != None)", - regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'),), - PARA_X =SIMP(statut='o',typ='TXM', - into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ), - PARA_Y =SIMP(statut='o',typ='TXM', - into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ), - LIST_PARA =SIMP(statut='f',typ=listr8_sdaster ), - INTITULE =SIMP(statut='f',typ='TXM' ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - ), - ), - b_harm_gene = BLOC ( condition = "AsType(RESU_GENE)==harm_gene", - fr="Récupération d'une fonction à partir d un concept HARM_GENE", - regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), - b_cham = BLOC ( condition = "NOM_CHAM != None", - regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),), - NUME_CMP_GENE =SIMP(statut='f',typ='I' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - b_cmp = BLOC ( condition = "NOM_CMP != None", - regles=(UN_PARMI('NOEUD','GROUP_NO'),), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - ), - ), - ), - b_mode_gene = BLOC ( condition = "AsType(RESU_GENE)==mode_gene", - fr="Récupération d'une fonction à partir d un concept MODE_GENE", - regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NOM_PARA_RESU =SIMP(statut='f',typ='TXM' ), - b_cham = BLOC ( condition = "NOM_CHAM != None", - regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),), - NUME_CMP_GENE =SIMP(statut='f',typ='I' ), - NOM_CMP =SIMP(statut='f',typ='TXM' ), - b_cmp = BLOC ( condition = "NOM_CMP != None", - regles=(UN_PARMI('NOEUD','GROUP_NO'), - UN_PARMI('SQUELETTE','SOUS_STRUC'),), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - SQUELETTE =SIMP(statut='f',typ=squelette ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - ), - ), - ), - -# ======= CHAM_GD ================================================= - b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD", - regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'), - PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'), - PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'), - EXCLUS('GROUP_MA','MAILLE'), - EXCLUS('GROUP_NO','NOEUD'),), - NOM_CMP =SIMP(statut='o',typ='TXM' ), - MAILLE =SIMP(statut='f',typ=ma), - GROUP_MA =SIMP(statut='f',typ=grma), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I' ), - ), - -# ======= NAPPE ================================================= - b_nappe = BLOC ( condition = "(NAPPE != None)", fr="Opérandes en cas de NAPPE", - VALE_PARA_FONC =SIMP(statut='o',typ='R' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - ), - -# ======= SURCHARGE DES ATTRIBUTS ================================================= - NOM_PARA =SIMP(statut='f',typ='TXM', into=C_PARA_FONCTION() ), - NOM_RESU =SIMP(statut='f',typ='TXM' ), - INTERPOL =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ), - PROL_DROITE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - PROL_GAUCHE =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ), - - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -RECU_GENE=OPER(nom="RECU_GENE",op= 76,sd_prod=vect_asse_gene,reentrant='n', - UIinfo={"groupes":("Résultats et champs",)}, - fr="Extraire d'un champ de grandeur (déplacements, vitesses ou accélérations) à partir de résultats" - +" en coordonnées généralisées", - RESU_GENE =SIMP(statut='o',typ=tran_gene ), - INST =SIMP(statut='o',typ='R' ), - NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET -RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster, - fr="Récupérer dans une table les valeurs d'un paramètre d'une SD Résultat ou d'extraire une table contenue" - +" dans une autre SD pour celles qui le permettent", - UIinfo={"groupes":("Résultats et champs",)},reentrant='n', - CO =SIMP(statut='o',typ=assd), - regles=(UN_PARMI('NOM_TABLE','NOM_PARA')), - NOM_TABLE =SIMP(statut='f',typ='TXM' ), - NOM_PARA =SIMP(statut='f',typ='TXM',max='**'), - TITRE =SIMP(statut='f',typ='TXM',max='**'), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -RESO_GRAD=OPER(nom="RESO_GRAD",op= 84,sd_prod=cham_no_sdaster, - fr="Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - MATR_ASSE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), - CHAM_CINE =SIMP(statut='f',typ=cham_no_sdaster), - MATR_FACT =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - REPRISE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1E-6 ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 21/02/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE VABHHTS J.PELLET - -RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=cham_no_sdaster,reentrant='f', - fr="Résoudre par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT", - UIinfo={"groupes":("Résolution",)}, - MATR_FACT =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r, - matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ), - CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster), - CHAM_CINE =SIMP(statut='f',typ=cham_no_sdaster), - # RESI_RELA : précision utilisée si SOLVEUR=MUMPS - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.e-6), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; -#& MODIF COMMANDE DATE 31/10/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 BOYERE E.BOYERE -def rest_base_phys_prod(RESU_GENE,RESU_PHYS,RESULTAT,**args ): - if AsType(RESU_GENE) == tran_gene : return dyna_trans - if AsType(RESU_GENE) == mode_gene : return mode_meca - if AsType(RESU_GENE) == mode_cycl : return mode_meca - if AsType(RESU_GENE) == harm_gene : return dyna_harmo - if AsType(RESU_PHYS) == evol_noli : return dyna_trans - if AsType(RESULTAT) == evol_elas : return evol_elas - if AsType(RESULTAT) == evol_noli : return evol_noli - if AsType(RESULTAT) == evol_char : return evol_char - if AsType(RESULTAT) == dyna_trans : return dyna_trans - if AsType(RESULTAT) == mode_meca : return mode_meca - if AsType(RESULTAT) == mode_stat_depl : return mode_stat_depl - if AsType(RESULTAT) == base_modale : return base_modale - raise AsException("type de concept resultat non prevu") - -REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op= 75,sd_prod=rest_base_phys_prod, - fr="Restituer dans la base physique des résultats en coordonnées généralisées", - reentrant='n', - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(UN_PARMI('RESU_GENE','RESU_PHYS','RESULTAT'), - EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'), - EXCLUS('TOUT_INST','NUME_ORDRE','INST','LIST_INST','TOUT_ORDRE'), -# Doc U à revoir - EXCLUS('MULT_APPUI','CORR_STAT'), - EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'), - EXCLUS('CORR_STAT','NOEUD','GROUP_NO'), - EXCLUS('NOEUD','GROUP_NO'), - PRESENT_PRESENT('RESU_PHYS','BASE_MODALE'), - PRESENT_PRESENT('RESULTAT','SQUELETTE'), - PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),), - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char, - mode_meca,mode_stat_depl,base_modale) ), - - RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene) ), - RESU_PHYS =SIMP(statut='f',typ=evol_noli ), - BASE_MODALE =SIMP(statut='f',typ=(base_modale,mode_meca) ), - NUME_DDL =SIMP(statut='f',typ=nume_ddl_sdaster ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), - NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ), - TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_INST =SIMP(statut='f',typ=listr8_sdaster ), - FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ), - MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ), - CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE", - into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL", - "SIGM_ELNO_DEPL","FORC_NODA",) ), - TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - - ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - DIRECTION =SIMP(statut='f',typ='R',min=3,max=3 ), - - CYCLIQUE =FACT(statut='f',max='**', - NB_SECTEUR =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ), - NUME_DIAMETRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ), - RESULTAT2 =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char, - mode_meca,mode_stat_depl,base_modale) ), - ), - - SQUELETTE =SIMP(statut='f',typ=squelette ), - SOUS_STRUC =SIMP(statut='f',typ='TXM' ), - SECTEUR =SIMP(statut='f',typ='I',defaut= 1 ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=table_fonction, - reentrant='n', - fr="Calculer la réponse d'une structure dans la base physique", - UIinfo={"groupes":("Matrices/vecteurs",)}, - regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),), - BASE_ELAS_FLUI =SIMP(statut='f',typ=melasflu_sdaster ), - MODE_MECA =SIMP(statut='f',typ=mode_meca ), - BANDE =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2 ), - NUME_ORDRE =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**' ), - INTE_SPEC_GENE =SIMP(statut='o',typ=table_fonction), - NOEUD =SIMP(statut='o',typ=no ,max='**'), - MAILLE =SIMP(statut='f',typ=ma ,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=7, - into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL", - "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ), - MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc), ), - EXCIT =FACT(statut='f', - NOEUD =SIMP(statut='o',typ=no ,max='**'), - NOM_CMP =SIMP(statut='o',typ='TXM',max='**'), - ), - MOUVEMENT =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ), - OPTION =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG", - into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), -) ; -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# -*- coding: iso-8859-1 -*- - -from Macro.simu_point_mat_ops import simu_point_mat_ops - -SIMU_POINT_MAT=MACRO(nom="SIMU_POINT_MAT", op=simu_point_mat_ops,sd_prod=table_sdaster, - UIinfo={"groupes":("Résolution",)}, - fr="Calcul de l'évolution mécanique, en quasi-statique," - +" d'un point matériel en non linéaire", - COMP_INCR =C_COMP_INCR(), - MATER =SIMP(statut='o',typ=mater_sdaster,max=30), - INCREMENT =FACT(statut='o', - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - SUBD_METHODE =SIMP( statut='f',typ='TXM', - into =("AUCUNE","UNIFORME","EXTRAPOLE"), - defaut="AUCUNE", - fr="Méthode de subdivision des pas de temps en cas de non-convergence" - ), - b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0, - fr="Coefficient multiplicateur de la 1ère subdivision"), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - ), - b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_OPTION =SIMP(statut='f',typ='TXM', - into =("IGNORE_PREMIERES","GARDE_DERNIERES",), - defaut="IGNORE_PREMIERES", - fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"), - SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0, - fr="Les n premières itérations sont ignorées pour l'extrapolation"), - SUBD_ITER_FIN =SIMP(statut='c',typ='I',defaut=8,val_min=3, - fr="Seules les n dernières itérations sont prises pour l'extrapolation"), - SUBD_PAS =SIMP(statut='c',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps en cas divergence"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20, - fr="% itération autorisée en plus"), - ), - # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - ), - NEWTON =FACT(statut='d', - PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - REAC_ITER =SIMP(statut='f',typ='I',defaut=1), - REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), - ), - CONVERGENCE =FACT(statut='d', - regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), - SIGM_REFE =SIMP(statut='f',typ='R'), - EPSI_REFE =SIMP(statut='f',typ='R'), - RESI_REFE_RELA =SIMP(statut='f',typ='R'), - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=50), - ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25), - ARRET =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - ), - SUIVI_DDL = FACT(statut='f',max=4, - NUME_SUIVI =SIMP(statut='o',typ='I' ,min=1,max=4), - NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, - into=("DEPL","SIEF_ELGA","VARI_ELGA",)), - NOM_CMP =SIMP(statut='o',typ='TXM',max=1 ), - ), - SIGM_IMPOSE=FACT(statut='f', - SIXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - SIYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - SIZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - SIXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - SIXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - SIYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - EPSI_IMPOSE=FACT(statut='f', - EPXX = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPYY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPZZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPXY = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPXZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - EPYZ = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 15/05/2006 AUTEUR ASSIRE A.ASSIRE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -from Macro.stanley_ops import stanley_ops - -STANLEY=MACRO(nom="STANLEY",op=stanley_ops,sd_prod=None, - reentrant='n', - UIinfo={"groupes":("Outils métier",)}, - fr="Outil de post-traitement interactif Stanley ", - RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther,mode_meca,mode_stat,dyna_harmo,dyna_trans) ), - MODELE =SIMP(statut='f',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='f',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - DISPLAY =SIMP(statut='f',typ='TXM'), - UNITE_VALIDATION=SIMP(statut='c',typ='I',val_min=10,val_max=90, - fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit les md5"), - -) ; -#& MODIF COMMANDE DATE 06/06/2007 AUTEUR SALMONA 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 MABBAS M.ABBAS -STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, - fr="Calcul de l'évolution mécanique ou thermo-hydro-mécanique couplée, en quasi-statique," - +" d'une structure en non linéaire", - reentrant='f', - UIinfo={"groupes":("Résolution",)}, - regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'), - CONCEPT_SENSIBLE('ENSEMBLE'),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE", - into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")), - ), - SOUS_STRUC =FACT(statut='f',min=01,max='**', - regles=(UN_PARMI('TOUT','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_HYPER")), - ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)), - CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)), - DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire", - ETAT_INIT =FACT(statut='o', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_sdaster), - SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), - VARI =SIMP(statut='f',typ=cham_elem), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ),), - b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif", - ETAT_INIT =FACT(statut='f', - regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',), - EXCLUS('EVOL_NOLI','DEPL',), - EXCLUS('EVOL_NOLI','SIGM',), - EXCLUS('EVOL_NOLI','VARI',), - EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',), - EXCLUS('NUME_ORDRE','INST'), ), - DEPL =SIMP(statut='f',typ=cham_no_sdaster), - SIGM =SIMP(statut='f',typ=(cham_elem,carte_sdaster)), - VARI =SIMP(statut='f',typ=cham_elem), - VARI_NON_LOCAL =SIMP(statut='f',typ=cham_no_sdaster), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - NUME_DIDI =SIMP(statut='f',typ='I'), - INST_ETAT_INIT =SIMP(statut='f',typ='R'), - ),), - INCREMENT =FACT(statut='o', - regles=(EXCLUS('NUME_INST_INIT','INST_INIT'), - EXCLUS('NUME_INST_FIN','INST_FIN'),), - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE", - into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ), - NUME_INST_INIT =SIMP(statut='f',typ='I'), - INST_INIT =SIMP(statut='f',typ='R'), - NUME_INST_FIN =SIMP(statut='f',typ='I'), - INST_FIN =SIMP(statut='f',typ='R'), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - SUBD_METHODE =SIMP( statut='f',typ='TXM', - into =("AUCUNE","UNIFORME","EXTRAPOLE"), - defaut="AUCUNE", - fr="Méthode de subdivision des pas de temps en cas de non-convergence" - ), - b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0, - fr="Coefficient multiplicateur de la 1ère subdivision"), - SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - ), - b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'", - regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),), - SUBD_OPTION =SIMP(statut='f',typ='TXM', - into =("IGNORE_PREMIERES","GARDE_DERNIERES",), - defaut="IGNORE_PREMIERES", - fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"), - SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0, - fr="Les n premières itérations sont ignorées pour l'extrapolation"), - SUBD_ITER_FIN =SIMP(statut='c',typ='I',defaut=8,val_min=3, - fr="Seules les n dernières itérations sont prises pour l'extrapolation"), - SUBD_PAS =SIMP(statut='c',typ='I',defaut=4,val_min=2, - fr="Nombre de subdivision d'un pas de temps en cas divergence"), - SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2, - fr="Nombre maximum de niveau de subdivision d'un pas de temps"), - SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0, - fr="Pas de temps en dessous duquel on ne subdivise plus"), - SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20, - fr="% itération autorisée en plus"), - ), - # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS - OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),), - NOM_CHAM =SIMP(statut='f',typ='TXM',), - NOM_CMP =SIMP(statut='f',typ='TXM',), - VALE =SIMP(statut='f',typ='R'), - ), - NEWTON =FACT(statut='d', - REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ), - PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ), - MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ), - PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0), - REAC_ITER =SIMP(statut='f',typ='I',defaut=0), - REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0), - EVOL_NOLI =SIMP(statut='f',typ=evol_noli), - ), - RECH_LINEAIRE =FACT(statut='f', - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3), - ITER_LINE_CRIT =SIMP(statut='f',typ='I',defaut= 20), - PAS_MINI_CRIT =SIMP(statut='f',typ='R',defaut=0.0E+0), - RHO_MIN =SIMP(statut='f',typ='R',defaut=1.0E-2), - RHO_MAX =SIMP(statut='f',typ='R',defaut=1.0E+1), - RHO_EXCL =SIMP(statut='f',typ='R',defaut=0.9E-2,val_min=0.), - ), - PILOTAGE =FACT(statut='f', - regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TYPE =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ), - COEF_MULT =SIMP(statut='f',typ='R',defaut= 1.0E+0), - ETA_PILO_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_MIN =SIMP(statut='f',typ='R'), - ETA_PILO_R_MAX =SIMP(statut='f',typ='R'), - ETA_PILO_R_MIN =SIMP(statut='f',typ='R'), - PROJ_BORNES =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")), - SELECTION =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - ), - CONVERGENCE =FACT(statut='d', - regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),), - b_refe_rela =BLOC(condition = "RESI_REFE_RELA != None", - regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE', - 'FLUX_HYD1_REFE','FLUX_HYD2_REFE'),), - 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")), - ), - SOLVEUR =FACT(statut='d', - METHODE=SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","FETI") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")), - SCALING =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=80,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - ), - b_feti =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1", - PARTITION =SIMP(statut='o',typ=sd_feti_sdaster), - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.), - NMAX_ITER =SIMP(statut='f',typ='I',defaut=0,val_min=0), - TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ), - NB_REORTHO_DD =SIMP(statut='f',typ='I',defaut=0,val_min=0), - NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0), - PRE_COND =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ), - SCALING =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ), - VERIF_SDFETI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - TEST_CONTINU =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.), - INFO_FETI =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'), - STOCKAGE_GI =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ), - NB_SD_PROC0 =SIMP(statut='f',typ='I',defaut=0,val_min=0), - ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - ARCHIVAGE =FACT(statut='f', - regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'), - EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ), - PAS_ARCH =SIMP(statut='f',typ='I' ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)), - NUME_INIT =SIMP(statut='f',typ='I'), - DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA", - "VARI_NON_LOCAL","LANL_ELGA")), - ), - OBSERVATION =FACT(statut='f',max='**', - 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','GROUP_NO','GROUP_MA','VALE_MIN','VALE_MAX'), - 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='**'), - 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='**'), - POINT =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'), - VALE_MAX =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ), - VALE_MIN =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=1,into=("OUI",) ), - ), - - AFFICHAGE = FACT(statut='f',max=16, - - UNITE = SIMP(statut='f',typ='I',val_min=1), - - LONG_R = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12), - PREC_R = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8), - LONG_I = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12), - - NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD", - into=("STANDARD","MINIMUM", - "ITER_NEWT", - "INCR_TPS", - "RESI_RELA","RELA_NOEU", - "RESI_MAXI","MAXI_NOEU", - "RESI_REFE","REFE_NOEU", - "RELI_ITER","RELI_COEF", - "PILO_PARA", - "LAGR_ECAR","LAGR_INCR","LAGR_ITER", - "MATR_ASSE", - "ITER_DEBO", - "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU", - "CTCC_GEOM","CTCC_FROT","CTCC_CONT", - "SUIV_1","SUIV_2","SUIV_3","SUIV_4","ITER_FETI", - ), - ), - b_residu = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \ - NOM_COLONNE == 'RESI_MAXI' or\ - NOM_COLONNE == 'RESI_REFE' or\ - NOM_COLONNE == 'CTCD_GEOM' or\ - NOM_COLONNE == 'STANDARD' ", - INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")), - ), - ), - - - - CRIT_FLAMB =FACT(statut='f',min=1,max=1, - NB_FREQ =SIMP(statut='f',typ='I',max=1,defaut=3), - CHAR_CRIT =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10), - fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité", - ang="List of sensitivity parameters"), - SOLV_NON_LOCAL =FACT(statut='f', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")), - SCALING =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=80,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - EPS =SIMP(statut='f',typ='R',defaut= 0.E+0 ), - ), - LAGR_NON_LOCAL =FACT(statut='f', - ITER_DUAL_MAXI =SIMP(statut='f',typ='I',defaut= 50), - RESI_DUAL_ABSO =SIMP(statut='o',typ='R'), - RESI_PRIM_ABSO =SIMP(statut='o',typ='R'), - R =SIMP(statut='f',typ='R',defaut= 1000.), - ITER_PRIM_MAXI =SIMP(statut='f',typ='I',defaut= 10), - ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - ) - -#& MODIF COMMANDE DATE 22/05/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== - -# RESPONSABLE MCOURTOI M.COURTOIS - -from Macro.test_fichier_ops import test_fichier_ops - -TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops, - UIinfo={"groupes":("Impression",)}, - fr="Tester la non régression de fichiers produits par des commandes aster", - FICHIER =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)), - NB_CHIFFRE =SIMP(statut='o',typ='I',), # defaut=6 pas de defaut, il faut - EPSILON =SIMP(statut='o',typ='R',), # defaut=1.E-12 se poser la question ! - EXPR_IGNORE =SIMP(statut='f',typ='TXM',max='**', - fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"), - VALE_K =SIMP(statut='o',typ='TXM' ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), -) -#& MODIF COMMANDE DATE 17/10/2006 AUTEUR MCOURTOI M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# RESPONSABLE MCOURTOI M.COURTOIS -TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135, - fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence", - UIinfo={"groupes":("Impression",)}, - TEST_NOOK =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - VALEUR =FACT(statut='f',max='**', - fr="Tester la valeur d une fonction ou d une nappe", - regles=(UN_PARMI('VALE_REFE','VALE_REFE_C',), - DERIVABLE('FONCTION'),), - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), - NOM_PARA =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2), - VALE_PARA =SIMP(statut='o',typ='R' ,validators=NoRepeat(),max=2), - VALE_REFE =SIMP(statut='f',typ='R',max='**' ), - VALE_REFE_C =SIMP(statut='f',typ='C',max='**' ), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence", - defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence", - defaut= 1.E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), - ATTRIBUT =FACT(statut='f',max='**', - fr="Tester la valeur d un attribut d une fonction ou d''une nappe", - FONCTION =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ), - PARA =SIMP(statut='f',typ='R' ), - CRIT_PARA =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PREC_PARA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ATTR =SIMP(statut='o',typ='TXM', - into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL", - "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ), - ATTR_REFE =SIMP(statut='o',typ='TXM' ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), - TABL_INTSP =FACT(statut='f',max='**', - fr="Tester la valeur d une fonction contenue dans une table interspectrale", - regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),), - INTE_SPEC =SIMP(statut='o',typ=table_fonction), - NOEUD_I =SIMP(statut='f',typ=no), - NUME_ORDRE_I =SIMP(statut='f',typ='I' ), - b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", - NUME_ORDRE_J =SIMP(statut='o',typ='I' ), - ), - b_noeud_i = BLOC (condition = "NOEUD_I != None", - NOEUD_J =SIMP(statut='o',typ=no), - NOM_CMP_I =SIMP(statut='o',typ='TXM' ), - NOM_CMP_J =SIMP(statut='o',typ='TXM' ), - ), - NUME_VITE_FLUI =SIMP(statut='f',typ='I' ), - VALE_PARA =SIMP(statut='o',typ='R' ), - VALE_REFE_C =SIMP(statut='o',typ='C',max='**' ), - CRITERE =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence", - defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence", - defaut= 1.E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - ), - ), -) ; -#& MODIF COMMANDE DATE 10/10/2006 AUTEUR REZETTE C.REZETTE -# RESPONSABLE VABHHTS J.PELLET -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -TEST_RESU=PROC(nom="TEST_RESU",op=23, - UIinfo={"groupes":("Impression",)}, - fr="Extraction d'une valeur d'une structure de donnée et comparaison à une valeur de référence", - regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','GENE','OBJET')), - - CHAM_NO =FACT(statut='f',max='**', - regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'), - EXCLUS('NOEUD','GROUP_NO'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C'),), - CHAM_GD =SIMP(statut='o',typ=cham_no_sdaster), - NOEUD =SIMP(statut='f',typ=no ), - GROUP_NO =SIMP(statut='f',typ=grno ), - NOM_CMP =SIMP(statut='f',typ='TXM'), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")), - VALE =SIMP(statut='f',typ='R',max='**'), - VALE_I =SIMP(statut='f',typ='I',max='**'), - VALE_C =SIMP(statut='f',typ='C',max='**'), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER")), - VERSION =SIMP(statut='f',typ='TXM'), - ), - - CHAM_ELEM =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','TYPE_TEST',), - EXCLUS('NOEUD','GROUP_NO','POINT'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C'), ), - CHAM_GD =SIMP(statut='o',typ=cham_elem), - MAILLE =SIMP(statut='f',typ=ma), - POINT =SIMP(statut='f',typ='I' ), - SOUS_POINT =SIMP(statut='f',typ='I'), - NOEUD =SIMP(statut='f',typ=no), - GROUP_NO =SIMP(statut='f',typ=grno), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), - VALE =SIMP(statut='f',typ='R',max='**' ), - VALE_I =SIMP(statut='f',typ='I',max='**' ), - VALE_C =SIMP(statut='f',typ='C',max='**' ), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER") ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), - - RESU =FACT(statut='f',max='**', - regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'), - UN_PARMI('NOM_CHAM','PARA'), - PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'), - PRESENT_PRESENT('NOM_CMP','NOM_CHAM'), - EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'), - PRESENT_PRESENT('NOEUD','NOM_CMP'), - PRESENT_PRESENT('GROUP_NO','NOM_CMP'), - PRESENT_PRESENT('POINT','NOM_CMP'), - UN_PARMI('VALE','VALE_I','VALE_C'), - DERIVABLE('RESULTAT'),), - RESULTAT =SIMP(statut='o',typ=resultat_sdaster), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - FREQ =SIMP(statut='f',typ='R'), - NUME_MODE =SIMP(statut='f',typ='I'), - NOEUD_CMP =SIMP(statut='f',typ='TXM',min=2,max=2), - NOM_CAS =SIMP(statut='f',typ='TXM'), - ANGL =SIMP(statut='f',typ='R'), - PARA =SIMP(statut='f',typ='TXM'), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NOM_CMP =SIMP(statut='f',typ='TXM',max='**'), - MAILLE =SIMP(statut='f',typ=ma ,max='**'), - NOEUD =SIMP(statut='f',typ=no ,max='**'), - GROUP_NO =SIMP(statut='f',typ=grno ,max='**'), - POINT =SIMP(statut='f',typ='I'), - SOUS_POINT =SIMP(statut='f',typ='I'), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")), - VALE =SIMP(statut='f',typ='R',max='**'), - VALE_I =SIMP(statut='f',typ='I',max='**'), - VALE_C =SIMP(statut='f',typ='C',max='**'), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2), - PRECISION =SIMP(statut='f',typ='R',max=2), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER",) ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), - - GENE =FACT(statut='f',max='**', - regles=(UN_PARMI('VALE','VALE_I','VALE_C') ,), - RESU_GENE =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)), - b_vect_asse =BLOC(condition = "AsType(RESU_GENE) == vect_asse_gene", - NUME_CMP_GENE =SIMP(statut='o',typ='I'), - ), - b_mode =BLOC(condition = "(AsType(RESU_GENE) == harm_gene) or (AsType(RESU_GENE) == mode_gene)", - regles=(UN_PARMI('NUME_ORDRE','FREQ','NUME_MODE'), - UN_PARMI('NOM_CHAM','PARA'), - PRESENT_PRESENT('NOM_CHAM','NUME_CMP_GENE'),), - NOM_CHAM =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()), - NUME_CMP_GENE =SIMP(statut='f',typ='I'), - PARA =SIMP(statut='f',typ='TXM'), - NUME_ORDRE =SIMP(statut='f',typ='I'), - NUME_MODE =SIMP(statut='f',typ='I'), - FREQ =SIMP(statut='f',typ='R'), - ), - b_tran =BLOC(condition = "AsType(RESU_GENE) == tran_gene", - regles=(UN_PARMI('NUME_ORDRE','INST') ,), - NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), - NUME_CMP_GENE =SIMP(statut='o',typ='I'), - NUME_ORDRE =SIMP(statut='f',typ='I'), - INST =SIMP(statut='f',typ='R'), - ), - VALE =SIMP(statut='f',typ='R',max='**'), - VALE_I =SIMP(statut='f',typ='I',max='**'), - VALE_C =SIMP(statut='f',typ='C',max='**'), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2), - PRECISION =SIMP(statut='f',typ='R',max=2), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER",) ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), - - OBJET =FACT(statut='f',max='**', - regles=(UN_PARMI('S_I','S_R','RESUME',), - UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),), - NOM =SIMP(statut='o',typ='TXM'), - S_R =SIMP(statut='f',typ='R'), - S_I =SIMP(statut='f',typ='I'), - RESUME =SIMP(statut='f',typ='I'), - VALE =SIMP(statut='f',typ='R'), - VALE_I =SIMP(statut='f',typ='I'), - VALE_C =SIMP(statut='f',typ='C'), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), - PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE", - "NON_REGRESSION","AUTRE_ASTER",) ), - VERSION =SIMP(statut='f',typ='TXM' ), - ), -) ; -#& MODIF COMMANDE DATE 09/05/2007 AUTEUR SALMONA 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 -TEST_TABLE=PROC(nom="TEST_TABLE",op= 177, - UIinfo={"groupes":("Impression",)}, - fr="Tester une cellule ou une colonne d'une table", - regles=(UN_PARMI('VALE','VALE_I','VALE_C', ), - DERIVABLE('TABLE'),), -# concept table_sdaster à tester - TABLE =SIMP(statut='o',typ=table_sdaster), - - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom), - fr="Paramètre de sensibilité.", - ang="Sensitivity parameter"), - FILTRE =FACT(statut='f',max='**', - NOM_PARA =SIMP(statut='o',typ='TXM' ), - CRIT_COMP =SIMP(statut='f',typ='TXM',defaut="EQ", - into=("EQ","LT","GT","NE","LE","GE","VIDE", - "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ), - b_vale =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))", - regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),), - VALE =SIMP(statut='f',typ='R',), - VALE_I =SIMP(statut='f',typ='I',), - VALE_C =SIMP(statut='f',typ='C',), - VALE_K =SIMP(statut='f',typ='TXM' ),), - - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - ), - TYPE_TEST =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ), - NOM_PARA =SIMP(statut='o',typ='TXM' ), - VALE =SIMP(statut='f',typ='R',max='**' ), - VALE_I =SIMP(statut='f',typ='I',max='**' ), - VALE_C =SIMP(statut='f',typ='C',max='**' ), - VALE_ABS =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - REFERENCE =SIMP(statut='f',typ='TXM', - into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ), - b_version =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", - VERSION =SIMP(statut='f',typ='TXM' ), - INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ), - ), -) ; -#& MODIF COMMANDE DATE 12/06/2006 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. -# ====================================================================== -THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Résoudre un problème thermique linéaire stationnaire ou transitoire", - regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), - MODELE =SIMP(statut='o',typ=modele_sdaster), - CHAM_MATER =SIMP(statut='o',typ=cham_mater), - CARA_ELEM =SIMP(statut='f',typ=cara_elem), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=(char_ther,char_cine_ther)), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - INCREMENT =FACT(statut='f', - LIST_INST =SIMP(statut='o',typ=listr8_sdaster ), - NUME_INIT =SIMP(statut='f',typ='I'), - NUME_FIN =SIMP(statut='f',typ='I'), - ), - TEMP_INIT =FACT(statut='f', - regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), - VALE =SIMP(statut='f',typ='R'), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters", - ), - SENS_INIT =FACT(statut='f', - regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",) ), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")), - SCALING =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=80,), - 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 19/06/2006 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. -# ====================================================================== -THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f', - UIinfo={"groupes":("Résolution",)}, - fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)" - +" stationnaire ou transitoire" , - regles=(CONCEPT_SENSIBLE('ENSEMBLE'),), - MODELE =SIMP(statut='o',typ=(modele_sdaster) ), - CHAM_MATER =SIMP(statut='o',typ=(cham_mater) ), - CARA_ELEM =SIMP(statut='c',typ=(cara_elem) ), - COMP_THER_NL =FACT(statut='d',max='**', - RELATION =SIMP(statut='f',typ='TXM',defaut="THER_NL", - into=("THER_NL", - "THER_HYDR", - "SECH_GRANGER", - "SECH_MENSI", - "SECH_BAZANT", - "SECH_NAPPE" - ) ), - regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),), - TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ), - GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), - MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), - ), - EVOL_THER_SECH =SIMP(statut='f',typ=evol_ther), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_ther), - FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)), - ), - INCREMENT =FACT(statut='f', - LIST_INST =SIMP(statut='o',typ=listr8_sdaster), - NUME_INIT =SIMP(statut='f',typ='I'), - NUME_FIN =SIMP(statut='f',typ='I'), - ), - TEMP_INIT =FACT(statut='f', - regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),), - STATIONNAIRE =SIMP(statut='f',typ='TXM',into=("OUI",)), - EVOL_THER =SIMP(statut='f',typ=evol_ther), - CHAM_NO =SIMP(statut='f',typ=cham_no_sdaster), - VALE =SIMP(statut='f',typ='R'), - NUME_INIT =SIMP(statut='f',typ='I'), - ), - NEWTON =FACT(statut='d', - REAC_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CONVERGENCE =FACT(statut='d', - RESI_GLOB_MAXI =SIMP(statut='f',typ='R'), - RESI_GLOB_RELA =SIMP(statut='f',typ='R'), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ), - SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**', - fr="Liste des paramètres de sensibilité.", - ang="List of sensitivity parameters", - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Parametres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Parametres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Parametres relatifs a la non inversibilité de la matrice a factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Parametres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I' ,defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R' ,defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I' ,defaut= 0 ), - ), - b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS", - TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")), - SCALING =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")), - RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")), - PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=80,), - RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), - ), - PARM_THETA =SIMP(statut='f',typ='R',defaut= 0.57 ), - ARCHIVAGE =FACT(statut='f', - regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),), - LIST_ARCH =SIMP(statut='f',typ=(listis_sdaster) ), - LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ), - PAS_ARCH =SIMP(statut='f',typ='I'), - CHAM_EXCLU =SIMP(statut='f',typ='TXM',into=("VARI",)), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**'), - OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2, - into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), - -) ; -#& MODIF COMMANDE DATE 22/06/2005 AUTEUR REZETTE C.REZETTE -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther, - fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)" - +" stationnaire avec chargement mobile", - reentrant='n', - UIinfo={"groupes":("Résolution",)}, - MODELE =SIMP(statut='o',typ=modele_sdaster ), - CHAM_MATER =SIMP(statut='o',typ=cham_mater ), - CARA_ELEM =SIMP(statut='c',typ=cara_elem ), - EXCIT =FACT(statut='o',max='**', - CHARGE =SIMP(statut='o',typ=char_ther ), - FONC_MULT =SIMP(statut='c',typ=(fonction_sdaster,nappe_sdaster,formule) ), - ), - TEMP_INIT =FACT(statut='f', - EVOL_THER =SIMP(statut='f',typ=evol_ther ), - NUME_INIT =SIMP(statut='f',typ='I',defaut= 0 ), - ), - CONVERGENCE =FACT(statut='d', - CRIT_TEMP_RELA =SIMP(statut='f',typ='R',defaut= 1.E-3 ), - CRIT_ENTH_RELA =SIMP(statut='f',typ='R',defaut= 1.E-2 ), - ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ), - ARRET =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - SOLVEUR =FACT(statut='d', - METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ), - b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale", - RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ), - ), - b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT", - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ), - ), - b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ", - fr="Paramètres relatifs à la non inversibilité de la matrice à factorise", - NPREC =SIMP(statut='f',typ='I',defaut= 8 ), - STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ), - ), - b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué", - PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ), - NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ), - RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ), - RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ), - NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ), - ), - SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), - ), - TITRE =SIMP(statut='f',typ='TXM',max='**' ), - INFO =SIMP(statut='f',typ='I',into=(1,2) ), -) ; - - - diff --git a/Aster/Cata/cataSTA8/materiau/18MND5_REF_A.NOMI b/Aster/Cata/cataSTA8/materiau/18MND5_REF_A.NOMI deleted file mode 100755 index 0a4989c6..00000000 --- a/Aster/Cata/cataSTA8/materiau/18MND5_REF_A.NOMI +++ /dev/null @@ -1,135 +0,0 @@ -# MODIF DATE 24/10/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -#------------------------------------------------------ -# LAMBDA EN FONCTION DE LA TEMPéRATURE -# -coef0=1.E ## UNIT -3 -_A0=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,37.7 *coef0, - 50. ,38.6 *coef0, - 100. ,39.9 *coef0, - 150. ,40.5 *coef0, - 200. ,40.5 *coef0, - 250. ,40.2 *coef0, - 300. ,39.5 *coef0, - 350. ,38.7 *coef0, - 400. ,37.7 *coef0, - 450. ,36.6 *coef0, - 500. ,35.5 *coef0, - 550. ,34.3 *coef0, - 600. ,33.0 *coef0, - 650. ,31.8 *coef0, - )) - -# -# RHO_CP EN FONCTION DE LA TEMPéRATURE -# -coef1=1.E ## UNIT -9 -_A1=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,3.49E+6 *coef1, - 50. ,3.59E+6 *coef1, - 100. ,3.77E+6 *coef1, - 150. ,3.93E+6 *coef1, - 200. ,4.09E+6 *coef1, - 250. ,4.27E+6 *coef1, - 300. ,4.42E+6 *coef1, - 350. ,4.60E+6 *coef1, - 400. ,4.80E+6 *coef1, - 450. ,5.04E+6 *coef1, - 500. ,5.35E+6 *coef1, - 550. ,5.69E+6 *coef1, - 600. ,6.10E+6 *coef1, - 650. ,6.65E+6 *coef1, - )) - -# -# E EN FONCTION DE LA TEMPéRATURE -# -coef2=1.E ## UNIT -6 -_A2=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0. ,205.E+9 *coef2, - 20. ,204.E+9 *coef2, - 50. ,203.E+9 *coef2, - 100. ,200.E+9 *coef2, - 150. ,197.E+9 *coef2, - 200. ,193.E+9 *coef2, - 250. ,189.E+9 *coef2, - 300. ,185.E+9 *coef2, - 350. ,180.E+9 *coef2, - 400. ,176.E+9 *coef2, - 450. ,171.E+9 *coef2, - 500. ,166.E+9 *coef2, - 550. ,160.E+9 *coef2, - 600. ,155.E+9 *coef2, - )) - -# -# NU EN FONCTION DE LA TEMPéRATURE -# - -_A3=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT', - VALE=( 0., 0.3, - )) - -# -# ALPHA EN FONCTION DE LA TEMPéRATURE -# - -_A4=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( 20., 11.22E-6, 50., 11.45E-6, - 100., 11.79E-6, 150., 12.14E-6, - 200., 12.47E-6, 250., 12.78E-6, - 300., 13.08E-6, 350., 13.40E-6, - 400., 13.72E-6, 450., 14.02E-6, - )) - - -MAT=DEFI_MATERIAU( - THER_NL=_F( ## SUBST THER - RHO_CP = _A1, ## EVAL _A1 - LAMBDA = _A0, ## EVAL _A0 - ), - ELAS_FO=_F( ## SUBST ELAS - E = _A2, ## EVAL _A2 - NU = _A3, ## EVAL _A3 - ALPHA = _A4, ## EVAL _A4 - TEMP_DEF_ALPHA = 20., ## SUPPR - ) - ) - -# - diff --git a/Aster/Cata/cataSTA8/materiau/README.PY b/Aster/Cata/cataSTA8/materiau/README.PY deleted file mode 100644 index 00d14c17..00000000 --- a/Aster/Cata/cataSTA8/materiau/README.PY +++ /dev/null @@ -1 +0,0 @@ -indispensable pour ne pas avoir une directory vide diff --git a/Aster/Cata/cataSTA8/materiau/Z12CN13_REF_A.NOMI b/Aster/Cata/cataSTA8/materiau/Z12CN13_REF_A.NOMI deleted file mode 100755 index 85034ed5..00000000 --- a/Aster/Cata/cataSTA8/materiau/Z12CN13_REF_A.NOMI +++ /dev/null @@ -1,134 +0,0 @@ -# MODIF DATE 24/10/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -#------------------------------------------------------ -# LAMBDA EN FONCTION DE LA TEMPéRATURE -# -coef0=1.E ## UNIT -3 -_A0=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,22.7 *coef0, - 50. ,23.1 *coef0, - 100. ,23.9 *coef0, - 150. ,24.7 *coef0, - 200. ,25.5 *coef0, - 250. ,26.3 *coef0, - 300. ,27.1 *coef0, - 350. ,27.9 *coef0, - 400. ,28.7 *coef0, - 450. ,29.5 *coef0, - 500. ,30.3 *coef0, - 550. ,31.1 *coef0, - 600. ,31.9 *coef0, - 650. ,32.7 *coef0, - )) - -# -# RHO_CP EN FONCTION DE LA TEMPéRATURE -# -coef1=1.E ## UNIT -9 -_A1=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,3.64E+6 *coef1, - 50. ,3.73E+6 *coef1, - 100. ,3.90E+6 *coef1, - 150. ,4.06E+6 *coef1, - 200. ,4.22E+6 *coef1, - 250. ,4.39E+6 *coef1, - 300. ,4.55E+6 *coef1, - 350. ,4.70E+6 *coef1, - 400. ,4.86E+6 *coef1, - 450. ,5.04E+6 *coef1, - 500. ,5.21E+6 *coef1, - 550. ,5.32E+6 *coef1, - 600. ,5.39E+6 *coef1, - 650. ,5.37E+6 *coef1, - )) - -# -# E EN FONCTION DE LA TEMPéRATURE -# -coef2=1.E ## UNIT -6 -_A2=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0. ,216.5E+9 *coef2, - 20. ,215.4E+9 *coef2, - 50. ,213.0E+9 *coef2, - 100. ,209.4E+9 *coef2, - 150. ,206.0E+9 *coef2, - 200. ,201.8E+9 *coef2, - 250. ,197.5E+9 *coef2, - 300. ,193.5E+9 *coef2, - 350. ,189.0E+9 *coef2, - 400. ,184.5E+9 *coef2, - 450. ,179.0E+9 *coef2, - 500. ,173.5E+9 *coef2, - 550. ,167.0E+9 *coef2, - )) - -# -# NU EN FONCTION DE LA TEMPéRATURE -# - -_A3=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT', - VALE=( 0., 0.3, - )) - -# -# ALPHA EN FONCTION DE LA TEMPéRATURE -# - -_A4=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( 20., 9.42E-6, 50., 9.60E-6, - 100., 9.96E-6, 150., 10.20E-6, - 200., 10.44E-6, 250., 10.69E-6, - 300., 10.95E-6, 350., 11.19E-6, - 400., 11.40E-6, 450., 11.59E-6, - )) - - -MAT=DEFI_MATERIAU( - THER_NL=_F( ## SUBST THER - RHO_CP = _A1, ## EVAL _A1 - LAMBDA = _A0, ## EVAL _A0 - ), - ELAS_FO=_F( ## SUBST ELAS - E = _A2, ## EVAL _A2 - NU = _A3, ## EVAL _A3 - ALPHA = _A4, ## EVAL _A4 - TEMP_DEF_ALPHA = 20., ## SUPPR - ) - ) - -# - diff --git a/Aster/Cata/cataSTA8/materiau/Z2CN1810_REF_A.NOMI b/Aster/Cata/cataSTA8/materiau/Z2CN1810_REF_A.NOMI deleted file mode 100755 index 7b74d452..00000000 --- a/Aster/Cata/cataSTA8/materiau/Z2CN1810_REF_A.NOMI +++ /dev/null @@ -1,354 +0,0 @@ -# MODIF DATE 24/10/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# -# LAMBDA EN FONCTION DE LA TEMPéRATURE -# -coef0=1.E ## UNIT -3 -_A0=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,14.7 *coef0, - 50. ,15.2 *coef0, - 100. ,15.8 *coef0, - 150. ,16.7 *coef0, - 200. ,17.2 *coef0, - 250. ,18. *coef0, - 300. ,18.6 *coef0, - 350. ,19.3 *coef0, - 400. ,20. *coef0, - 450. ,20.5 *coef0, - 500. ,21.1 *coef0, - 550. ,21.7 *coef0, - 600. ,22.2 *coef0, - 650. ,22.7 *coef0, - 700. ,23.2 *coef0, - 750. ,23.7 *coef0, - 800. ,24.1 *coef0, - 950. ,26.67 *coef0, - 1150. ,29.24 *coef0, - 1370. ,32.06 *coef0, - )) - -# -# RHO_CP EN FONCTION DE LA TEMPéRATURE -# -coef1=1.E ## UNIT -9 -_A1=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,3.60E+6 *coef1, - 50. ,3.74E+6 *coef1, - 100. ,3.90E+6 *coef1, - 150. ,4.10E+6 *coef1, - 200. ,4.16E+6 *coef1, - 250. ,4.27E+6 *coef1, - 300. ,4.30E+6 *coef1, - 350. ,4.35E+6 *coef1, - 400. ,4.39E+6 *coef1, - 450. ,4.39E+6 *coef1, - 500. ,4.44E+6 *coef1, - 550. ,4.47E+6 *coef1, - 600. ,4.49E+6 *coef1, - 650. ,4.53E+6 *coef1, - 700. ,4.58E+6 *coef1, - 750. ,4.61E+6 *coef1, - 800. ,4.72E+6 *coef1, - 1000. ,4.99E+6 *coef1, - 1200. ,5.04E+6 *coef1, - 1500. ,5.04E+6 *coef1, - )) - -# -# E EN FONCTION DE LA TEMPéRATURE -# -coef2=1.E ## UNIT -6 -_A2=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0. ,198.5E+9 *coef2, - 20. ,197.E+9 *coef2, - 50. ,195.E+9 *coef2, - 100. ,191.5E+9 *coef2, - 150. ,187.5E+9 *coef2, - 200. ,184.E+9 *coef2, - 250. ,180.E+9 *coef2, - 300. ,176.5E+9 *coef2, - 350. ,172.E+9 *coef2, - 400. ,168.E+9 *coef2, - 450. ,164.E+9 *coef2, - 500. ,160.E+9 *coef2, - 550. ,155.5E+9 *coef2, - 600. ,151.5E+9 *coef2, - 700. ,142.5E+9 *coef2, - 800. ,130.E+9 *coef2, - 1000. ,81.5E+9 *coef2, - 1200. ,7.4E+9 *coef2, - 1400. ,0. *coef2, - )) - -# -# NU EN FONCTION DE LA TEMPéRATURE -# -_A3=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT', - VALE=( 0., 0.3, - )) - -# -# ALPHA EN FONCTION DE LA TEMPéRATURE -# - -_A4=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( 20., 16.4E-6, - 50., 16.54E-6, 100., 16.8E-6, - 150., 17.04E-6, 200., 17.2E-6, - 250., 17.5E-6, 300., 17.7E-6, - 350., 17.9E-6, 400., 18.1E-6, - 450., 18.24E-6, 500., 18.4E-6, - 600., 18.7E-6, 700., 18.9E-6, - 800., 19.1E-6, 900., 19.3E-6, - 1000., 19.5E-6, 1400., 20.E-6, - 1600., 20.2E-6, - )) - -# -# COURBE DE TRACTION à LA TEMPéRATURE 20°C -# - -coef5=1.E ## UNIT -6 -_A5=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 9.39E-4, 185.E+6 *coef5, - 1.07E-3, 190.53E+6 *coef5, - 1.64E-3, 225.E+6 *coef5, - 3.32E-3, 261.E+6 *coef5, - 7.45E-3, 287.E+6 *coef5, - 0.011, 300.E+6 *coef5, - 0.032, 360.E+6 *coef5, - 0.05, 404.E+6 *coef5, - 0.1, 491.E+6 *coef5, - )) - -# -# COURBE DE TRACTION à LA TEMPéRATURE 200°C -# -coef6=1.E ## UNIT -6 -_A6=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 7.61E-4 ,140.E+6 *coef6, - 1.E-3 ,150.E+6 *coef6, - 2.9E-3 ,168.E+6 *coef6, - 4.E-3 ,181.E+6 *coef6, - 7.E-3 ,195.E+6 *coef6, - 1.E-2 ,205.E+6 *coef6, - 0.034 ,276.E+6 *coef6, - 0.05 ,303.E+6 *coef6, - 0.15 ,450.E+6 *coef6, - )) - -# -# COURBE DE TRACTION à LA TEMPéRATURE 350°C -# -coef7=1.E ## UNIT -6 -_A7=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 7.56E-4 ,130.E+6 *coef7, - 8.9E-4 ,136.E+6 *coef7, - 1.84E-3 ,145.E+6 *coef7, - 2.9E-3 ,151.E+6 *coef7, - 4.9E-3 ,160.E+6 *coef7, - 8.9E-3 ,174.E+6 *coef7, - 0.011 ,180.E+6 *coef7, - 0.051 ,261.E+6 *coef7, - #0.01 ,353.E+6 *coef7, - 0.1 ,353.E+6 *coef7, - )) - -# -# COURBE DE TRACTION à LA TEMPéRATURE 400°C -# -coef8=1.E ## UNIT -6 -_A8=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 7.14E-4 ,120.E+6 *coef8, - 1.E-3 ,125.E+6 *coef8, - 2.E-3 ,134.E+6 *coef8, - 3.E-3 ,141.E+6 *coef8, - 8.E-3 ,157.E+6 *coef8, - 19.E-3 ,185.E+6 *coef8, - 25.E-3 ,200.E+6 *coef8, - 0.05 ,240.E+6 *coef8, - 0.1 ,320.E+6 *coef8, - )) - -# -# COURBE DE TRACTION à LA TEMPéRATURE 600°C -# -coef9=1.E ## UNIT -6 -_A9=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 5.94E-4 ,90.E+6 *coef9, - 1.E-3 ,104.E+6 *coef9, - 2.E-3 ,112.E+6 *coef9, - 3.E-3 ,119.E+6 *coef9, - 6.5E-3 ,131.E+6 *coef9, - 1.E-2 ,141.E+6 *coef9, - 2.14E-2 ,174.E+6 *coef9, - 0.05 ,224.E+6 *coef9, - 0.15 ,350.E+6 *coef9, - )) - -# -# COURBE DE TRACTION à LA TEMPéRATURE 800°C -# -coefA=1.E ## UNIT -6 -_AA=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 5.77E-4 ,75.E+6 *coefA, - 1.5E-3 ,81.E+6 *coefA, - 3.E-3 ,92.5E+6 *coefA, - 4.E-3 ,95.5E+6 *coefA, - 6.E-3 ,104.E+6 *coefA, - 0.01 ,115.E+6 *coefA, - 0.0278 ,141.E+6 *coefA, - 0.05 ,159.E+6 *coefA, - 0.1 ,170.E+6 *coefA, - )) - -# -# COURBE DE TRACTION -# - -_AB=DEFI_NAPPE( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - PARA=(20.,200.,350.,400.,600.,800., ), - FONCTION=(_A5,_A6,_A7,_A8,_A9,_AA, )) - -# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2 - -_AZ=DEFI_FONCTION(NOM_PARA='SIGM', - INTERPOL='LOG', - VALE=( - 180.0E6, 1000000.0 , - 200.0E6, 500000.0 , - 230.0E6, 200000.0 , - 260.0E6, 100000.0 , - 295.0E6, 50000.0 , - 350.0E6, 20000.0 , - 405.0E6, 10000.0 , - 485.0E6, 5000.0 , - 615.0E6, 2000.0 , - 750.0E6, 1000.0 , - 940.0E6, 500.0 , - 1275.0E6, 200.0 , - 1655.0E6, 100.0 , - 2190.0E6, 50.0 , - 3240.0E6, 20.0 , - 4480.0E6, 10.0, - ),); -_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),); -_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ, - COEF = 1.E ## UNIT -6 - ),); -DETRUIRE( CONCEPT =_F( NOM=_AZ), ) -_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),); - - - -# SM EN FONCTION DE LA TEMPERATURE - -_BD=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='CONSTANT', - VALE=( - 20.0,115.0E6, - 50.0,115.0E6, - 100.0,115.0E6, - 150.0,115.0E6, - 200.0,109.0E6, - 250.0,103.0E6, - 300.0,96.0E6, - 340.0,94.0E6, - 350.0,94.0E6, - )) -_AD=CALC_FONCTION(COMB=_F(FONCTION = _BD, - COEF = 1.E ## UNIT -6 - ),); - -# N_KE CONSTANTE EN FAIT -_AE=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',VALE=(20.,0.3,100.,0.3),) - -# M_KE CONSTANTE EN FAIT -_AF=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT',VALE=(20.,1.7,100.,1.7),) - - - -MAT=DEFI_MATERIAU( - THER_NL=_F( ## SUBST THER - RHO_CP = _A1, ## EVAL _A1 - LAMBDA = _A0, ## EVAL _A0 - ), - ELAS_FO=_F( ## SUBST ELAS - E = _A2, ## EVAL _A2 - NU = _A3, ## EVAL _A3 - ALPHA = _A4, ## EVAL _A4 - TEMP_DEF_ALPHA = 20., ## SUPPR - ), - TRACTION=_F( SIGM = _AB, ), - - FATIGUE=_F(WOHLER=_AZ, - E_REFE=1.79E11*1.E ## UNIT -6 - ), - - RCCM_FO=_F( ## SUBST RCCM - SM=_AD, ## EVAL _AD - N_KE=_AE, ## EVAL _AE - M_KE=_AF, ## EVAL _AF - ) - ) - -# - diff --git a/Aster/Cata/cataSTA8/materiau/Z2CND1712_REF_A.NOMI b/Aster/Cata/cataSTA8/materiau/Z2CND1712_REF_A.NOMI deleted file mode 100755 index c72be9f4..00000000 --- a/Aster/Cata/cataSTA8/materiau/Z2CND1712_REF_A.NOMI +++ /dev/null @@ -1,337 +0,0 @@ -# MODIF DATE 24/10/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -# -# Catalogue MATERIAU de l'acier inoxydable austenitique 316L -# - Denomination AFNOR : Z2CND1712 -# - Denomination usuelle : A316L -# -# LAMBDA EN FONCTION DE LA TEMPERATURE -# -coef0=1.E ## UNIT -3 - -_A0=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,14.0 *coef0, - 50. ,14.4 *coef0, - 100. ,15.2 *coef0, - 150. ,15.8 *coef0, - 200. ,16.6 *coef0, - 250. ,17.3 *coef0, - 300. ,17.9 *coef0, - 350. ,18.6 *coef0, - 400. ,19.2 *coef0, - 450. ,19.9 *coef0, - 500. ,20.6 *coef0, - 550. ,21.2 *coef0, - 600. ,21.8 *coef0, - 650. ,22.4 *coef0, - 700. ,23.1 *coef0, - 750. ,23.7 *coef0, - 800. ,24.3 *coef0, - 900. ,26.0 *coef0, - 1000. ,27.3 *coef0, - 1200. ,29.9 *coef0, - 1500. ,34.0 *coef0, - )) - -# -# RHO_CP EN FONCTION DE LA TEMPERATURE -# -coef1=1.E ## UNIT -9 -_A1=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,3598972. *coef1, - 50. ,3701799. *coef1, - 100. ,3907455. *coef1, - 150. ,4010152. *coef1, - 200. ,4160401. *coef1, - 250. ,4261084. *coef1, - 300. ,4292566. *coef1, - 350. ,4366197. *coef1, - 400. ,4393593. *coef1, - 450. ,4422222. *coef1, - 500. ,4439655. *coef1, - 550. ,4463158. *coef1, - 600. ,4494845. *coef1, - 650. ,4525252. *coef1, - 700. ,4583333. *coef1, - 750. ,4637965. *coef1, - 800. ,4700193. *coef1, - 900. ,4946500. *coef1, - 1000. ,4989600. *coef1, - 1200. ,5043650. *coef1, - 1500. ,5037000. *coef1, - )) - -# -# E EN FONCTION DE LA TEMPERATURE -# -coef2=1.E ## UNIT -6 -_A2=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0. ,198500.E+6 *coef2, - 20. ,197000.E+6 *coef2, - 50. ,195000.E+6 *coef2, - 100. ,191500.E+6 *coef2, - 150. ,187500.E+6 *coef2, - 200. ,184000.E+6 *coef2, - 250. ,180000.E+6 *coef2, - 300. ,176500.E+6 *coef2, - 350. ,172000.E+6 *coef2, - 400. ,168000.E+6 *coef2, - 450. ,164000.E+6 *coef2, - 500. ,160000.E+6 *coef2, - 550. ,155500.E+6 *coef2, - 600. ,151500.E+6 *coef2, - 700. ,142500.E+6 *coef2, - 800. ,130000.E+6 *coef2, - 900. ,108000.E+6 *coef2, - 1000. ,81500.E+6 *coef2, - 1100. ,32000.E+6 *coef2, - 1200. ,7400.E+6 *coef2, - 1300. ,3000.E+6 *coef2, - 1400. ,5.E+6 *coef2, - )) -# -# NU EN FONCTION DE LA TEMPERATURE -# -_A3=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT', - VALE=( 0., 0.3, - )) - -# -# ALPHA EN FONCTION DE LA TEMPERATURE -# - -_A4=DEFI_FONCTION( NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0.0 ,15.4E-6 , - 20.0 ,15.54E-6 , - 50.0 ,15.72E-6 , - 100.0 ,16.0E-6 , - 150.0 ,16.3E-6 , - 200.0 ,16.6E-6 , - 250.0 ,16.86E-6 , - 300.0 ,17.1E-6 , - 350.0 ,17.36E-6 , - 400.0 ,17.6E-6 , - 450.0 ,17.82E-6 , - 500.0 ,18.0E-6 , - 600.0 ,18.4E-6 , - 700.0 ,18.7E-6 , - 800.0 ,19.0E-6 , - 900.0 ,19.2E-6 , - 1000.0 ,19.4E-6 , - 1400.0 ,19.6E-6 , - 1600.0 ,19.7E-6 , - )) - - -# -# COURBE DE TRACTION A LA TEMPERATURE 20C -# - -coef5=1.E ## UNIT -6 -_TR20=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0.08446701E-2 ,166.4E+6 *coef5, - 0.09221476E-2 ,177.72307E+6 *coef5, - 0.09675755E-2 ,184.702374E+6 *coef5, - 0.10035526E-2 ,189.819863E+6 *coef5, - 0.10341966E-2 ,193.88674E+6 *coef5, - 0.10613920E-2 ,197.274216E+6 *coef5, - 0.11091372E-2 ,202.74003E+6 *coef5, - 0.11294416E-2 ,202.8E+6 *coef5, - 0.13218274E-2 ,221.E+6 *coef5, - 0.17010152E-2 ,236.6E+6 *coef5, - 0.22670051E-2 ,249.6E+6 *coef5, - 0.33197970E-2 ,260.E+6 *coef5, - 0.53857868E-2 ,273.E+6 *coef5, - 0.74253807E-2 ,280.8E+6 *coef5, - 0.94517766E-2 ,286.E+6 *coef5, - 1.14913706E-2 ,293.8E+6 *coef5, - 1.65573604E-2 ,306.8E+6 *coef5, - 2.16101523E-2 ,317.2E+6 *coef5, - 3.17289340E-2 ,340.6E+6 *coef5, - )) - -# -# COURBE DE TRACTION A LA TEMPERATURE 100C -# -coef6=1.E ## UNIT -6 -_TR100=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0.07268930E-2 ,139.2E+6 *coef6, - 0.10049608E-2 ,173.3E+6 *coef6, - 0.20003864E-2 ,200.E+6 *coef6, - 0.30757180E-2 ,206.E+6 *coef6, - 1.11994778E-2 ,229.7E+6 *coef6, - 2.13211488E-2 ,253.E+6 *coef6, - 4.15456919E-2 ,296.E+6 *coef6, - 6.17545692E-2 ,336.E+6 *coef6, - 8.19582245E-2 ,375.E+6 *coef6, - 10.2151436E-2 ,412.E+6 *coef6, - 15.2647520E-2 ,507.E+6 *coef6, - 20.3143603E-2 ,602.E+6 *coef6, - )) -# -# COURBE DE TRACTION A LA TEMPERATURE 200C -# -coef7=1.E ## UNIT -6 -_TR200=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0.06271740E-2 ,115.4E+6 *coef7, - 0.10631555E-2 ,153.4E+6 *coef7, - 0.19565609E-2 ,170.E+6 *coef7, - 0.29734414E-2 ,173.E+6 *coef7, - 1.11084853E-2 ,197.E+6 *coef7, - 2.12435291E-2 ,221.E+6 *coef7, - 4.14854828E-2 ,264.E+6 *coef7, - 6.17133693E-2 ,304.5E+6 *coef7, - 8.19300023E-2 ,343.E+6 *coef7, - 10.2149449E-2 ,382.E+6 *coef7, - 15.2689624E-2 ,478.E+6 *coef7, - 20.3224173E-2 ,573.E+6 *coef7, - )) -# -# COURBE DE TRACTION A LA TEMPERATURE 300C -# -coef8=1.E ## UNIT -6 -_TR300=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0.05694051E-2 ,100.5E+6 *coef8, - 0.09563739E-2 ,133.5E+6 *coef8, - 0.19998584E-2 ,150.E+6 *coef8, - 0.28781870E-2 ,155.E+6 *coef8, - 1.10254958E-2 ,181.E+6 *coef8, - 2.11614731E-2 ,205.E+6 *coef8, - 4.14164306E-2 ,250.E+6 *coef8, - 6.16430595E-2 ,290.E+6 *coef8, - 8.18696884E-2 ,330.E+6 *coef8, - 10.2096317E-2 ,370.E+6 *coef8, - 15.2623229E-2 ,463.E+6 *coef8, - 20.3161473E-2 ,558.E+6 *coef8, - )) -# -# COURBE DE TRACTION A LA TEMPERATURE 350C -# -coef9=1.E ## UNIT -6 -_TR350=DEFI_FONCTION( NOM_PARA='EPSI', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0.05558140E-2 ,95.6E+6 *coef9, - 0.06134823E-2 ,102.078952E+6 *coef9, - 0.06467887E-2 ,106.087661E+6 *coef9, - 0.06738779E-2 ,109.026998E+6 *coef9, - 0.06974587E-2 ,111.362893E+6 *coef9, - 0.07187707E-2 ,113.308561E+6 *coef9, - 0.07570231E-2 ,116.447965E+6 *coef9, - 0.08008140E-2 ,120.54E+6 *coef9, - 0.09520930E-2 ,129.36E+6 *coef9, - 0.12862791E-2 ,135.24E+6 *coef9, - 0.18204651E-2 ,141.12E+6 *coef9, - 0.28546512E-2 ,147.E+6 *coef9, - 0.48973837E-2 ,154.35E+6 *coef9, - 0.69315698E-2 ,160.23E+6 *coef9, - 0.89657558E-2 ,166.11E+6 *coef9, - 1.09913953E-2 ,170.52E+6 *coef9, - 1.60597674E-2 ,182.28E+6 *coef9, - 2.11195930E-2 ,192.57E+6 *coef9, - 3.12477907E-2 ,214.62E+6 *coef9, - )) -# -# COURBE DE TRACTION -# - -_A5=DEFI_NAPPE( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - PARA=(20.,100.,200.,300.,350., ), - FONCTION=(_TR20,_TR100,_TR200,_TR300,_TR350)) - -# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2 - -_AZ=DEFI_FONCTION(NOM_PARA='SIGM', - INTERPOL='LOG', - VALE=( - 180.0E6, 1000000.0 , - 200.0E6, 500000.0 , - 230.0E6, 200000.0 , - 260.0E6, 100000.0 , - 295.0E6, 50000.0 , - 350.0E6, 20000.0 , - 405.0E6, 10000.0 , - 485.0E6, 5000.0 , - 615.0E6, 2000.0 , - 750.0E6, 1000.0 , - 940.0E6, 500.0 , - 1275.0E6, 200.0 , - 1655.0E6, 100.0 , - 2190.0E6, 50.0 , - 3240.0E6, 20.0 , - 4480.0E6, 10.0, - ),); -_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),); -_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ, - COEF = 1.E ## UNIT -6 - ),); -DETRUIRE( CONCEPT =_F( NOM=_AZ), ) -_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),); - - -MAT=DEFI_MATERIAU( - THER_NL=_F( ## SUBST THER - RHO_CP = _A1, ## EVAL _A1 - LAMBDA = _A0, ## EVAL _A0 - ), - ELAS_FO=_F( ## SUBST ELAS - E = _A2, ## EVAL _A2 - NU = _A3, ## EVAL _A3 - ALPHA = _A4, ## EVAL _A4 - TEMP_DEF_ALPHA = 20., ## SUPPR - ), - TRACTION=_F( SIGM = _A5, ), - - FATIGUE=_F(WOHLER=_AZ, - E_REFE=2.07E11*1.E ## UNIT -6 - ), - ) - -# - diff --git a/Aster/Cata/cataSTA8/materiau/Z6CND1712_REF_A.NOMI b/Aster/Cata/cataSTA8/materiau/Z6CND1712_REF_A.NOMI deleted file mode 100755 index 0d1facbf..00000000 --- a/Aster/Cata/cataSTA8/materiau/Z6CND1712_REF_A.NOMI +++ /dev/null @@ -1,178 +0,0 @@ -# MODIF DATE 24/10/2006 AUTEUR DURAND C.DURAND -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# ====================================================================== -#------------------------------------------------------ -# LAMBDA EN FONCTION DE LA TEMPéRATURE -# -coef0=1.E ## UNIT -3 -_A0=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,14.0 *coef0, - 50. ,14.4 *coef0, - 100. ,15.2 *coef0, - 150. ,15.8 *coef0, - 200. ,16.6 *coef0, - 250. ,17.3 *coef0, - 300. ,17.9 *coef0, - 350. ,18.6 *coef0, - 400. ,19.2 *coef0, - 450. ,19.9 *coef0, - 500. ,20.6 *coef0, - 550. ,21.2 *coef0, - 600. ,21.8 *coef0, - 650. ,22.4 *coef0, - 700. ,23.1 *coef0, - 750. ,23.7 *coef0, - 800. ,24.3 *coef0, - )) - -# -# RHO_CP EN FONCTION DE LA TEMPéRATURE -# -coef1=1.E ## UNIT -9 -_A1=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 20. ,3.60E+6 *coef1, - 50. ,3.70E+6 *coef1, - 100. ,3.91E+6 *coef1, - 150. ,4.01E+6 *coef1, - 200. ,4.16E+6 *coef1, - 250. ,4.26E+6 *coef1, - 300. ,4.29E+6 *coef1, - 350. ,4.37E+6 *coef1, - 400. ,4.39E+6 *coef1, - 450. ,4.42E+6 *coef1, - 500. ,4.44E+6 *coef1, - 550. ,4.46E+6 *coef1, - 600. ,4.49E+6 *coef1, - 650. ,4.53E+6 *coef1, - 700. ,4.58E+6 *coef1, - 750. ,4.64E+6 *coef1, - 800. ,4.70E+6 *coef1, - )) - -# -# E EN FONCTION DE LA TEMPéRATURE -# -coef2=1.E ## UNIT -6 -_A2=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( - 0. ,198.5E+9 *coef2, - 20. ,197.0E+9 *coef2, - 50. ,195.0E+9 *coef2, - 100. ,191.5E+9 *coef2, - 150. ,187.5E+9 *coef2, - 200. ,184.0E+9 *coef2, - 250. ,180.0E+9 *coef2, - 300. ,176.5E+9 *coef2, - 350. ,172.0E+9 *coef2, - 400. ,168.0E+9 *coef2, - 450. ,164.0E+9 *coef2, - 500. ,160.0E+9 *coef2, - 550. ,155.5E+9 *coef2, - 600. ,151.5E+9 *coef2, - )) - -# -# NU EN FONCTION DE LA TEMPéRATURE -# - -_A3=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='CONSTANT', - PROL_GAUCHE='CONSTANT', - VALE=( 0., 0.3, - )) - -# -# ALPHA EN FONCTION DE LA TEMPéRATURE -# - -_A4=DEFI_FONCTION( - NOM_PARA='TEMP', - PROL_DROITE='EXCLU', - PROL_GAUCHE='EXCLU', - VALE=( 20., 15.54E-6, 50., 15.72E-6, - 100., 16.00E-6, 150., 16.30E-6, - 200., 16.60E-6, 250., 16.86E-6, - 300., 17.10E-6, 350., 17.36E-6, - 400., 17.60E-6, 450., 17.82E-6, - )) - - -# COURBE DE FATIGUE DE WOHLER RCCM Z1.4.2 - -_AZ=DEFI_FONCTION(NOM_PARA='SIGM', - INTERPOL='LOG', - VALE=( - 180.0E6, 1000000.0 , - 200.0E6, 500000.0 , - 230.0E6, 200000.0 , - 260.0E6, 100000.0 , - 295.0E6, 50000.0 , - 350.0E6, 20000.0 , - 405.0E6, 10000.0 , - 485.0E6, 5000.0 , - 615.0E6, 2000.0 , - 750.0E6, 1000.0 , - 940.0E6, 500.0 , - 1275.0E6, 200.0 , - 1655.0E6, 100.0 , - 2190.0E6, 50.0 , - 3240.0E6, 20.0 , - 4480.0E6, 10.0, - ),); -_BZ=CALC_FONCTION(INVERSE=_F(FONCTION=_AZ,),); -_CZ=CALC_FONCTION(COMB=_F(FONCTION = _BZ, - COEF = 1.E ## UNIT -6 - ),); -DETRUIRE( CONCEPT =_F( NOM=_AZ), ) -_AZ=CALC_FONCTION(INVERSE=_F(FONCTION=_CZ,),); - - - - -MAT=DEFI_MATERIAU( - THER_NL=_F( ## SUBST THER - RHO_CP = _A1, ## EVAL _A1 - LAMBDA = _A0, ## EVAL _A0 - ), - ELAS_FO=_F( ## SUBST ELAS - E = _A2, ## EVAL _A2 - NU = _A3, ## EVAL _A3 - ALPHA = _A4, ## EVAL _A4 - TEMP_DEF_ALPHA = 20., ## SUPPR - ), - - FATIGUE=_F(WOHLER=_AZ, - E_REFE=1.79E11*1.E ## UNIT -6 - ), - - ) - -# - diff --git a/Aster/Cata/cataSTA8/ops.py b/Aster/Cata/cataSTA8/ops.py deleted file mode 100644 index ce03f042..00000000 --- a/Aster/Cata/cataSTA8/ops.py +++ /dev/null @@ -1,459 +0,0 @@ -#@ MODIF ops Cata DATE 04/06/2008 AUTEUR MACOCCO K.MACOCCO -# -*- 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 - - -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 - from Utilitai.Utmess import UTMESS -except: - pass - -def DEBUT(self,PAR_LOT,IMPR_MACRO,CODE,DEBUG,**args): - """ - Fonction sdprod de la macro DEBUT - """ - # La commande DEBUT ne peut exister qu'au niveau jdc - if self.jdc is not self.parent : - raise Accas.AsException("La commande DEBUT ne peut exister qu'au niveau jdc") - - 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'] - 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,IMPR_MACRO,CODE,DEBUG,**args): - """ - Fonction sdprod de la macro POURSUITE - """ - # La commande POURSUITE ne peut exister qu'au niveau jdc - if self.jdc is not self.parent : - raise Accas.AsException("La commande POURSUITE ne peut exister qu'au niveau jdc") - - 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: - 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. -####CD 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 - elif statut == '&DETRUIT' : self.jdc.nsd = self.jdc.nsd+1 - 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__ - # on rattache chaque assd au nouveau jdc courant (en poursuite) - if isinstance(pickle_context[elem],ASSD) : - pickle_context[elem].jdc=self.jdc - pickle_context[elem].parent=self.jdc - # pour que sds_dict soit cohérent avec g_context - self.jdc.sds_dict[elem] = pickle_context[elem] - assert elem == pickle_context[elem].nom - if elem in self.g_context.keys(): - poursu_class=self.g_context[elem].__class__ - if poursu_class!=pickle_class : - UTMESS('F','Poursuite',"Types incompatibles entre glob.1 et pick.1 pour concept de nom "+elem) - return - elif isinstance(pickle_context[elem],ASSD) and pickle_class not in (CO,entier) : - # on n'a pas trouvé le concept dans la base et sa classe est ASSD : ce n'est pas normal - # sauf dans le cas de CO : il n'a alors pas été typé et c'est normal qu'il soit absent de la base - # meme situation pour le type 'entier' produit uniquement par DEFI_FICHIER - UTMESS('F','Poursuite',"Concept de nom "+elem+" et de type "+str(pickle_class)+" introuvable dans la base globale") - return - if pickle_context[elem]==None : del pickle_context[elem] - self.g_context.update(pickle_context) - return - - else: - # Si le module d'execution n est pas accessible ou glob.1 absent on - # demande un fichier (EFICAS) - # Il faut éviter de réinterpréter le fichier à chaque appel de - # POURSUITE - if hasattr(self,'fichier_init'): - return - self.make_poursuite() - -def get_pickled_context(): - """ - Cette fonction permet de réimporter dans le contexte courant du jdc (jdc.g_context) - les objets python qui auraient été sauvegardés, sous forme pickled, lors d'une - précédente étude. Un fichier pick.1 doit etre présent dans le répertoire de travail - """ - if os.path.isfile("pick.1"): - file="pick.1" - else: return None - - # Le fichier pick.1 est présent. On essaie de récupérer les objets python sauvegardés - context={} - try: - file=open(file,'r') - # Le contexte sauvegardé a été picklé en une seule fois. Il est seulement - # possible de le récupérer en bloc. Si cette opération echoue, on ne récupère - # aucun objet. - context=pickle.load(file) - file.close() - except: - # En cas d'erreur on ignore le contenu du fichier - # traceback.print_exc() - return None - - return context - -def POURSUITE_context(self,d): - """ - Fonction op_init de la macro POURSUITE - """ - # self représente la macro POURSUITE ... - d.update(self.g_context) - # Une commande POURSUITE n'est possible qu'au niveau le plus haut - # On ajoute directement les concepts dans le contexte du jdc - # XXX est ce que les concepts ne sont pas ajoutés plusieurs fois ?? - for v in self.g_context.values(): - if isinstance(v,ASSD) : - self.jdc.sds.append(v) - -def build_poursuite(self,**args): - """ - Fonction ops pour la macro POURSUITE - """ - # Pour POURSUITE on ne modifie pas la valeur initialisee dans ops.POURSUITE - # Il n y a pas besoin d executer self.codex.poursu (c'est deja fait dans - # la fonction sdprod de la commande (ops.POURSUITE)) - self.set_icmd(1) - self.jdc.UserError=self.codex.error - return 0 - -def INCLUDE(self,UNITE,**args): - """ - Fonction sd_prod pour la macro INCLUDE - """ - if not UNITE : return - if hasattr(self,'unite'):return - self.unite=UNITE - - if self.jdc and self.jdc.par_lot == 'NON': - # On est en mode commande par commande, on appelle la methode speciale - self.Execute_alone() - - self.make_include(unite=UNITE) - -def INCLUDE_context(self,d): - """ - Fonction op_init pour macro INCLUDE - """ - for k,v in self.g_context.items(): - d[k]=v - -def build_include(self,**args): - """ - Fonction ops de la macro INCLUDE appelée lors de la phase de Build - """ - # Pour presque toutes les commandes (sauf FORMULE et POURSUITE) - # le numero de la commande n est pas utile en phase de construction - # La macro INCLUDE ne sera pas numérotée (incrément=None) - ier=0 - self.set_icmd(None) - icmd=0 - # On n'execute pas l'ops d'include en phase BUILD car il ne sert a rien. - #ier=self.codex.opsexe(self,icmd,-1,1) - return ier - -def detruire(self,d): - """ - Cette fonction est la fonction op_init de la PROC DETRUIRE - """ - if hasattr(self,"executed") and self.executed == 1: - return - if self["CONCEPT"]!=None: - sd=[] - for mc in self["CONCEPT"]: - mcs=mc["NOM"] - if mcs is None:continue - if type(mcs) == types.ListType or type(mcs) == types.TupleType: - for e in mcs: - if isinstance(e,ASSD): - sd.append(e) - e=e.nom - # traitement particulier pour les listes de concepts, on va mettre à None - # le terme de l'indice demandé dans la liste : - # nomconcept_i est supprimé, nomconcept[i]=None - indice=e[e.rfind('_')+1:] - concept_racine=e[:e.rfind('_')] - if indice!='' and d.has_key(concept_racine) and type(d[concept_racine])==types.ListType: - try : - indici=int(indice) - d[concept_racine][indici]=None - except ValueError : pass - # pour tous les concepts : - if d.has_key(e):del d[e] - if self.jdc.sds_dict.has_key(e):del self.jdc.sds_dict[e] - else: - if isinstance(mcs,ASSD): - sd.append(mcs) - mcs=mcs.nom - # traitement particulier pour les listes de concepts, on va mettre à None - # le terme de l'indice demandé dans la liste : - # nomconcept_i est supprimé, nomconcept[i]=None - indice=mcs[mcs.rfind('_')+1:] - concept_racine=mcs[:mcs.rfind('_')] - if indice!='' and d.has_key(concept_racine) and type(d[concept_racine])==types.ListType: - try : - indici=int(indice) - d[concept_racine][indici]=None - except ValueError : pass - # pour tous les concepts : - if d.has_key(mcs):del d[mcs] - if self.jdc.sds_dict.has_key(mcs):del self.jdc.sds_dict[mcs] - for s in sd: - # On signale au parent que le concept s n'existe plus apres l'étape self - self.parent.delete_concept_after_etape(self,s) - -def subst_materiau(text,NOM_MATER,EXTRACTION,UNITE_LONGUEUR): - """ - Cette fonction retourne un texte obtenu à partir du texte passé en argument (text) - en substituant le nom du materiau par NOM_MATER - et en réalisant les extractions spéciifées dans EXTRACTION - """ - lines=string.split(text,'\n') - -##### traitement de UNIT : facteur multiplicatif puissance de 10 - regmcsu=re.compile(r" *(.*) *= *([^ ,]*) *## +([^ ]*) *([^ ]*)") - ll_u=[] - for l in lines: - m=regmcsu.match(l) - if m: - if m.group(3) == "UNIT": - if UNITE_LONGUEUR=='M' : coef = '0' - elif UNITE_LONGUEUR=='MM' : coef = m.group(4) - ll_u.append(m.group(1)+" = "+m.group(2)+coef) - else : ll_u.append(l) - else : ll_u.append(l) - -##### traitement de EXTRACTION - if EXTRACTION: - regmcf=re.compile(r" *(.*) *= *_F\( *## +(.*) +(.*)") - regmcs=re.compile(r" *(.*) *= *([^ ,]*) *, *## +([^ ]*) *([^ ]*)") - regfin=re.compile(r" *\) *") - ll=[] - temps={};lmcf=[] - for e in EXTRACTION: - mcf=e['COMPOR'] - lmcf.append(mcf) - temps[mcf]=e['TEMP_EVAL'] - FLAG=0 - for l in ll_u: - m=regmcf.match(l) - if m: # On a trouve un mot cle facteur "commentarise" - if m.group(2) == "SUBST": # il est de plus substituable - if temps.has_key(m.group(3)): # Il est a substituer - ll.append(" "+m.group(3)+"=_F(") - mcf=m.group(3) - TEMP=temps[mcf] - FLAG=1 # Indique que l'on est en cours de substitution - else: # Il n est pas a substituer car il n est pas dans la liste demandee - ll.append(l) - else: # Mot cle facteur commentarise non substituable - ll.append(l) - else: # La ligne ne contient pas un mot cle facteur commentarise - if FLAG == 0: # On n est pas en cours de substitution - ll.append(l) - else: # On est en cours de substitution. On cherche les mots cles simples commentarises - m=regmcs.match(l) - if m: # On a trouve un mot cle simple commentarise - if m.group(3) == "EVAL": - ll.append(" "+m.group(1)+' = '+m.group(4)+"("+str(TEMP)+'),') - elif m.group(3) == "SUPPR": - pass - else: - ll.append(l) - else: # On cherche la fin du mot cle facteur en cours de substitution - m=regfin.match(l) - if m: # On l a trouve. On le supprime de la liste - FLAG=0 - del temps[mcf] - ll.append(l) - else: - ll=ll_u - - lines=ll - ll=[] - for l in lines: - l=re.sub(" *MAT *= *",NOM_MATER+" = ",l,1) - ll.append(l) - text=string.join(ll,'\n') - return text - -def post_INCLUDE(self): - """ - Cette fonction est executée apres toutes les commandes d'un INCLUDE (RETOUR) - Elle sert principalement pour les INCLUDE_MATERIAU : remise a blanc du prefixe Fortran - """ - self.codex.opsexe(self,0,-1,2) - -def INCLUDE_MATERIAU(self,NOM_AFNOR,TYPE_MODELE,VARIANTE,TYPE_VALE,NOM_MATER, - EXTRACTION,UNITE_LONGUEUR,INFO,**args): - """ - Fonction sd_prod pour la macro INCLUDE_MATERIAU - """ - mat=string.join((NOM_AFNOR,'_',TYPE_MODELE,'_',VARIANTE,'.',TYPE_VALE),'') - if not hasattr(self,'mat') or self.mat != mat or self.nom_mater != NOM_MATER : - # On récupère le répertoire des matériaux dans les arguments - # supplémentaires du JDC - rep_mat=self.jdc.args.get("rep_mat","NOrep_mat") - f=os.path.join(rep_mat,mat) - self.mat=mat - self.nom_mater=NOM_MATER - if not os.path.isfile(f): - del self.mat - self.make_contexte(f,"#Texte sans effet pour reinitialiser le contexte a vide\n") - raise "Erreur sur le fichier materiau: "+f - # Les materiaux sont uniquement disponibles en syntaxe Python - # On lit le fichier et on supprime les éventuels \r - text=string.replace(open(f).read(),'\r\n','\n') - # On effectue les substitutions necessaires - self.text= subst_materiau(text,NOM_MATER,EXTRACTION,UNITE_LONGUEUR) - if INFO == 2: - print "INCLUDE_MATERIAU: ", self.mat,' ',NOM_MATER,'\n' - print self.text - # on execute le texte fourni dans le contexte forme par - # le contexte de l etape pere (global au sens Python) - # et le contexte de l etape (local au sens Python) - # Il faut auparavant l'enregistrer aupres du module linecache (utile pour nommage.py) - linecache.cache[f]=0,0,string.split(self.text,'\n'),f - - self.postexec=post_INCLUDE - - if self.jdc.par_lot == 'NON': - # On est en mode commande par commande, on appelle la methode speciale - self.Execute_alone() - - self.make_contexte(f,self.text) - for k,v in self.g_context.items() : - if isinstance(v,ASSD) and k!=v.nom : del self.g_context[k] - -def build_procedure(self,**args): - """ - Fonction ops de la macro PROCEDURE appelée lors de la phase de Build - """ - ier=0 - # Pour presque toutes les commandes (sauf FORMULE et POURSUITE) - # le numero de la commande n est pas utile en phase de construction - # On ne numérote pas une macro PROCEDURE (incrément=None) - self.set_icmd(None) - icmd=0 - #ier=self.codex.opsexe(self,icmd,-1,3) - return ier - -def build_DEFI_FICHIER(self,**args): - """ - Fonction ops de la macro DEFI_FICHIER - """ - ier=0 - self.set_icmd(1) - icmd=0 - ier=self.codex.opsexe(self,icmd,-1,26) - return ier diff --git a/Aster/Cata/pre74/FORM.py b/Aster/Cata/pre74/FORM.py deleted file mode 100644 index 9d4b0b73..00000000 --- a/Aster/Cata/pre74/FORM.py +++ /dev/null @@ -1,283 +0,0 @@ -# -*- 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 string,traceback - -from Accas import MACRO_ETAPE,MACRO -from Extensions import interpreteur_formule - - -class FORM_ETAPE(MACRO_ETAPE): - - interpreteur = interpreteur_formule.Interpreteur_Formule - - def McBuild(self): - self.mc_liste=self.build_mc() - # on crée la liste des types autorisés (liste des noms de mots-clés - # simples dans le catalogue de FORMULE) - self.l_types_autorises = self.definition.entites.keys() - # en plus de la construction traditionnelle des fils de self - # il faut pour les FORMULE décortiquer l'expression ... - self.type_retourne,self.arguments,self.corps = self.analyse_formule() - - def analyse_formule(self): - """ - Cette méthode décortique l'expression de la FORMULE. - Elle retourne 3 valeurs: - - le type retourné par la FORMULE - - les arguments de la FORMULE - - le corps de la FORMULE, cad son expression - """ - if len(self.mc_liste) == 0: - # pas de fils pour self --> la FORMULE est incomplète - return None,None,None - child = self.mc_liste[0] # child est un MCSIMP - type_retourne = child.definition.nom - valeur = child.getval() - # c'est dans valeur que se trouvent la liste des arguments et le corps de la fonction - try: - l_args,corps = string.split(valeur,'=',1) - except: - # pas de signe = --> la formule est fausse - return type_retourne,None,None - l_args = string.strip(l_args) - corps = string.strip(corps) - return type_retourne,l_args,corps - - def get_nom(self): - """ - Retourne le nom de la FORMULE, cad le nom de la SD si elle existe, - la string vide sinon - """ - if self.sd : - return self.sd.get_name() - else: - return '' - - def get_formule(self): - """ - Retourne un tuple décrivant la formule : - (nom,type_retourne,arguments,corps) - """ - t,a,c = self.analyse_formule() - n = self.get_nom() - return (n,t,a,c) - - def verif_arguments(self,arguments = None): - """ - Vérifie si les arguments passés en argument (si aucun prend les arguments courants) - sont des arguments valide pour une FORMULE. - Retourne : - - un booléen, qui vaut 1 si arguments licites, 0 sinon - - un message d'erreurs ('' si illicites) - """ - if not arguments : - arguments = self.arguments - if not arguments : - return 0,"Une formule doit avoir au minimum un argument" - # il faut au préalable enlever les parenthèses ouvrantes et fermantes - # encadrant les arguments - arguments = string.strip(arguments) - if arguments[0] != '(': - return 0,"La liste des arguments d'une formule doit être entre parenthèses : parenthèse ouvrante manquante" - if arguments[-1] != ')': - return 0,"La liste des arguments d'une formule doit être entre parenthèses : parenthèse fermante manquante" - # on peut tester la syntaxe de chaque argument maintenant - erreur='' - test = 1 - arguments = arguments[1:-1] # on enlève les parenthèses ouvrante et fermante - l_arguments = string.split(arguments,',') - for argument in l_arguments: - argument = string.strip(argument) - try: - typ,nom = string.split(argument,':') - # pas de vérification sur le nom de l'argument - # vérification du type de l'argument - typ = string.strip(typ) - if typ not in self.l_types_autorises : - test = 0 - erreur = erreur + "Le type "+typ+" n'est pas un type permis pour "+nom+'\n' - except: - # l'argument ne respecte pas la syntaxe : typ_arg : nom_arg - test = 0 - erreur = erreur+"Syntaxe argument non valide : "+argument+'\n' - return test,erreur - - def verif_corps(self,corps=None,arguments=None): - """ - Cette méthode a pour but de vérifier si le corps de la FORMULE - est syntaxiquement correct. - Retourne : - - un booléen, qui vaut 1 si corps de FORMULE licite, 0 sinon - - un message d'erreurs ('' si illicite) - """ - if not corps : - corps = self.corps - if not arguments : - arguments = self.arguments - formule=(self.get_nom(),self.type_retourne,arguments,corps) - # on récupère la liste des constantes et des autres fonctions prédéfinies - # et qui peuvent être utilisées dans le corps de la formule courante - l_ctes,l_form = self.jdc.get_parametres_fonctions_avant_etape(self) - # on crée un objet vérificateur - try: - verificateur = self.interpreteur(formule=formule, - constantes = l_ctes, - fonctions = l_form) - except : - traceback.print_exc() - return 0,"Impossible de réaliser la vérification de la formule" - return verificateur.isvalid(),verificateur.report() - - def verif_nom(self,nom=None): - """ - Vérifie si le nom passé en argument (si aucun prend le nom courant) - est un nom valide pour une FORMULE. - Retourne : - - un booléen, qui vaut 1 si nom licite, 0 sinon - - un message d'erreurs ('' si illicite) - """ - if not nom : - nom = self.get_nom() - if nom == "" : - return 0,"Pas de nom donné à la FORMULE" - if len(nom) > 8 : - return 0,"Un nom de FORMULE ne peut dépasser 8 caractères" - sd = self.parent.get_sd_autour_etape(nom,self) - if sd : - return 0,"Un concept de nom %s existe déjà !" %nom - return 1,'' - - def verif_type(self,type=None): - """ - Vérifie si le type passé en argument (si aucun prend le type courant) - est un type valide pour une FORMULE. - Retourne : - - un booléen, qui vaut 1 si type licite, 0 sinon - - un message d'erreurs ('' si illicite) - """ - if not type: - type = self.type_retourne - if not type : - return 0,"Le type de la valeur retournée n'est pas spécifié" - if type not in self.l_types_autorises: - return 0,"Une formule ne peut retourner une valeur de type : %s" %type - return 1,'' - - def verif_formule(self,formule=None): - """ - Vérifie la validité de la formule passée en argument. - Cette nouvelle formule est passée sous la forme d'un tuple : (nom,type_retourne,arguments,corps) - Si aucune formule passée, prend les valeurs courantes de la formule - Retourne : - - un booléen, qui vaut 1 si formule licite, 0 sinon - - un message d'erreurs ('' si illicite) - """ - if not formule : - formule = (None,None,None,None) - test_nom,erreur_nom = self.verif_nom(formule[0]) - test_type,erreur_type = self.verif_type(formule[1]) - if formule[2]: - args = '('+formule[2]+')' - else: - args = None - test_arguments,erreur_arguments = self.verif_arguments(args) - test_corps,erreur_corps = self.verif_corps(corps = formule[3], arguments = args) - # test global = produit des tests partiels - test = test_nom*test_type*test_arguments*test_corps - # message d'erreurs global = concaténation des messages partiels - erreur = '' - if not test : - for mess in (erreur_nom,erreur_type,erreur_arguments,erreur_corps): - erreur = erreur+(len(mess) > 0)*'\n'+mess - return test,erreur - - def update(self,formule): - """ - Méthode externe. - Met à jour les champs nom, type_retourne,arguments et corps de la FORMULE - par les nouvelles valeurs passées dans le tuple formule. - On stocke les valeurs SANS vérifications. - """ - self.init_modif() - self.type_retourne = formule[1] - self.arguments = '('+formule[2]+')' - self.corps = formule[3] - # il faut ajouter le mot-clé simple correspondant dans mc_liste - # pour cela on utilise la méthode générale build_mc - # du coup on est obligé de modifier le dictionnaire valeur de self ... - self.valeur = {} - self.valeur[self.type_retourne] = self.arguments+' = ' + self.corps - self.McBuild() - sd = self.get_sd_prod() - if sd: - sd.nom = formule[0] - - def active(self): - """ - Rend l'etape courante active. - Il faut ajouter la formule au contexte global du JDC - """ - self.actif = 1 - nom = self.get_nom() - if nom == '' : return - try: - self.jdc.append_fonction(self.sd) - except: - pass - - def inactive(self): - """ - Rend l'etape courante inactive - Il faut supprimer la formule du contexte global du JDC - """ - self.actif = 0 - if not self.sd : return - self.jdc.del_fonction(self.sd) - - def delete_concept(self,sd): - """ - Inputs : - - sd=concept detruit - Fonction : - Mettre a jour les mots cles de l etape et eventuellement le concept produit si reuse - suite à la disparition du concept sd - Seuls les mots cles simples MCSIMP font un traitement autre que de transmettre aux fils, - sauf les objets FORM_ETAPE qui doivent vérifier que le concept détruit n'est pas - utilisé dans le corps de la fonction - """ - self.init_modif() - - def replace_concept(self,old_sd,sd): - """ - Inputs : - - old_sd=concept remplace - - sd = nouveau concept - Fonction : - Les objets FORM_ETAPE devraient vérifier que le concept remplacé n'est pas - utilisé dans le corps de la fonction - """ - self.init_modif() - -class FORM(MACRO): - class_instance=FORM_ETAPE - diff --git a/Aster/Cata/pre74/__init__.py b/Aster/Cata/pre74/__init__.py deleted file mode 100644 index 8b52b4cf..00000000 --- a/Aster/Cata/pre74/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -import Accas - -from FORM import FORM,FORM_ETAPE -Accas.FORM=FORM -Accas.FORM_ETAPE=FORM_ETAPE - -import compooper,compoproc,compomacro,compocomm,compoparam -import compoformule diff --git a/Aster/Cata/pre74/compocomm.py b/Aster/Cata/pre74/compocomm.py deleted file mode 100644 index 51892998..00000000 --- a/Aster/Cata/pre74/compocomm.py +++ /dev/null @@ -1,33 +0,0 @@ -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -from Editeur import compocomm -import ongletpanel - -class COMMPanel(ongletpanel.OngletPanel,compocomm.COMMPanel) : - """ - """ -class COMMTreeItem(compocomm.COMMTreeItem): - panel = COMMPanel - -import Extensions.commentaire -treeitem = COMMTreeItem -objet = Extensions.commentaire.COMMENTAIRE - -Extensions.commentaire.COMMENTAIRE.itemeditor=COMMTreeItem diff --git a/Aster/Cata/pre74/compoformule.py b/Aster/Cata/pre74/compoformule.py deleted file mode 100644 index 7d6b778a..00000000 --- a/Aster/Cata/pre74/compoformule.py +++ /dev/null @@ -1,226 +0,0 @@ -# -*- 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 les classes permettant de définir les objets graphiques -représentant un objet de type FORMULE, cad le panneau et l'item de l'arbre -d'EFICAS -""" - -# import modules Python -from Tkinter import * -import Pmw - -# import modules EFICAS -from Editeur import widgets -from Editeur import compoformule -from Editeur import fontes -import ongletpanel - -Fonte_TITRE = fontes.standard_gras_souligne - -class FORMULEPanel(ongletpanel.OngletPanel ,compoformule.FORMULEPanel): - """ - Classe servant à construire le panneau associé à un paramètre. - C'est au moyen de ce panneau que l'utilisateur peut accéder - aux nom et valeur du paramètre en vue éventuellement de les - modifier. - """ - - def makeFormulePage(self,page): - """ - Crée la page qui permet d'afficher et d'éditer le texte de la FORMULE - """ - self.frame_valeur = Frame(page) - self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw') - # affichage du titre du panneau - self.titre = StringVar() - self.titre.set("FORMULE "+self.node.item.get_nom()) - Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).place(relx=0.5,rely=0.,anchor='n') - # création des labels et entries associés aux nom, type retourné, arguments et corps de la FORMULE - Label(self.frame_valeur,text= 'Nom de la formule : ').place(relx=0.,rely=0.1) - self.entry_nom = Entry(self.frame_valeur) - Label(self.frame_valeur,text= 'Type retourné : ').place(relx=0.,rely=0.25) - self.option_menu_typ = Pmw.OptionMenu(self.frame_valeur,labelpos='w', - label_text='', - items = self.node.item.get_liste_types_autorises()) - self.option_menu_typ.place(relx=0.33,rely=0.23) - Label(self.frame_valeur,text= 'Arguments : ').place(relx=0.,rely=0.40) - self.entry_arg = Entry(self.frame_valeur) - Label(self.frame_valeur,text= 'Expression : ').place(relx=0.,rely=0.65) - self.entry_exp = Entry(self.frame_valeur) - # binding sur les entries - self.entry_nom.bind("",self.verif_nom) - self.entry_arg.bind("",self.verif_arguments) - self.entry_exp.bind("",self.verif_corps) - # affichage des entries - self.entry_nom.place(relx=0.35,rely=0.10,relwidth=0.2) - self.entry_arg.place(relx=0.35,rely=0.40,relwidth=0.4) - - # affichage d'une phrase d'aide pour les arguments - aide = """Entrer les arguments sous la forme -TYPE : VARIABLE séparés par des virgules (,) -Exemple REEL:INST,ENTIER:COEF """ - Label(self.frame_valeur,text=aide, justify="l").place(relx=0.5,rely=0.47,anchor='n') - - self.entry_exp.place(relx=0.35,rely=0.65,relwidth=0.60) - # affichage d'une phrase d'aide pour l'expression - aide = """Un retour de chariot dans une zone de saisie vous permet de vérifier si -la valeur que vous avez entrée est valide. -Ce n'est qu'après avoir appuyé sur le bouton Valider que les nouvelles -valeurs seront effectivement prises en compte.""" - Label(self.frame_valeur,text=aide).place(relx=0.5,rely=0.75,anchor='n') - - # affichage des nom, type retourné, arguments et corps de la FORMULE - self.display_valeur() - # affichage des boutons - self.make_buttons() - # entry_nom prend le focus - self.entry_nom.focus() - - def change_valeur(self): - """ - Stocke la nouvelle FORMULE décrite par l'utilisateur - """ - if self.parent.modified == 'n' : self.parent.init_modif() - # on récupère les nouveaux nom, type retourné, arguments et corps de la FORMULE - new_nom = self.entry_nom.get() - new_typ = self.option_menu_typ.getcurselection() - new_arg = self.entry_arg.get() - new_exp = self.entry_exp.get() - # on essaie de les stocker - test,erreur = self.node.item.save_formule(new_nom,new_typ,new_arg,new_exp) - if test : - # on a pu stocker les nouveaux paramètres : il faut rafraîchir l'affichage - self.node.update() - self.display_valeur() - self.parent.appli.affiche_infos("FORMULE %s modifiée" %self.node.item.get_nom()) - else: - # la formule est incorrecte : on affiche les erreurs - widgets.showerror("Formule incorrecte",erreur) - self.parent.appli.affiche_infos("FORMULE %s non modifiée" %self.node.item.get_nom()) - - def display_valeur(self): - """ - Affiche dans self.widget_text de la valeur de l'objet FORMULE - (annule d'éventuelles modifications faite par l'utilisateur) - """ - # on efface tout texte affiché dans les entries - self.entry_nom.delete(0,END) - self.entry_arg.delete(0,END) - self.entry_exp.delete(0,END) - # on rafraîchit le titre du panneau - self.titre.set('FORMULE '+self.node.item.get_nom()) - # on insére les nouveaux nom, type retourné, arguments et corps de la FORMULE - nom = self.node.item.get_nom() - if nom != '': - self.entry_nom.insert(END,nom) - type = self.node.item.get_type() - if type : - self.option_menu_typ.invoke(type) - args = self.node.item.get_args() - if args: - self.entry_arg.insert(END,args) - corps = self.node.item.get_corps() - if corps : - self.entry_exp.insert(END,self.node.item.get_corps()) - - def verif_corps(self,event=None): - """ - Lance la vérification du corps de formule présent dans entry_exp - """ - new_nom = self.entry_nom.get() - new_typ = self.option_menu_typ.getcurselection() - new_arg = self.entry_arg.get() - new_exp = self.entry_exp.get() - if new_exp == '': - test,erreur = 0,"Aucune expression fournie !" - else: - test,erreur = self.node.item.verif_formule((new_nom,new_typ,new_arg,new_exp)) - - if not test: - widgets.showerror("Corps de FORMULE invalide",erreur) - self.entry_exp.focus() - self.entry_exp.selection_range(0,END) - self.parent.appli.affiche_infos("Corps de FORMULE invalide") - else: - self.parent.appli.affiche_infos("Corps de FORMULE valide") - - -class FORMULETreeItem(compoformule.FORMULETreeItem): - """ - Classe servant à définir l'item porté par le noeud de l'arbre d'EFICAS - qui représente la FORMULE - """ - panel = FORMULEPanel - -# --------------------------------------------------------------------------- -# Méthodes permettant la modification et la lecture des attributs -# du paramètre = API graphique de la FORMULE pour Panel et EFICAS -# --------------------------------------------------------------------------- - - def get_args(self): - """ - Retourne les arguments de la FORMULE - """ - args = self.object.arguments - if args : - return self.object.arguments[1:-1] #on enlève les parenthèses ouvrante et fermante - else: - return None - - def get_corps(self): - """ - Retourne le corps de la FORMULE - """ - return self.object.corps - - def save_formule(self,new_nom,new_typ,new_arg,new_exp): - """ - Vérifie si (new_nom,new_typ,new_arg,new_exp) définit bien une FORMULE - licite : - - si oui, stocke ces paramètres comme nouveaux paramètres de la - FORMULE courante et retourne 1 - - si non, laisse les paramètres anciens de la FORMULE inchangés et - retourne 0 - """ - test,erreur = self.object.verif_formule(formule=(new_nom,new_typ,new_arg, - new_exp)) - if test : - # la formule est bien correcte : on sauve les nouveaux paramètres - self.object.update(formule=(new_nom,new_typ,new_arg,new_exp)) - return test,erreur - -# --------------------------------------------------------------------------- -# Accès aux méthodes de vérification de l'objet FORM_ETAPE -# --------------------------------------------------------------------------- - - def verif_formule(self,formule): - """ - Lance la vérification de FORMULE passée en argument - """ - return self.object.verif_formule(formule=formule) - -import Accas -treeitem =FORMULETreeItem -objet = Accas.FORM_ETAPE - -Accas.FORM.itemeditor=FORMULETreeItem - diff --git a/Aster/Cata/pre74/compomacro.py b/Aster/Cata/pre74/compomacro.py deleted file mode 100644 index 12dfafc9..00000000 --- a/Aster/Cata/pre74/compomacro.py +++ /dev/null @@ -1,61 +0,0 @@ -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -# Modules Python - -# Modules Eficas -from Editeur import compomacro -import ongletpanel - -# -__version__="$Name: V6_main $" -__Id__="$Id: compomacro.py,v 1.1 2004-11-19 09:06:24 eficas Exp $" -# - -class MACROPanel(ongletpanel.OngletPanel,compomacro.MACROPanel) : - """ - """ - -class MACROTreeItem(compomacro.MACROTreeItem): - panel=MACROPanel - -class INCLUDETreeItem(compomacro.INCLUDETreeItem): - panel=MACROPanel - -class INCLUDE_MATERIAUTreeItem(INCLUDETreeItem): - pass - -class POURSUITETreeItem(INCLUDETreeItem): - pass - -def treeitem(appli, labeltext, object, setfunction=None): - if object.nom == "INCLUDE_MATERIAU": - return INCLUDE_MATERIAUTreeItem(appli, labeltext, object, setfunction) - elif object.nom == "INCLUDE": - return INCLUDETreeItem(appli, labeltext, object, setfunction) - elif object.nom == "POURSUITE": - return POURSUITETreeItem(appli, labeltext, object, setfunction) - else: - return MACROTreeItem(appli, labeltext, object, setfunction) - -import Accas -objet=Accas.MACRO_ETAPE - -Accas.MACRO.itemeditor=MACROTreeItem - diff --git a/Aster/Cata/pre74/compooper.py b/Aster/Cata/pre74/compooper.py deleted file mode 100644 index 51ce6a94..00000000 --- a/Aster/Cata/pre74/compooper.py +++ /dev/null @@ -1,33 +0,0 @@ -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -from Editeur import compooper -import ongletpanel - -class OPERPanel(ongletpanel.OngletPanel,compooper.OPERPanel) : - """ - """ -class EtapeTreeItem(compooper.EtapeTreeItem): - panel = OPERPanel - -import Accas -treeitem = EtapeTreeItem -objet = Accas.ETAPE - -Accas.OPER.itemeditor=EtapeTreeItem diff --git a/Aster/Cata/pre74/compoparam.py b/Aster/Cata/pre74/compoparam.py deleted file mode 100644 index eafb66ed..00000000 --- a/Aster/Cata/pre74/compoparam.py +++ /dev/null @@ -1,33 +0,0 @@ -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -from Editeur import compoparam -import ongletpanel - -class PARAMPanel(ongletpanel.OngletPanel,compoparam.PARAMPanel) : - """ - """ -class PARAMTreeItem(compoparam.PARAMTreeItem): - panel = PARAMPanel - -import Extensions.parametre -treeitem = PARAMTreeItem -objet = Extensions.parametre.PARAMETRE - -Extensions.parametre.PARAMETRE.itemeditor=PARAMTreeItem diff --git a/Aster/Cata/pre74/compoproc.py b/Aster/Cata/pre74/compoproc.py deleted file mode 100644 index 9bc80c34..00000000 --- a/Aster/Cata/pre74/compoproc.py +++ /dev/null @@ -1,34 +0,0 @@ -# CONFIGURATION MANAGEMENT OF EDF VERSION -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -from Editeur import compoproc -import ongletpanel - -class PROCPanel(ongletpanel.OngletPanel,compoproc.PROCPanel) : - """ - """ - -class ProcEtapeTreeItem(compoproc.ProcEtapeTreeItem): - panel = PROCPanel - -import Accas -treeitem = ProcEtapeTreeItem -objet = Accas.PROC_ETAPE - -Accas.PROC.itemeditor=ProcEtapeTreeItem diff --git a/Aster/Cata/pre74/ongletpanel.py b/Aster/Cata/pre74/ongletpanel.py deleted file mode 100644 index 7b373641..00000000 --- a/Aster/Cata/pre74/ongletpanel.py +++ /dev/null @@ -1,89 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== -from Tkinter import * - -class OngletPanel : - """ - Onglet Panel parametre et commentaire avec param_eval - """ - def makeParamCommentPage_for_etape(self,page): - """ - Crée la page qui offre le choix à l'utilisateur d'ajouter un commentaire - ou un paramètre, avant ou après le noeud courant dans l'arbre. - Cette page est destinée aux objets de niveau ETAPE cad à toutes les CMD, - les commentaires inter commandes et les paramètres - """ - # 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.28) - self.frame_param.place(relx=0,rely=0.28,relwidth=1,relheight=0.28) - 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') - but_comment_avant = Button(self.frame_comment, - text = "AVANT "+self.node.item.get_nom(), - command = lambda s=self :s.ajout_commentaire(ind = 'before')) - but_comment_apres = Button(self.frame_comment, - text = "APRES "+self.node.item.get_nom(), - command = self.ajout_commentaire) - but_comment_avant.place(relx=0.6,rely=0.3,anchor='w',relwidth=0.3) - but_comment_apres.place(relx=0.6,rely=0.7,anchor='w',relwidth=0.3) - # remplissage de la frame paramètre - Label(self.frame_param,text = "Insérer un paramètre :").place(relx=0.1,rely=0.5,anchor='w') - but_param_avant = Button(self.frame_param, - text = "AVANT "+self.node.item.get_nom(), - command = lambda s=self :s.ajout_parametre(ind = 'before')) - but_param_apres = Button(self.frame_param, - text = "APRES "+self.node.item.get_nom(), - command = self.ajout_parametre) - but_param_avant.place(relx=0.6,rely=0.3,anchor='w',relwidth=0.3) - but_param_apres.place(relx=0.6,rely=0.7,anchor='w',relwidth=0.3) - # 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') - 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", - command = self.comment_commande).place(relx=0.5,rely=0.5,anchor='center') - - def ajout_parametre_eval(self,ind='after'): - """ - Ajoute un paramètre EVAL à l'intérieur du JDC : - - si ind='after' : l'ajoute après l'objet courant - - si ind='before' : l'ajoute avant. - """ - if self.parent.modified == 'n' : self.parent.init_modif() - return self.node.append_brother("PARAMETRE_EVAL",ind) - - def destroy(self): - self.frame_eval=None - diff --git a/Installation/Doc_technique_install.doc b/Installation/Doc_technique_install.doc deleted file mode 100755 index 285a3549f886257670f9fd2c2790cb29b687d7ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49152 zcmeI5349dg`Nt;-;a(tIq9P0;8Wf@&RYAawfPx}WE-y4Jn@zHk?1tS9hZnZ>Y&|L7 z*y2^K{n*xeUx?PLRZ;)esuU3skZ8T|!UOn!fA74LY%Z>7)i#sQH_yE9%)B!@^Ul1_ zywCeQ^WqCRt8ch-kGGs!(+DTa*|N2j(>yIdgZWH9-NA9%GOxTXTeogib`~((H2sLq zz$7QmU&?Wv(M}ARaOQIrgEj6#N;3a8A8nB(wjmP*#X zOvzPM&t_=hj6Iyp3@z~M9`pYipQAH@CNhU@TQ3ICY>*YAJ7 z&iT&)|Nd{mxoHjla^(j|OSZRCEkF)*gig>C{PlN4>YnZedqZ#72l~LiupbP7^l}=y z{|B<(AQ%ikfrH@?I26Xfj@!t6@pC3#9(QpimgJWSlOb36RoslQA-6|d~VVmqH`GpXHuxAu9cY&UORh@+H%s)!sl{L zyRP~B|20f)dls{qAUT46lBZKaB8& z)boBd=sBw8y0)r|dJe12Dg@~krJ(bh0^RFpfa>Zw&=xKN9phRyQd^|FF{6(iJ9*-m z(UV3`_Kx*I@0e8&b?j;fRhA}Swxv*&qcYUCjEaXV$|A9p(VN^NlGpu3GuIBUn)$&D?Uy!O37a;Y_ zTZGi}aS2lO?KY(9)1Q%g?%j_}uTPDw3#v~PX%0^F`Yp%iQ!!Dds+N&gJ)dpnb?oEg ziLy{>USXWdUt?QmO19EE&LPe~3XmEBCQ7Xys@lgU*pQeUz0)TX~F?)2uws z$~jh^X65NtF0k@vRxUO&=-g=2H(7bJmA|v{Rx9tY@-8dyw(?~wU$yczD_2^%%F6ex z{KCpjMh2ZNHr-E;U(VlAMh2aq+H{eXQ7cci%P+O*%dEWI%4_ZNJFPresx;-EZ{-C> z2Aykc`T;8+vH8#1bnb!PcE=hSbpB-1U3+=?ciMD!o4(7Ydzf_4iP&_JmBmH|of0eW zwfTRy@*|t?sHx|84>L081Z{epl~b*ZTX}|+=NcJwereNxvhop||A9?^Xys>Cc9UA+ z1f3p6<~u#Dbgk@THvM;-_RrrbHh+~puUGKtBJa@Z5H`pEafS#})41}Yh z2rht&;9|HEu7XEk89WYug(u((Xvs6YBXokjU^E;F)8IG=!)!PgZi3&zZSW}k9iD^d z;U)MKTGJMEhAuE3E{7}Nes~Gm(KfV)t}qf#ffD#5+z+q7Yp@BnKuey(z2N|u0#jic zoD2nU0W5~6VFUad-iHt1OW3z9=Lh;iIh+Pp!!>X%+yd`I^8ovTZg3C`fPpXpilG$d z!PW3Otbnz!9$L2JH$yHAgh4PErb7YDfM3BC@EceHkHMR;8s366@HMDSRK?m0dO%P3 z2^<24!EhK2)1VMy5QlP@4QIm7;TLcooDUbnBDezXgnQvWxE~&Zhv8{>2Ht`9;NS2O zY=i*qb0_EwU0^rp20dUO=mVo*42*?iVFH{2B@l%;To3od;>PEg%nu!8NcH{t2(aDp(C`U>&sW#4$rVXb;0+BFuqvVHrFLFTo1<6f!!q zA7~GQ;Rr}V3QmLT;U>5lZh_n3d3YIKf!ARDWhfd`qGge!J3cbkofIz%#hkWXFQZRw z^8B)y@lvPFzFH+e5e=0(9joWv@u5T_K9_g5W=?s_i%=DxK(+Wit8zisOgnGl+G*z< z3ay-xzs_W@Eo3`L!qiJov|_H<)JpwXAc*wYT)Q@TK;k z=|Ov>e#yS{*Ynn@{_o}Mu2Y{5KgGN|(dL_XCfZr^u0;E1meVeocOu#j^Dd-qnx-HB z8K|x|e*N*K>PLbnK<#=|JFPnYPCQ}CmhPPmDb;X63(x#{11v_$OXd0XjdhmQp)6VYyTiR_^F+b-0 zt9q_>3!@3TDOI~BOm-tFGaI4?Rwg5{u$CmR@D#&jyrLw;eG>@;x;QugJnxpL@_%<> z_N^CY-*#d4?=Q^0oz^-xToNgx=e2hKYa|uU%ggKAukNiq7+H&2koVU`2 zHEt+3w>+d>aKDF=<`&bL)Gy@Zx$z365|!nVL@Le+Pxf;Q6Y*%uZV^pYkjJU?j!5UU zG~$LSurgdy$t~T_Wy`WiD&<|PGGnBVcn^}w(n{UYNjFp!jaC0hmfDl<9gWx7+)s_T zKhf~3H$b}HdiWSxpaisp!(j@X2iL#@@F4sXK7-Gph@1H|cobH`8?XvKg)blz#i2V) zhudK}tb|NnV0*v-D1u@*3(kWp;7V8w*TW;Q6kddv;T8A{wcp9FEO|LK&O}r^9vdI6Mo>;RSdRUV%4Y z1Ejwc59WnbFT@AK@h}}uh9W2iz3g5Fo1L#WZ+14@Nr~!|$uwF1@*S67f8kHfPtJ0} zdJn6}aI%lX1ZQmyt-9W zyy0b9VV6DRWR&;b=seVHYkBY2Gi>TQWv+L&EwXB_@?NbC=6gl^)x28vqC-6^&?aYP zR;P7a+78~DAw5^EQHHapZIte-Uc3G|ES=d|IsKho++0>qa|~lLcKsM!dJNj+G^PZ8 zEqy@k`TZH#H>rS3d+-YL@zzXabI+7O`>uDBkX{k%Og)_Z;Kr>t@aB^gk8hnQN$B zHb*erosy@S+`fU4rJ-ap;s$Io8jGgT1ENW;E+sN!lmi+`6p4yN(yUidjx9A(U@A^- z-&UG>yAx({ra9v*>F-sk@l(_QPaQw@cyBAK&lHr;=VZj#_Z;Tj;chaOh?W+QY(-2^?v96DE)S|nYJ23_^quW9yR()Yt=QOtePG3Id%yuy<@ zG`2S9$ZP+TOK)%dnyxs)cQ)etK!;TX(?ioQpO~ukV#4@lazv_ z@-DM!DQenY%9@r-VUv{7rhF-GN=tc@lmaLDqLotQl$J85^`+2BN~u%66gx>Ncal=@ zB&FnOJt=yUQudTDg-=pSpQIE&Etm4Av=l%|DS?tw1SO>mYCW~Dl2QWoJEaIpN*R=t zLa6I5rBG=phLTbaC8Z!rF0}I3Mh1*@b z8l?6=&d7Y{M4OJ;^hH))YUSlt-e%=pMh2Y^Z2ChhKe72;d1C1J`dN9fm4_HfJ+bM# zth~?WudveeA+h~%^(7%k7#Va%TbZ!=7u)nzHvNW`?^xN4K@{4)g^@vLKb!7va+Q^DTDjWF_pBVG5x0~(&dTvto?>LsnPcT#E9cqeS6F$6m4C5vsgXgi zmz(3uS8q4vA7SM zEBhK5bi#eS{6Z@uRu);gz{+!s3_43}`UWeThQN5|uW1O3&O_4>nD1i^vracHfcz6vH_`a%WcKY5-;MMluRK50J z-%rLrP)RBJ+nrFKW&hRSYuSHg2iCMLDNW&XX)3IrJA!^Fy*i9Go7F32|J|46gY9-& zbL&jc{(GX`Zdc`-SidqU?=5RbPM1T--{WY{?tAsIp6rSpSS{4ZuxJ0h4k`QZVDg`3 zKuGP$KM(%#Roj349ADPn($Dv$_Mqu*d!&BJzVz4g)~f#R=lk2$mRf!yH%aYsYNvIk z(x(~s<}B0*@l38Dy06m#Dc#H8t|93kk6)gS=K!|zk1Ks2-`@QHy8TbxMospgCi~9| z-04mBpCr0?@ zfE|Ew3K$nKi5X*tH-Lg3c$qSiu34*}CkjFZ;Y1{o=;tjgNJPp_hK2+%b_lCKM^w9< zc)7+`V8yCs`%1IJrTwyc)Fyd|{1dw8VV?$hg2?Nm?Sbg;AkPGO4_pO*hBswaT~SLc z^)j#b#F_OAv-25Rw%oC+)N?#Lo5edoO(X2E&0Y~Zat{aEbb2gv7dLlYV}Jd7W~V21 zwFs|-OR^hV!i1K)TtXW;Csq$hVHjCOA{+_0)ptXU#oVZ=Xv~hf(G471$e15lfAH&nnrfwcF@Q%8;*Jz3>?yH8YBBpG4kKY&J$95Z_4 z&aZEFR~DaxK{8qzsUF_sS>p=4VNLy9Z=V4@`BI4rGe}DFX_vy>)1?bT2`qx8SMS>?_v~PgHKw8s`t}-TBGd4)J!E_(g28K-a8(GJ2UK+{ujMZE#T~=#h zto`iitFv2=jkt2jP%h})XkjrAw9!1!<{ufwn(7Y{!@^rOvoM6kH0mnZ?|Le^>|IP3f9hH}pzRrL4 zm}Op-_uic#FTHy~UU%}i+Y0iylee8b?Z$yT?BXELI(gN}qwY^2Pda(geF*A0l;@nh z=HxLaZ#j9&$xBWia`K9k2b{Y4Opwi;ao4@cHjsN!l8u#Uo0W;&j2CGfi_3p|w)AhX# zbPaXgCV;NXZLkt-+izR@Z3(;PZ@l}irugqU$5@`e1r4I{?f=qU*FjqE%=oWUos1b7 z^opM9w3rgrDAWPm(~KQ!nGwjyc_OpZu+3dQa=H#fA>%Q}FoKM;!T5#gnxj;1b86#E z{n^QxPPn@>3#G2a$u#>a@%KfY9K*iZS7y!y*^S&+YxXtG?5!J7BeKk%3jIA%)5kD$ zg*|2EjBDA*JvDdqo4U~#-puT!$lnX+XpDouPe!0wPKP#)+)GP)?z%CcGu!NEroW$` zD4tQa6Uff_N1%~=@qSBJ_R+lNJ`UDCnmd8!IahaRUX+H~NUzp*vF#AAyb?p%C zqlFV_ku$whBlnS|Yr?N+S@TyMsy(!H0xfggu8rJ-euef?f*JT*YQW;&m``JDGS$(Vg~ffDY9xy@3fg-H;%!ydh`Pt_mmoE zuWEzdI8fl(=pCGTL2-1D{lRYI7VhV{>{V?*uUXC05-qZ)rmE9Xdm296H655k>%C51 zW>uN~IyH};@O6=JofEi?W8@V2CHb;}YE=Jv+qO8l{X{vgZ-b#5%V3CJ}-!~QkYU&Hn_RR1o}(0UD*KeV0a2YD@0!{P4+4ToQ) z?wyUb#3Nqj5{dQBg8EXYc$qbY-JqsO*EQ?TyT$@@ee=fp(3Q2?^%CmXpLW=X&^!9# zM(n$n^&)J<8EB{LDA$En?Y#g_=*PbB{%aOd-JQH)>M@m?}de-C8Y*ot=U&B<52`iE0IcFYc zxUom_5|LsV4ije6T;=!GD1szjZ{8xcxfSJ!4b~9mxhQ%z{|3xGqbkd2oPBfGLYa}+ zJneVor5WfwqdgYfFqFoLISDUODHy+iQT7kN8+$L+^BNOLSTC73}5RRa&a?YHq8WLunxXC_)) zfRSE*hI?UcGr1MXrAY2X3b-aWBDoOBedv9V+mKv_{AYpOf-ZtfL9Re@1Ck5S zJ@6dJJ#Hn)tw=6GdTz)SNNzxSe#retu0L}7(Q`!ZK63TZ^F+f%<>n(7AG!C)wMT9} za_Nyfk6d}=#v>OVx$nqzM{YZE*^#@BTy^B8BNrXH=g2ijZaH$vkvooDapZ>69pr{1 z7aY0Y$kj$}Hgd6%dyQOc8oATRl}2tfa-os?j9h2rHY1lAxy#5^Ms6~zK!bth zA|v-0xyHyXMlLaOhmk9c++gGaBlj1%zR2z68*lo`N+Z77v}sd~bb6xZ{8!(wZu;aE zkiHUzN4);itUxn4(gvoc-rkx$WeuDrvVW+(y*gsWYHMaJqgf_SPo~q%-Ac>@hyPwj z;1D!FFQOZ{j_{^o2o2g-#D=rU{s`V=lWAFuY=@`dX?Ppf!jn8to`QEED;sSR4uBBM z1v%=z341rETquKEVFk1z+*oVq4FlkCmBm-ePJS?BFt&dccJ2Ilzxri!J2&0U-~Zk0J&QA(#axl?(HUF! z_SX3!F8{F{HwJ#=QZKzrW1uu{C<_PuPQ=C5GWCn--B|i)Y!CF?Uaa5W8w0DcFpAXK z3je0gI1_d=Up7KVv5m}-D<@z z0kz_f!+Y>Cs724F6?dTz42O|03KW=IE&Tr9bD)I1K zoD2#FaxPo~(iComXF&nH-+~QL317mVXbib9K$-&#fw3?P=D-3t56*`rpn%>lgS3rx z(2_dT30{U3uogaqbI>q;3DP*OglplCunOLWjj##6fmYPPQ=k|Yz@@Mdeg}DIB*S19 zoDGk_^UxJdq!-)(e}>*@BL~5JI3HT0iR=a^!KrWoTmk;O-JNJAOQAP)e;`bN>F_MP z27}Q~4u?``LEUd+Tj!wJcXWOZa7=9L-lK<3kI?TMN>0a@k=|(g)fv1Z%y(w^6i9e$ z@c2j~KF=LB(j7Dy*Nc=heY(k+UKl2W^r(@O2j&kRIMAuRV(m0fqMB2)=FJv4?`HP= z!fBqt6Y<(MgIX5y7SX~vJ`?4W|5^Os{=}{CETe8d!~40vzN9~&UP9;VPWWurh~|CV zpADpy^w!XS&1X0+Pw&TTY*v`Qaji1-RwVQVochQx`Lzo8FG^Mo^!Iv)ToY#P2xITF zCNF|=%4-HU8q@KFPmN!-syoE&#u}-;t!=g3_t3#*N0F{dO<+nHLGY5PI+%unfz}vB zU;pvhRU-2u;q8~_Sqbf^{QAqYtL#{LQR3Hav$V7o^5#ZUC54I5+?t2UxOU>DhALd^ zm{c{Gelk6V$&$&k1;x@%VsbvcsAW2P)g7+Z>jJA{)Qi8W^XnGsgd2y8U7T%Ng2zs7Syuw;pt$kz;=;uM)l;OLl42F5 zff@rj%qWvukAl1^8+;ubKR0c)O~;NT@CR_X+Zw^)x>bex0|-n(RRec)$)b^lMkd&8 ze4`W1dQrU2fDijy8XQ_MJ?4%rH4mNifi@b8U>Y40$+e8pHVmEUUE?6PHQdAd75+FH ze@!0w1iXyU*7*hXcJmp{gF+jkRp6nGqb%2hJu{PX<)28vZL;j(%h?tCt@hg0!UQgL zJ300C-Obbl$x)JeYNC@T2?icbG~8a|_+0z?s=De?Zbtv8ylT~_W(y*(X|pjVL%t%Q z-=8RuXJu|*TY?wnv&x-Xx2Be>(6pN^T1Z_`GpPuqX^&X-e<;+N!mKI8TJxT~w}Qf| z9R*`xTp!1TS5s&;g;i5XHHA}CC^dyqy8#qFOkE4NdY*i!_0>Fm@l9WG(-+(H)jRoA7lXcZm+o7wKBy{7T@4GM zpIdLHzi`LoSKftBxBsav_wAVH(eN8v8xjH_n_I|x%#ByKU;&psmac+&2&HRO@Cwzy((UbxFuts@vdE4)@ zGr0N?Yr3NEur9L~U0_+ew(V}ZM)$xsFn(|DC-^Pg3s1p&FrYX6KyW@Rf_LBxDBXwa z4`0JE+|PPW=oz8sf$nqNuet}f!X)ky-7{Of3;O+vRbExI;t?-p#bPg2uP}AR`{x?% zukpTnxXtZym1%5^qt@@~H7=$ZBH9F_V@((h+q4*GeZq$8rKrlSzq(OL@}^|AK@F*j z>|utTO4H-jqg_u;Zi!V7rANt3B~ zc$QIwP5cF&$FzVV={iEa*Hu>)&A#fQ+7r)3tPvIg?W%f-RU`Fo+|YY~-!+16R#kKZ z1u86qALYOP$PBDeQ>$`AeyNq-VRG@j5$yH6!PvJK?`^|77!zYcy%*jfS#6}sKtBYh zTwkK`dPvO6zdf`X)g$7fd1}JzEKUw%a8KTQq2A1{c^T6 zQ7yd4H{3;prDvp?A6|nCQ5`YA>K%w{SY6wb8G0r+#ecz=XLNuJXNSYbI9?0T6#u0u z{)-7%WuIf-Bk8{&{tGvR8Fl3S--WS9bmXONTV2|6lkfdsVdfk9pT17|eBJfa%iQ*w zb+`SlbJCBk>YV&w#vc996`!&UXY4~hyZ%Jc&4BT(& z9kMa;U$*xfS)R#Ty~BW4J7p>ZZArF$S=^gBdl=nG)^pw{&9e0WTC?utBjl|&aKJ(CJa^!bL)@}5*PV#p2p^F2zF#$Spb1se|ekQBO|2rTXiQs52VFUs5HTMqgB&ivQA?rn^rUw%+?>8~60La`$DO zongk~X-r-Vo=#p$hohW~c6_vSY6ku^d>fIdRZd2Z!;q(1dBI)on)N^Kn9+g3e^WE2 z`Fp}ZpV7(T(OW0ieA_bvza4LeP)2QXjBPlB_)l%@nX0hehW+BUbr9R&9e&R(X$%ff(@_*wnFRX*n^-y91O!iUOyw?a2Nx} zLn&xnvb=!)1uLNv-i6la1o8$N3d3OpXbkcw7zf8e95fdB4!9Hk0uO<_hStD3&{*UR zpz+Av>FMbYhk!haj(}5P7MuhZnBt+}k3;syAj@0nZji@PGZdCyun(ZZ7!Rf?$T-XejWd=<(~aQKGoZ22%i$&XKaij6o3I+b z0iLu@CdkXHIkbR|&{yrvW#D_6jbg0qRFJosKdyT%^R0L=_JZEf7Y=~_a1a~^ z@<=-YP6XdG?J?$Ggf@)%?f~*q>jQ^_#)MA=`Ts9~i$P<<<-ztOYyjWC_ao*%gKmr| z>j5rk4EX@iIP%eO3j7M>^>#7b2KT~4@OM}P@`h{1*zzEp2*r@@6_?NH;%Yf{KQgL_ zv25pbif}90-^$N<5-9C|gw%VD@jphIZzADpd3)}D{oY;wIO)#B ze`|{Wx${v?o8o_FoUMCxXMCxf;(zL{&eOkbOuG{QQ^o1)ZOu%4?S?$U-{+~~ed7&f zmuu%w(u;kM@C9T`AC{i$>$W%XRK6LO!DAqu^d@)$R>3-Gj&3*%Ccz@mXPY-eH}pN} zgz`1M~rIeQ5h}_#Dzdu_!36aVorr}m;>tJc?_O~H$bgvSLg}7KrQP8Q0qDkPJjqJ0?XhrcoO~wFN0d# z$#60hfLh;Q!Xmg5K87z~6MO^Nw7PAe9drb>%6TvYil7+EAq8iGTI)q{4?GS}z{~I| ztb+Y$wFiP)@hGSjzaE}~=RmzKtKnb8C(muz!0>G!$F#cA}>yWFx(1vz@4xZI-zlNhruukj)Ifm zZTJ{m>g`V;0qPNX7ER=zpk9LrC_c?P$U_4e29LsX&;jkECk%(9Ap`BBJrqF_UW0d_ z8CpmVoDF(wuY^yb7rNy3eayDy9o@8S=g(i0=XaCmxBpJ|ol07uCd>c#V|#3hyP$Xs z|I<^`-KWd{y;=VEML!cQoVJ;5Gc~74^2cQPZ!+^c{&)eI`P-rtYx2$f>iBpbUV{%n zU7GuH;~fU$K_>nf{0wdYnfRB&8=$UFh3-0p7sn~!cZ15LABWRm5vWV_FK{BG^ejYvppg`~{m<imkLFxkxHHwxl9tODamX)>EWxr4{W( zQW3Ky6*XJS6**f{kzkas2-=d0qOE*I(w0<&7)eFb)^bIPX@OK!?H1&hB3mI9Jx0qF zXorWJi#X+_|cR1|JWMdFrJG;T>n{et+YJrB^CW!QW3x<)%Pf=hzwd^Q5lq0WClq^XOL8c21!L}(0buM fURvJQ%2$*INkwXqRI~=kbBqj{s0~Wr(C7aF7gA*! diff --git a/Installation/README b/Installation/README deleted file mode 100755 index 3bb4cf06..00000000 --- a/Installation/README +++ /dev/null @@ -1,30 +0,0 @@ - - - ================================================= - Procédure d'installation d'EFICAS - ================================================= - -Pré-requis : ------------- - - - Python 2.1 ou supérieur avec Tkinter - - PMW 8.0.5 ou supérieur - -Installation : --------------- - -1°) copiez le fichier eficas.tar.gz dans un répertoire temporaire - -2°) Décompressez ce fichier comme suit : - - gunzip eficas.tar.gz - tar xvf eficas.tar - -3°) Vous devriez désormais voir 4 éléments : - - - 1 fichier README_install - - 1 fichier install.py - - 1 fichier code_aster.gif - - 1 répertoire /Eficas - -4°) Reportez-vous au fichier README_install pour la suite des actions à entreprendre. diff --git a/Installation/README_install b/Installation/README_install deleted file mode 100755 index fa6ded39..00000000 --- a/Installation/README_install +++ /dev/null @@ -1,40 +0,0 @@ - - - ================================================= - Procédure d'installation d'EFICAS - ================================================= - -Pour lancer la procédure d'installation, tapez : - - python install.py - -Vous pouvez remplacer 'python' par le chemin d'accès de votre interpréteur Python. - -La procédure d'installation commence par vérifier que votre système contient bien les -pré-requis pour EFICAS (cf README) - -La procédure va vous demander un certain nombre de chemins d'accès nécessaires à l'établissement du -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 - - -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. - - diff --git a/Installation/install.py b/Installation/install.py deleted file mode 100755 index 399f6215..00000000 --- a/Installation/install.py +++ /dev/null @@ -1,950 +0,0 @@ -# -*- coding: utf-8 -*- -SUCCES,ECHEC = 1,0 -OUI,NON = 1,0 - -## constantes pour les tests de versions - -python_min = 20 -tcl_min = 83 -tk_min = 83 -pmw_min = 85 -test = 0 - -try: - import sys,string,re,types,traceback - import os,commands -except Exception,e: - print "Mauvaise installation de Python" - print str(e) - -REPERTOIRE = os.path.abspath(os.curdir) - -def strip_points(chaine): - """ - Enlève les caractères autres que les chiffres des chaînes - """ - x="" - for i in range(len(chaine)): - try: - dummy = float(chaine[i]) - x=x+chaine[i] - except: - pass - return x - -class Test_Environnement : - def __init__(self): - self.l_errors = [] - - def test_plate_forme(self): - """ - Teste que la plate-forme est bien supportée - """ - if os.name not in ('nt','posix'): - self.l_errors.append("La plate-forme %s n'est pas supportée" %os.name) - - def test_version_python(self): - """ - Test de la version de python - """ - version = sys.version - n = string.index(version,"(") - 1 - vpyt = strip_points(version[0:n])[0:2] ## recupere les 2 premiers caracteres - if int(vpyt) self.max: - value = self.max - if value < self.min: - value = self.min - # Preserve the new value - c=self.canvas - # Adjust the rectangle - if self.orientation == "horizontal": - c.coords(self.scale,0, 0,float(value) / self.max * self.width, self.height) - else: - c.coords(self.scale,0, self.height - (float(value) / self.max*self.height),self.width, self.height) - # Now update the colors - c.itemconfig(self.scale, fill=self.fillColor) - c.itemconfig(self.label, fill=self.labelColor) - # And update the label - if self.autoLabel=="true": - c.itemconfig(self.label, text=self.labelFormat % value) - else: - c.itemconfig(self.label, text=self.labelFormat % self.labelText) - c.update_idletasks() -try : - import Tkinter - import Pmw - from tkMessageBox import showinfo,askyesno,showerror,askretrycancel -except: - pass - -class SplashScreen(Tkinter.Toplevel): - """ Provides a splash screen. Usage: - Subclass and override 'CreateWidgets()' - In constructor of main window/application call - - S = SplashScreen(main=self) (if caller is Toplevel) - - S = SplashScreen(main=self.master) (if caller is Frame) - - S.quit() after you are done creating your widgets etc. - """ - def __init__(self, master,**args): - Tkinter.Toplevel.__init__(self, master, relief='groove',borderwidth=5) - self.protocol("WM_DELETE_WINDOW",lambda x=0: x+x ) # pour ne pas détruire la fenêtre en pleine copie de fichiers - self.main = master - if self.main != None : - self.main.withdraw() - self.frame = Tkinter.Frame(self) - self.frame.pack(expand=1,fill='both') - self.init(args) - self.geometry("300x200") - self.resizable(0,0) - self.CreateWidgets() - - def init(self,args={}): - self.text = Tkinter.StringVar() - self.text.set('') - self.icone = 'Editeur/icons/logo_edf.gif' - self.barre = 'non' - if args == {} : return - if args.has_key('text'): - self.text.set(args['text']) - if args.has_key('titre'): - self.title(args['titre']) - if args.has_key('code'): - self.code = args['code'] - else: - self.code = 'inconnu' - if self.code == 'ASTER' : - self.icone = 'Editeur/icons/code_aster.gif' - - def CreateWidgets(self): - fic_image = os.path.join("./", self.icone) - if os.path.exists(fic_image): - self.catIcon = Tkinter.PhotoImage(file=os.path.join("./", self.icone)) - Tkinter.Label(self.frame, image=self.catIcon).pack(side=Tkinter.TOP) - else: - Tkinter.Label(self.frame, text = "EFICAS pour Code_Aster").pack(side=Tkinter.TOP) - self.label = Tkinter.Label(self.frame, textvariable=self.text) - self.label.pack(side=Tkinter.TOP,expand=1,fill='both') - self.progress = Slider(self.frame,value=0,max=100,orientation='horizontal', - fillColor='blue',width=200,height=30, - background='white',labelColor='red') - - def update_barre(self,event=None): - """ Permet de faire avancer la barre de progression """ - try: - self.progress.value = self.progress.value+self.increment - self.progress.update() - #self.after(100,self.update_barre) - except: - pass - - def configure_barre(self): - """ Calcule l'incrément de progression de la barre en fonction - du nombre d'opérations à effectuer afin que le compteur - soit à 100% à la fin des opérations""" - self.increment = 100./self.ratio - self.progress.update() - - def configure(self,**args): - if args.has_key('text'): - self.text.set(args['text']) - if args.has_key('titre'): - self.title(args['titre']) - if args.has_key('barre'): - old = self.barre - self.barre = args['barre'] - if self.barre == 'oui' and old == 'non': - self.progress.frame.pack(in_=self.frame,side='top') - elif self.barre == 'non' and old == 'oui': - self.progress.frame.pack_forget() - if args.has_key('ratio'): - self.ratio = args['ratio'] - self.configure_barre() - self.update() - - def quit(self): - self.progress = None - self.withdraw() - self.main.update() - self.main.deiconify() - -def centerwindow(window,parent = 'avec'): - if parent =='avec': - parent = window.winfo_parent() - if type(parent) == types.StringType: - try: - parent = window._nametowidget(parent) - except: - parent = window - # Find size of window. - window.update_idletasks() - width = window.winfo_width() - height = window.winfo_height() - if width == 1 and height == 1: - # If the window has not yet been displayed, its size is - # reported as 1x1, so use requested size. - width = window.winfo_reqwidth() - height = window.winfo_reqheight() - # Place in centre of screen: - if parent =='avec' : - x = (window.winfo_screenwidth() - width) / 2 - parent.winfo_vrootx() - y = (window.winfo_screenheight() - height) / 3 - parent.winfo_vrooty() - else: - x = (window.winfo_screenwidth() - width) / 2 - y = (window.winfo_screenheight() - height) / 3 - if x < 0: - x = 0 - if y < 0: - y = 0 - window.geometry('+%d+%d' % (x, y)) - -class config_item: - """ - Classe utilisée pour représenter chaque option de configuration - """ - def __init__(self, pere, nom): - self.nom = nom - self.pere = pere - self.entree_value = None - self.default = None - self.test = None - self.pere.register_item(self) - - def get_valeur(self): - return os.path.abspath(self.entree.get()) - - def set_entree(self,entree): - self.entree = entree - self.pere.register_entree(entree) - -class Config(Tkinter.Toplevel): - """ - Classe principale : une instance de Config est utilisée pour - créer l'interface. Toutes les actions (création de répertoire, copie - de fichiers ...) sont réalisées par des méthodes de Config ou de ses - composants - """ - pat_rep = re.compile(r'^(rep_)([\w_]*)') # expression réguliere pour reconnaitre les - # les options qui désignent des répertoires - def __init__(self, parent): - self.master = parent - Tkinter.Toplevel.__init__(self,None) - parent.withdraw() - self.title("Installation d'EFICAS") - self.geometry("500x320+0+0") - centerwindow(self) - self.install_running = 0 - #évite que la fenêtre puisse être détruite en pleine copie de fichiers - self.protocol("WM_DELETE_WINDOW",self.exit ) - # création des frames - self.frame_gen = Tkinter.Frame(self,bd=1,relief='groove') - self.frame_gen.place(relx=0,rely=0,relwidth=1,relheight=0.9 ) - self.frame_but = Tkinter.Frame(self,bd=1,relief='groove') - self.frame_but.place(relx=0,rely=0.9 ,relheight=0.1 ,relwidth=1) - # création des items de configuration - self.make_items_config() - # remplissage de la frame générale - self.make_frame_gen() - # remplissage de la frame boutons - self.make_frame_but() - # création boîtes de dialogue - self.init_complementaire() - # init système - self.init_systeme() - - def make_items_config(self): - """ - Création des objets Config_item - """ - self.items = [] - self.items_a_creer = [] - self.liste_rep_crees = [] - self.entrees = [] - # designation, texte d'invite , option par defaut(unix), option par defaut(windows), flag obligatoire/facultatif - self.l_tx_items = (('rep_install' , - "Répertoire d'installation :", - '', - '', - 'o'), - ('rep_travail' , - 'Répertoire de travail :', - 'tmp', - 'tmp', - 'f'), - ('rep_mat' , - 'Répertoire matériaux :', - None, - None, - 'f'), - ('rep_docaster' , - "Chemin d'accès à la doc Aster :" , - None, - None, - 'f' - ), - ('acrobat' , - 'Exécutable Acrobat Reader :', - '/usr/bin/acroread', - 'acrobat.exe', - 'o') - ) - - for item in self.l_tx_items: - nom_item = item[0] - setattr(self,nom_item,config_item(self,nom_item)) - - def make_frame_gen(self): - """ - Création des zones de saisie des paramètres généraux - """ - # Création du label titre de la frame - self.information = Tkinter.Label(self.frame_gen,text="CONFIGURATION D'EFICAS") - self.information.pack(side="top",pady=10) - # création des widgets de saisie des items - for txt in self.l_tx_items: - nom_item = txt[0] - txt_item = txt[1] - if os.name == 'nt': - default_value = txt[3] - else: - default_value = txt[2] - item = getattr(self,nom_item) - wdg_item = Pmw.EntryField(self.frame_gen, - labelpos = 'w', - label_text = txt_item, - command = lambda s=self,i=item : s.select_next_entry(i.entree)) - item.default_value = default_value - item.statut = txt[4] - item.set_entree(wdg_item) - # on affiche les entrées - for entree in self.entrees: - entree.pack(fill='x', expand=1, padx=10, pady=5) - Pmw.alignlabels(self.entrees) - self.entrees[0].focus_set() - #self.rep_cata_dev.entree.configure(entry_state = 'disabled') - self.display_defaults() - - def make_frame_but(self): - """ - Création des boutons de commande Installer et Annuler - """ - self.validButton = Tkinter.Button(self.frame_but, text = 'Installer', command = self.run_install) - self.exitButton = Tkinter.Button(self.frame_but, - text = 'Annuler', - command = lambda s=self : s.exit(annule='oui')) - self.exitButton.place(relx=0.35,rely=0.5,anchor='center') - self.validButton.place(relx=0.65,rely=0.5,anchor='center') - - def init_complementaire(self): - """ - Création de widgets complémentaires (boîtes de dialogue ...) - """ - self.erreur_dialog = Pmw.Dialog(self, - buttons = ('Modifier', 'Annuler'), - defaultbutton = 'Modifier', - title = 'Erreur', - command = self.erreur_exec) - self.erreur_dialog.withdraw() - self.fatale_dialog = Pmw.Dialog(self, - buttons = ('Annuler',), - title = 'Fatal', - command = self.fatale_exec) - self.fatale_dialog.withdraw() - self.info_dialog = Pmw.Dialog(self, - buttons = ('Ok',), - title = 'Attention') - self.info_dialog.configure(command=self.info_dialog.withdraw()) - self.info_dialog.withdraw() - self.attente = SplashScreen(None,code="ASTER") - self.attente.withdraw() - - def init_systeme(self): - """ - Détermine les commandes à exécuter en fonction de l'OS - """ - self.d_commandes = {} - if os.name == 'nt': - self.d_commandes['decompress'] = "unzip.exe " - self.d_commandes['copy'] = "copy " - self.d_commandes['delete'] = "del " - elif os.name == 'posix': - self.d_commandes['decompress'] = "gunzip " - self.d_commandes['copy'] = "cp " - self.d_commandes['delete'] = "rm " - - def run_install(self): - """ - Lance l'installation proprement dite d'EFICAS - """ - self.install_running = 1 - self.afficher_splash() - self.deactivate_entries() # Les entrees et les boutons sont desactivees - self.deactivate_buttons() # pendant les operations d'installation - #self.decompress_archive() - #if not os.path.exists(os.path.join(REPERTOIRE,'Eficas')): - # self.afficher_fatale("Il manque des fichiers d'EFICAS") - # self.install_running = 0 - # return - self.nb_fichiers = self.compte_fichiers(REPERTOIRE) - if self.nb_fichiers == 0: - self.afficher_fatale("Il manque des fichiers d'EFICAS") - self.install_running = 0 - return - # essaie de creer les repertoires. - try: - if self.make_dirs() == ECHEC : - self.activate_entries() - self.activate_buttons() - self.install_running = 0 - return - except: - self.install_running = 0 - self.afficher_fatale("Impossible de créer certains répertoires") - - # affiche la fenêtre avec la barre de progression - self.afficher_copie_fichiers() - # essaie de copier les fichiers d'EFICAS - try: - if self.move_files() == ECHEC: - self.afficher_echec("Impossible de copier les fichiers d'EFICAS") - self.activate_buttons() - self.install_running = 0 - return - except : - traceback.print_exc() - self.install_running = 0 - self.afficher_fatale("Impossible de copier certains fichiers") - - #self.rm_temp_dirs() # efface les répertoires temporaires - try: - self.creer_fic_conf() # crée le fichier eficas.conf - except: - afficher_info("Impossible de créer le fichier de configuration\n Il est possible de le faire a la main") -# self.install_running = 0 - self.afficher_install_terminee() # A ce stade tout est fait et il ne reste plus qu'à attendre - # un clic de souris pour sortir - - def display_defaults(self): - """ - Affiche les valeurs par défaut dans les zones de saisie - """ - # racine indique la racine de l'arborescence - if os.name == 'nt': - racine = 'C:\\' - else: - racine = os.environ['HOME'] - # remplit les zones de saisie avec les options par défaut - for item in self.items: - if item.default_value == None : continue - item.default_value = os.path.join(racine,item.default_value) - item.entree.insert(0,item.default_value) - - def register_item(self,item): - """ - Enregistre l'item dans la liste des items et éventuellement - dans la liste des items à créer (répertoires) - """ - self.items.append(item) - if self.pat_rep.match(item.nom) : - self.items_a_creer.append(item) - - def register_entree(self,entree): - """ - Enregistre la zone de saisie dans la liste des zones - """ - self.entrees.append(entree) - - def select_next_entry(self,entree): - """ - Place le focus dans l'entry suivant celle passée en argument - """ - index = self.entrees.index(entree)+1 - if index != len(self.entrees): - self.entrees[index].component('entry').focus() - - def activate_entries(self): - """ - Active les entrées. Les zones de saisie deviennent éditables. - """ - for item in self.entrees: - item.configure(entry_state='normal') - - def deactivate_entries(self): - """ - Désactive les entrées. Les zones ne sont plus éditables. - """ - for item in self.entrees: # Les entrees sont desactivees - item.configure(entry_state='disabled') # pendant les operations d'installation - - def activate_buttons(self): - """ - active les boutons valider et annuler - """ - self.validButton.configure(state = 'normal') - self.exitButton.configure(state = 'normal') - - def deactivate_buttons(self): - """ - désactive des boutons valider de annuler - """ - self.validButton.configure(state = 'disabled') - self.exitButton.configure(state = 'disabled') - - def erreur_exec(self, result): - """ - Callback exécuté lorsque l'utilisateur clique sur un des boutons - Modifier/Annuler de la fenêtre de dialogue qui lui présente les erreurs - """ - self.erreur_dialog.deactivate(result) - self.removedir() - if result == 'Annuler': - self.install_running = 0 - self.exit(annule='non') - - def fatale_exec(self, result): - """ - Callback exécuté lorsque l'utilisateur clique sur le bouton - Quitter de la fenêtre de dialogue qui lui présente les erreurs fatales - Seule solution : sortir de l'installation - """ - self.fatale_dialog.deactivate(result) - self.install_running = 0 - self.exit(annule='oui') - - def test_confirmation(self,flag,nom): - """ - Callback activé par le clic sur bouton fenêtre demandant confirmation - avant création répertoire facultatif - """ - if flag == 'NON': - self.confirmation.destroy() - self.TEST_confirmation_avant_creation = NON - return - else : - self.confirmation.destroy() - self.TEST_confirmation_avant_creation = OUI - - def afficher_fatale(self, message): - """ - Affiche les erreurs fatales - """ - self.attente.withdraw() - w = Tkinter.Label(self.fatale_dialog.interior(),text = message, pady = 5) - w.pack(expand = 1, fill = 'both', padx = 4, pady = 4) - self.fatale_dialog.configure(deactivatecommand = w.destroy) - self.fatale_dialog.activate() - - def afficher_echec(self, message): - """ - Affiche un message d'erreur - Par construction, dès que l'on passe par cette méthode, on sort de l'installation - en passant le flag install_running à 0 - """ - self.attente.withdraw() - w = Tkinter.Label(self.erreur_dialog.interior(),text = message, pady = 5) - w.pack(expand = 1, fill = 'both', padx = 4, pady = 4) - self.erreur_dialog.configure(deactivatecommand = w.destroy) - self.erreur_dialog.activate() - - def confirmation_avant_creation(self,repertoire): - """ - Affiche une boite de dialogue pour confirmer la création - d'un répertoire facultatif. - """ - self.attente.withdraw() - self.confirmation = Pmw.Dialog(self, - buttons = ('OUI', 'NON'), - defaultbutton = 'OUI', - title = "Répertoire inexistant", - command = lambda f,s=self,r=repertoire : s.test_confirmation(f,r)) - self.confirmation.withdraw() - Tkinter.Label(self.confirmation.interior(), - text="Le répertoire %s n'existe pas \n Voulez-vous le créer ?" %repertoire).pack(side='top') - self.confirmation.activate(geometry='centerscreenalways') - return self.TEST_confirmation_avant_creation - - def afficher_splash(self): - """ - Afficher la boite de message - """ - self.attente.deiconify() - self.attente.tkraise() - centerwindow(self.attente) - self.attente.configure(titre="Installation d'EFICAS", - text="Vérification intégrité sources Eficas", - barre="non") - - def afficher_info(self,message): - """ - Afficher une boite de warning - """ - w = Tkinter.Label(self.info_dialog.interior(),text = message, pady = 5) - w.pack(expand = 1, fill = 'both', padx = 4, pady = 4) - self.info_dialog.configure(deactivatecommand = w.destroy) - self.info_dialog.activate() - - def afficher_copie_fichiers(self): - """ - Afficher la boite de message avec la barre de progression - """ - self.attente.deiconify() - self.attente.tkraise() - self.attente.configure(titre="Installation d'EFICAS", - text="copie des fichiers", - barre="oui") - self.attente.ratio = self.nb_fichiers - self.attente.configure_barre() - - def afficher_install_terminee(self): - """ - Afficher le message Installation terminée - """ - self.withdraw() - self.attente.configure(titre="Installation d'EFICAS", - text="Installation terminée", - barre="non") - self.exitButton.place_forget() - self.validButton.place_forget() - self.validButton = Tkinter.Button(self.attente.frame, - text = 'Quitter', - command = self.exit) - self.validButton.pack(side='top',pady=5) - self.install_running = 0 - - def decompress_archive(self) : - """ - Décompresse l'archive d'EFICAS dans un répertoire temporaire (.) - """ - print "decompress_archive" - #try: - commande = os.path.join(REPERTOIRE,self.d_commandes['decompress']) - fichier = os.path.join(REPERTOIRE,"eficas.zip") - print 'commande =',commande - print 'fichier =',fichier - os.execv(commande,("eficas.zip",)) - #except: - # self.affiche_echec("Erreur dans la décompression") - - def normaliser_chemin(self, nom): - """ - Retourne le chemin d'accès complet à nom - """ - return os.path.abspath(os.path.expanduser(nom)) - - def discriminer_noms(self): - """ - Emet un message d'alerte si des zones de saisie ne sont pas remplies - ou si des noms de répertoires à créer sont identiques. - """ - liste_noms = [] - for item in self.items_a_creer: - nom = item.entree.get() - if nom == self.rep_install.entree.get(): # il faut ajouter 'Eficas' au chemin du repertoire - nom = os.path.join(nom,"Eficas") # d'installation - liste_noms.append(nom) - - test = SUCCES - for item in self.items_a_creer: - nom = item.entree.get() - if len(nom) == 0 : - test = ECHEC - message = "attention : certains répertoires n'ont pas de nom" - self.afficher_echec(message) - item.entree.component('entry').focus() - break - - if test == ECHEC : - return test - - for item in self.items_a_creer: - nom = item.entree.get() - if liste_noms.count(nom) >1 : - test = ECHEC - message = "attention : certains répertoires ont le même nom" - self.afficher_echec(message) - item.entree.component('entry').focus() - break - - return test - - def compte_fichiers(self,path): - """ - Dénombre les fichiers présents dans le répertoire Eficas (et ses sous-répertoires) - """ - nb = 0 - l_fic = os.listdir(path) - l_rep = [] - for fic in l_fic : - if os.path.isdir(os.path.join(path,fic)): - l_rep.append(fic) - else: - nb = nb+1 - for rep in l_rep : - nb = nb + self.compte_fichiers(os.path.join(path,rep)) - return nb - - def creer_fic_conf(self): - """ - Crée le fichier editeur.ini a partir des données saisies - par l'administrateur. - """ - fichier_conf = os.path.join(self.normaliser_chemin(self.rep_install.get_valeur()),"Eficas/Aster/editeur.ini") - f = open(fichier_conf,'w') - f.write("path_doc = "+'"'+self.normaliser_chemin(self.rep_docaster.get_valeur())+'"\n') - f.write("exec_acrobat = "+'"'+self.normaliser_chemin(self.acrobat.get_valeur())+'"\n') - f.write('isdeveloppeur = "NON"\n') - f.write("rep_travail = "+'"'+self.normaliser_chemin(self.rep_travail.get_valeur())+'"\n') - f.write("rep_cata = "+'"'+os.path.join(self.normaliser_chemin(self.rep_install.get_valeur()),"Eficas/Aster/Cata/")+'"\n') # attention au dernier slash - f.write("rep_mat = "+'"'+self.normaliser_chemin(self.rep_mat.get_valeur())+'"\n') - cata = """catalogues = (('ASTER','v6',rep_cata + 'cata_STA6.py','python','defaut'),)\n""" - f.write(cata) - f.close() - - - def move_files(self): - """ - Déplace les fichiers Eficas du répertoire temporaire vers - leur répertoire de destination - """ - # création du répertoire Eficas - rep_eficas = os.path.join(self.rep_install.get_valeur(),'Eficas') - self.copy_rep(REPERTOIRE,rep_eficas) - - def copy_rep(self,rep_dep,rep_arr): - """ - Copie le répertoire path_dep et ses sous-répertoires dans path_arr - """ - l_fichiers = os.listdir(rep_dep) - if not os.path.exists(rep_arr) : - # création du répertoire d'arrivée quand il n'existe pas - self.mkdirs(rep_arr) - for fic in l_fichiers : - nom_complet_dep = os.path.join(rep_dep,fic) - nom_complet_arr = os.path.join(rep_arr,fic) - if os.path.isfile(nom_complet_dep): - commande_copie = self.d_commandes['copy']+nom_complet_dep+' '+nom_complet_arr - commande_delete= self.d_commandes['delete']+nom_complet_dep - try: - os.system(commande_copie) - #os.system(commande_delete) - self.attente.update_barre() - except Exception,e: - pass - elif os.path.isdir(nom_complet_dep): - self.copy_rep(nom_complet_dep,nom_complet_arr) - - def rm_temp_dirs(self): - """ - Détruit le répertoire temporaire de l'archive d'Eficas - """ - rep_arch = os.path.join(REPERTOIRE,'Eficas') - self.rm_r(rep_arch) - - def make_dirs(self): - """ - Crée les répertoires d'accueil des fichiers d'EFICAS - """ - # création des répertoires dont l'utilisateur a donné le nom - if self.discriminer_noms() == ECHEC: - return ECHEC - for item in self.items_a_creer: - if not item.entree.get(): - continue - nom = item.get_valeur() - if nom == self.normaliser_chemin(self.rep_install.entree.get()): # il faut ajouter 'Eficas' au chemin du repertoire - nom = os.path.join(nom,"Eficas") # d'installation - item.test = self.essai_creer(nom,item.statut) - if item.test == ECHEC : - item.entree.component('entry').focus() - return ECHEC - return SUCCES - - def essai_creer(self, nom, statut): - """ - Essaie de créer le répertoire nom s'il n'existe pas déjà. - Si statut == 'f' et si le fichier n'existe pas, demande - confirmation avant création - """ - repertoire = self.normaliser_chemin(nom) # repertoire = chemin absolu de nom - if os.path.exists(repertoire): - if statut == 'o' : - self.afficher_echec("Un fichier ou répertoire de nom "+ repertoire+ " existe déjà !\n"+ - "L'installation ne peut continuer") - return ECHEC - else: - return SUCCES - - if statut == 'f' : - # on demande confirmation de création à l'utilisateur - test = self.confirmation_avant_creation(repertoire) - if test == NON: - return SUCCES - - try: - test = self.mkdirs(repertoire) - return SUCCES - except Exception,e: - message = "La création de "+repertoire+" a échoué :\n %s \n Vérifiez vos droits d'écriture" %str(e) # message d'erreur - self.afficher_echec(message) - return ECHEC - - def mkdirs(self,rep): - """ - Création récursive des répertoires d'installation. - Les noms des répertoires crées sont stockés dans - une liste dont se sert la méthode removedir pour - restaurer l'environnement initial en cas d'annulation. - """ - if rep==os.path.dirname(rep): - return SUCCES - - if os.path.exists(os.path.dirname(rep)): - os.mkdir(rep) - self.liste_rep_crees.append(rep) - return SUCCES - else: - test = self.mkdirs(os.path.dirname(rep)) - if test == SUCCES: - os.mkdir(rep) - self.liste_rep_crees.append(rep) - return SUCCES - else: - return ECHEC - - def rm_r(self,path): - """ - Detruit récursivement path - """ - if not os.path.exists(path): - return - try: - if len(os.listdir(path))!=0: - for entree in os.listdir(path): - entree = os.path.join(path,entree) - self.rm_r(entree) - os.rmdir(path) - except Exception,e: - self.afficher_info("Impossible de détruire le répertoire : "+path+"\n"+"\n"+str(e)+"\n L'installation continue néanmoins") - - def removedir(self): - """ - Destruction des répertoires déja crées (en cas d'annulation) - """ - for rep in self.liste_rep_crees: - self.rm_r(rep) - self.liste_rep_crees = [] - - def exit(self,annule='non'): - """ - Tente de sortir de l'application. - Echoue si installation en cours - """ - if self.install_running : - # l'installation est en cours --> on interdit la sortie - self.afficher_info("Impossible de quitter tant que l'installation est en cours\n Veuillez patienter") - else: - if annule == 'oui' : self.removedir() - self.master.quit() - -if __name__ == '__main__': - test = Test_Environnement().test() - if not test : - # environnement incomplet --> on sort de la procédure d'installation - sys.exit() - else: - import Tkinter - import Pmw - root = Tkinter.Tk() - Pmw.initialise(root) - try: - principal = Config(root) - root.mainloop() - except Exception,e: - print "Erreur non prévue rencontrée : ",str(e) - print "Veuillez prévenir la maintenance" - sys.exit() diff --git a/InterfaceQT/__init__.py b/InterfaceQT/__init__.py deleted file mode 100644 index 21d22fbc..00000000 --- a/InterfaceQT/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- 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 package contient les fonctionnalités nécessaires - pour l'éditeur graphique QT -""" diff --git a/InterfaceQT/browser.py b/InterfaceQT/browser.py deleted file mode 100644 index 3f8103ba..00000000 --- a/InterfaceQT/browser.py +++ /dev/null @@ -1,510 +0,0 @@ -# -*- coding: utf-8 -*- -import os,sys,string,re,types,traceback - -from qt import * -import utilIcons - - -class JDCTree( QListView ): - def __init__( self, jdc_item, parent = None ): - QListView.__init__( self, parent ) - - self.item = jdc_item - self.tree = self - self.editor = parent - self.racine = self - self.node_selected = None - self.children = self.build_children() - - self.setCaption(self.trUtf8('Browser')) - self.setRootIsDecorated(1) - self.setSorting(-1) - self.addColumn(self.trUtf8('Commande')) - self.addColumn(self.trUtf8('Concept/Valeur')) - - self.resize(QSize(400,500)) - self.connect(self,SIGNAL('contextMenuRequested(QListViewItem *, const QPoint &, int)'), - self.handleContextMenu) - - #self.connect(self, SIGNAL("onItem ( QListViewItem * ) "), self.handleOnItem) - self.connect(self, SIGNAL("clicked ( QListViewItem * ) "), self.handleOnItem) - self.connect(self, SIGNAL('mouseButtonPressed(int, QListViewItem*, const QPoint&, int)'), - self.handleNommeItem) - - - def handleContextMenu(self,itm,coord,col): - """ - Private slot to show the context menu of the listview. - - @param itm the selected listview item (QListViewItem) - @param coord the position of the mouse pointer (QPoint) - @param col the column of the mouse pointer (int) - """ - try: - if itm.menu: - itm.menu.popup(coord) - except: - pass - - def handleNommeItem(self,bouton,itm,coord,col): - """ - PN --> a finir eventuellement pour nommer - le concept dans l arbre - """ - try : - if itm : - panel=itm.getPanel() - if panel.node.item.object.get_type_produit() != None : - pass - except: - pass - - def handleOnItem(self, item ): - try : - fr = item.item.get_fr() - if self.editor: - self.editor.affiche_infos(fr) - except: - pass - - def build_children(self): - """ Construit la liste des enfants de self """ - children = [] - child = self.item.itemNode(self,self.item) - children.append(child) - child.state='expanded' - return children - - def supprime(self): - """ supprime tous les elements de l'arbre """ - raise RuntimeError, 'Not implemented' - self.tree = None - self.racine = None - self.node_selected = None - self.item = None - self.scrolledcanvas = None - for child in self.children: - child.supprime() - self.children=[] - - def showEvent(self, event): - """ QT : pour afficher le 1er niveau d'arborescence de l''arbre""" - self.children[0].select() - - def update(self): - """ Update tous les elements de l'arbre """ - for child in self.children: - child.update() - -# type de noeud -COMMENT = "COMMENTAIRE" -PARAMETERS = "PARAMETRE" - - -class JDCNode(QListViewItem): - def __init__( self, parent, item, after=None, bold=0): - """ - Constructor - - @param parent parent Browser or BrowserNode - @param text text to be displayed by this node (string or QString) - @param after sibling this node is positioned after - @param bold flag indicating a highlighted font - """ - self.item = item - self.parent = parent - self.tree = self.parent.tree - self.editor = self.parent.tree.editor - self.bold = bold - - name = self.tree.trUtf8( str( item.GetLabelText()[0] ) ) - value = self.tree.trUtf8( str( item.GetText() ) ) - - if after is None: - QListViewItem.__init__(self,parent) - self.setText(0, name ) - self.setText(1, value ) - else: - QListViewItem.__init__(self,parent, after) - self.setText(0, name ) - self.setText(1, value) - - p = utilIcons.getPixmap(item.GetIconName() + ".gif") - self.setPixmap(0,p) - self.setExpandable(item.IsExpandable()) - - self.connect() - self.init() - self.createPopUpMenu() - - - def paintCell(self, p, cg, column, width, alignment): - """ - Overwritten class to set a different text color, if bold is true. - - @param p the painter (QPainter) - @param cg the color group (QColorGroup) - @param column the column (int) - @param width width of the cell (int) - @param alignment alignment of the cell (int) - """ - _cg = QColorGroup(cg) - c = _cg.text() - - if self.bold and column == 0: - _cg.setColor(QColorGroup.Text, Qt.red) - - QListViewItem.paintCell(self, p, _cg, column, width, alignment) - - _cg.setColor(QColorGroup.Text, c) - - - def setOpen(self, o): - """ - Public slot to set/reset the open state. - - @param o flag indicating the open state - """ - if o: - if not self.children : - self.build_children() - self.selected = 1 - self.tree.node_selected = self - else: - - for child in self.children: - self.takeItem(child) - del child - self.children = [] - QListViewItem.setOpen(self,o) - self.tree.setSelected(self,o) - - - #---------------------------------------------------------- - # interface a implementer par les noeuds derives (debut) - #---------------------------------------------------------- - def getPanel(self): - print self.__class__ - return None - - def createPopUpMenu(self): - pass - - #---------------------------------------------------- - # interface a implementer par les noeuds derives (fin) - #---------------------------------------------------- - - def init(self): #CS_pbruno toclean - self.state='collapsed' - self.displayed = 0 - self.selected = 0 - self.x = self.y =None - self.lasty = 0 - self.children = [] - self.id = [] - if self.parent is self.tree: - self.racine=self - else: - self.racine = self.parent.racine - - def connect(self): - self.item.connect("add",self.onAdd,()) - self.item.connect("supp",self.onSupp,()) - self.item.connect("valid",self.onValid,()) - - - def commentIt(self): - """ - Cette methode a pour but de commentariser la commande pointee par self - """ - # On traite par une exception le cas ou l'utilisateur final cherche a désactiver - # (commentariser) un commentaire. - try : - pos=self.parent.children.index(self) - commande_comment = self.item.get_objet_commentarise() - # On signale au parent du panel (le JDCDisplay) une modification - self.editor.init_modif() - self.parent.children[pos].select() - except Exception,e: - traceback.print_exc() - QMessageBox.critical( self.parent, "TOO BAD",str(e)) - return - - def unCommentIt(self): - """ - Realise la decommentarisation de self - """ - try : - pos=self.parent.children.index(self) - commande,nom = self.item.uncomment() - self.editor.init_modif() - self.parent.children[pos].select() - except Exception,e: - QMessageBox.critical( self.editor, "Erreur !",str(e)) - return - - def addComment( self, after=True ): - """ - Ajoute un commentaire a l'interieur du JDC : - """ - self.editor.init_modif() - if after: - pos = 'after' - else: - pos = 'before' - return self.append_brother( COMMENT, pos ) - - def addParameters( self, after=True ): - """ - Ajoute un parametre a l'interieur du JDC : - """ - self.editor.init_modif() - if after: - pos = 'after' - else: - pos = 'before' - return self.append_brother( PARAMETERS, pos ) - - - - def select( self ): - """ - Rend le noeud courant (self) selectionne et deselectionne - tous les autres - """ - self.setOpen( True ) - - #------------------------------------------------------------------ - # Methodes de creation et destruction de noeuds - # Certaines de ces methodes peuvent etre appelees depuis l'externe - #------------------------------------------------------------------ - def append_brother(self,name,pos='after',retour='non'): - """ - Permet d'ajouter un objet frere a l'objet associe au noeud self - par defaut on l'ajoute immediatement apres - Methode externe - """ - # on veut ajouter le frere de nom name directement avant ou apres self -## print "*********** append_brother ", self.item.GetLabelText() - index = self.parent.children.index(self) - if pos == 'before': - index = index - elif pos == 'after': - index = index +1 - else: - print str(pos)," n'est pas un index valide pour append_brother" - return 0 - return self.parent.append_child(name,pos=index) - - def append_child(self,name,pos=None,verif='oui',retour='non'): - """ - Methode pour ajouter un objet fils a l'objet associe au noeud self. - On peut l'ajouter en debut de liste (pos='first'), en fin (pos='last') - ou en position intermediaire. - Si pos vaut None, on le place a la position du catalogue. - """ -## print "************** append_child ",self.item.GetLabelText() - if pos == 'first': - index = 0 - elif pos == 'last': - index = len(self.children) - elif type(pos) == types.IntType : - # position fixee - index = pos - elif type(pos) == types.InstanceType: - # pos est un item. Il faut inserer name apres pos - index = self.item.get_index(pos) +1 - elif type(name) == types.InstanceType: - index = self.item.get_index_child(name.nom) - else: - index = self.item.get_index_child(name) - obj=self.item.additem(name,index) #CS_pbruno emet le signal 'add' - #print obj - if obj is None:obj=0 - if obj == 0:return 0 - #print "append_child",index,self.children - child=self.children[index] - child.select() - return child - - def delete(self): - """ - Methode externe pour la destruction de l'objet associe au noeud - La mise a jour des noeuds est faite par onSupp sur notification - """ - self.editor.init_modif() - index = self.parent.children.index(self) - 1 - if index < 0 : index =0 - - parent=self.parent - ret=parent.item.suppitem(self.item) - if ret == 0:return - - brothers=parent.children - if brothers: - toselect=brothers[index] - else: - toselect=parent - toselect.select() - - #------------------------------------------------------------------ - def onValid(self): - self.update_node_valid() - self.update_node_label() - self.update_node_texte() - - - def onAdd(self,objet): - #print "NODE onAdd : un objet a ete ajoute aux fils de l'item ",self.item.GetLabelText() - old_nodes=self.children - self.update_nodes() - #self.select() - - def onSupp(self,objet): - #print "NODE onSupp : un objet a ete supprime des fils de l'item ",self.item.object,objet - old_nodes=self.children - self.update_nodes() - #self.select() - - def update_node_valid(self): - """Cette methode remet a jour la validite du noeud (icone) - Elle appelle isvalid - """ - #print 'NODE update_node_valid', self.item.GetLabelText() - p = utilIcons.getPixmap(self.item.GetIconName() + ".gif") - self.setPixmap(0,p) - - def update_node_label(self): #CS_pbruno todo - """ Met a jour le label du noeud """ - #print "NODE update_node_label", self.item.GetLabelText() - labeltext,fonte,couleur = self.item.GetLabelText() - self.setText(0, labeltext) - - def update_node_texte(self): - """ Met a jour les noms des SD et valeurs des mots-cles """ - #print "NODE update_node_texte", self.item.GetLabelText() - value = self.item.GetText() - self.setText(1, value) - - def update_nodes(self): - #print "NODE update_nodes ", self.item.GetLabelText() - self.setOpen( False ) - self.setOpen( True ) - #self.select() - - def update_texte(self): - """ Met a jour les noms des SD et valeurs des mots-cles """ - #print "NODE update_texte", self.item.GetLabelText() - self.update_node_texte() - if self.state == 'expanded' : - for child in self.children: - if child.displayed != 0 : child.update_texte() - - def update_valid(self) : - """Cette methode a pour but de mettre a jour la validite du noeud - et de propager la demande de mise a jour a son parent - """ - #print "NODE update_valid", self.item.GetLabelText() - #PN a reverifier SVP parent - self.update_node_valid() - try : - self.parent.update_valid() - except: - pass - - def supprime(self): - #print "NODE supprime",self.item.GetLabelText() - self.efface_node() - self.racine = None - if not self.children : return - for child in self.children: - child.supprime() - self.children=None - - def build_children(self): - """ Construit la liste des enfants de self """ - #print "NODE : Construit la liste des enfants de", self.item.GetLabelText() - self.children = [] - sublist = self.item._GetSubList() - if sublist : - last = None - for item in sublist : - child = item.itemNode(self, item, last) - last = child - self.children.append(child) - - - def doPasteCommande(self,objet_a_copier): - """ - Réalise la copie de l'objet passé en argument qui est nécessairement - une commande - """ - parent=self.parent - #child = parent.item.append_child(objet_a_copier,self.item.getObject()) - child = self.append_brother(objet_a_copier,retour='oui') - #if child is None:return 0 - return child - - def doPasteMCF(self,objet_a_copier): - """ - Réalise la copie de l'objet passé en argument (objet_a_copier) - Il s'agit forcément d'un mot clé facteur - """ - child = self.append_child(objet_a_copier,pos='first',retour='oui') - return child - - - - -if __name__=='__main__': - from qt import * - - - sys.path[:0]=['..','../Aster','../Aster/Cata' ] - - app = QApplication(sys.argv) - - fn = 'azAster.comm' - jdcName = os.path.basename(fn) - f=open(fn,'r') - text=f.read() - f.close() - print 'text',text - - from autre_analyse_cata import analyse_catalogue - from Cata import cataSTA8 - cata=cataSTA8 - fic_cata="../../Aster/Cata/cataSTA8/cata.py" - cata_ordonne ,list_simp_reel = analyse_catalogue(cata) - - - - j=cata.JdC( procedure=text, cata=cata, nom=jdcName, - cata_ord_dico=cata_ordonne ) - - j.compile() - if not j.cr.estvide(): - print j.cr - sys.exit() - - j.exec_compile() - if not j.cr.estvide(): - print j.cr - sys.exit() - - from Editeur import comploader - comploader.charger_composants(QT) - from Editeur import Objecttreeitem - jdc_item=Objecttreeitem.make_objecttreeitem( app, "nom", j) - - if jdc_item: - tree = JDCTree( jdc_item, None ) - - app.setMainWidget(tree) - app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()")) - tree.show() - - res = app.exec_loop() - sys.exit(res) - - diff --git a/InterfaceQT/compobase.py b/InterfaceQT/compobase.py deleted file mode 100644 index a287b7d2..00000000 --- a/InterfaceQT/compobase.py +++ /dev/null @@ -1,3 +0,0 @@ -from Editeur import Objecttreeitem -treeitem = Objecttreeitem.ObjectTreeItem -objet = None diff --git a/InterfaceQT/compobloc.py b/InterfaceQT/compobloc.py deleted file mode 100644 index 7c8b844d..00000000 --- a/InterfaceQT/compobloc.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- - -from qt import * -from Editeur import Objecttreeitem - -import compofact -import browser - - -class Node(browser.JDCNode): - def getPanel(self): - """ - """ - from monMCFactPanel import MonMCFactPanel - return MonMCFactPanel(self,parent=self.editor) - - -class BLOCTreeItem(compofact.FACTTreeItem): - itemNode=Node - - def get_objet(self,name) : - for v in self.object.mc_liste: - if v.nom == name : return v - return None - - def iscopiable(self): - return 0 - - -import Accas -treeitem = BLOCTreeItem -objet = Accas.MCBLOC diff --git a/InterfaceQT/compocomm.py b/InterfaceQT/compocomm.py deleted file mode 100644 index 0656c95a..00000000 --- a/InterfaceQT/compocomm.py +++ /dev/null @@ -1,108 +0,0 @@ -# -*- 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 string -from qt import * - -from Editeur import Objecttreeitem -import browser -import typeNode - - -class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel): - def getPanel( self ): - """ - """ - from monCommentairePanel import MonCommentairePanel - return MonCommentairePanel(self,parent=self.editor) - - def createPopUpMenu(self): - typeNode.PopUpMenuNodePartiel.createPopUpMenu(self) - if hasattr(self.item,'uncomment'): - self.menu.insertItem( qApp.translate('Browser','Decommenter'), self.unCommentIt ) - - def update_node_label(self) : - """ - """ - debComm=self.item.GetText() - self.setText(1,debComm) - - -class COMMTreeItem(Objecttreeitem.ObjectTreeItem): - itemNode=Node - - def init(self): - self.setfunction = self.set_valeur - - def GetIconName(self): - """ - Retourne le nom de l'icône associée au noeud qui porte self, - dépendant de la validité de l'objet - NB : un commentaire est toujours valide ... - """ - return "ast-white-percent" - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - return 'commentaire' #CS_pbruno,Fonte_Commentaire,None - - def get_valeur(self): - """ - Retourne la valeur de l'objet Commentaire cad son texte - """ - return self.object.get_valeur() or '' - - def GetText(self): - texte = self.object.valeur - texte = string.split(texte,'\n')[0] - if len(texte) < 25 : - return texte - else : - return texte[0:24] - - def set_valeur(self,valeur): - """ - Afecte valeur à l'objet COMMENTAIRE - """ - self.object.set_valeur(valeur) - - def GetSubList(self): - """ - Retourne la liste des fils de self - """ - return [] - - - def get_objet_commentarise(self): - """ - La méthode get_objet_commentarise() de la classe compocomm.COMMTreeItem - surcharge la méthode get_objet_commentarise de la classe Objecttreeitem.ObjectTreeItem - elle a pour but d'empecher l'utilisateur final de commentariser un commentaire. - """ - raise Exception( 'Impossible de commentariser un commentaire' ) - -import Extensions -treeitem =COMMTreeItem -objet = Extensions.commentaire.COMMENTAIRE diff --git a/InterfaceQT/compocommandecomm.py b/InterfaceQT/compocommandecomm.py deleted file mode 100644 index 153f2b71..00000000 --- a/InterfaceQT/compocommandecomm.py +++ /dev/null @@ -1,94 +0,0 @@ -# -*- 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 traceback -import string - -from Editeur import Objecttreeitem -import compocomm - -class COMMANDE_COMMTreeItem(Objecttreeitem.ObjectTreeItem): - itemNode=compocomm.Node - - def init(self): - self.setfunction = self.set_valeur - - def GetIconName(self): - """ - Retourne le nom de l'icône associée au noeud qui porte self, - dépendant de la validité de l'objet - NB : une commande commentarisée est toujours valide ... - """ - if self.isvalid(): - return "ast-green-percent" - else: - return "ast-red-percent" - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - return 'commentaire' - - def get_valeur(self): - """ - Retourne la valeur de la commande commentarisée cad son texte - """ - return self.object.get_valeur() or '' - - def GetText(self): - texte = self.object.valeur - texte = string.split(texte,'\n')[0] - if len(texte) < 25 : - return texte - else : - return texte[0:24] - - def set_valeur(self,valeur): - """ - Afefcte valeur à l'objet commande commentarisée - """ - self.object.set_valeur(valeur) - - def GetSubList(self): - """ - Retourne la liste des fils de self - """ - return [] - - def uncomment(self): - """ - Demande à l'objet commande commentarisée de se décommentariser. - Si l'opération s'effectue correctement, retourne l'objet commande - et éventuellement le nom de la sd produite, sinon lève une exception - """ - try: - commande,nom = self.object.uncomment() - #self.parent.children[pos].select() - except Exception,e: - traceback.print_exc() - raise e - return commande,nom - -import Accas -treeitem =COMMANDE_COMMTreeItem -objet = Accas.COMMANDE_COMM diff --git a/InterfaceQT/compoerror.py b/InterfaceQT/compoerror.py deleted file mode 100644 index 2f1821dc..00000000 --- a/InterfaceQT/compoerror.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- 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 -from Editeur import Objecttreeitem -from desError import DError - -class ERRORTreeItem(Objecttreeitem.AtomicObjectTreeItem): - - panel = DError - def GetIconName(self): - return "ast-red-ball" - - -treeitem =ERRORTreeItem -objet = ErrorObj - diff --git a/InterfaceQT/compofact.py b/InterfaceQT/compofact.py deleted file mode 100644 index 7ffbbb4c..00000000 --- a/InterfaceQT/compofact.py +++ /dev/null @@ -1,136 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== - -from qt import * -from Editeur import Objecttreeitem -import browser - - -class Node(browser.JDCNode): - def getPanel(self): - """ - """ - from monMCFactPanel import MonMCFactPanel - return MonMCFactPanel(self,parent=self.editor) - - def doPaste(self,node_selected): - objetACopier = self.item.get_copie_objet() - child=node_selected.doPasteMCF(objetACopier) - return child - - def doPasteMCF(self,objetACopier): - child = self.parent.append_child(objetACopier, - pos=self.item, - retour='oui') - return child - - -class FACTTreeItem(Objecttreeitem.ObjectTreeItem): - itemNode=Node - - def IsExpandable(self): - return 1 - - def GetText(self): - return '' - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - # None --> fonte et couleur par défaut - return self.object.getlabeltext(),None,None - - def isvalid(self): - return self.object.isvalid() - - def iscopiable(self): - return 1 - - def GetIconName(self): - if self.object.isvalid(): - return "ast-green-los" - elif self.object.isoblig(): - return "ast-red-los" - else: - return "ast-yel-los" - - def keys(self): - keys=self.object.mc_dict.keys() - return keys - - def GetSubList(self): - """ - Reactualise la liste des items fils stockes dans self.sublist - """ - liste=self.object.mc_liste - sublist=[None]*len(liste) - # suppression des items lies aux objets disparus - for item in self.sublist: - old_obj=item.getObject() - if old_obj in liste: - pos=liste.index(old_obj) - sublist[pos]=item - else: - pass # objets supprimes ignores - # ajout des items lies aux nouveaux objets - pos=0 - for obj in liste: - if sublist[pos] is None: - # nouvel objet : on cree un nouvel item - def setfunction(value, object=obj): - object.setval(value) - item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction) - sublist[pos]=item - pos=pos+1 - - self.sublist=sublist - return self.sublist - - def additem(self,name,pos): - objet = self.object.addentite(name,pos) - return objet - - def suppitem(self,item) : - """ - Cette methode a pour fonction de supprimer l'item passee en argument - des fils de l'item FACT qui est son pere - - item = item du MOCLE a supprimer du MOCLE pere - - item.getObject() = MCSIMP ou MCBLOC - """ - itemobject=item.getObject() - if itemobject.isoblig() : - self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ') - return 0 - - if self.object.suppentite(itemobject): - message = "Mot-clef " + itemobject.nom + " supprime" - self.appli.affiche_infos(message) - return 1 - else: - self.appli.affiche_infos('Pb interne : impossible de supprimer ce mot-clé') - return 0 - -import Accas -objet = Accas.MCFACT -treeitem = FACTTreeItem diff --git a/InterfaceQT/compoformule.py b/InterfaceQT/compoformule.py deleted file mode 100644 index 02dcdc0d..00000000 --- a/InterfaceQT/compoformule.py +++ /dev/null @@ -1,180 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -Ce module contient les classes permettant de définir les objets graphiques -représentant un objet de type FORMULE, cad le panneau et l'item de l'arbre -d'EFICAS -""" - -import string -from qt import * -import compooper -import browser -import typeNode - - -class FormuleNode(browser.JDCNode,typeNode.PopUpMenuNode): - - def getPanel(self): - - from monFormulePanel import MonFormulePanel - return MonFormulePanel(self,parent=self.editor) - - - def createPopUpMenu(self): - typeNode.PopUpMenuNode.createPopUpMenu(self) - - -class FORMULETreeItem(compooper.EtapeTreeItem): - """ - Classe servant a définir l'item porté par le noeud de l'arbre d'EFICAS - qui représente la FORMULE - """ - itemNode=FormuleNode - - def init(self): - self.setfunction = self.set_valeur - -# --------------------------------------------------------------------------- -# API de FORMULE pour l'arbre -# --------------------------------------------------------------------------- - def GetSubList(self): - """ - Retourne la liste des fils de self - On considére que FORMULE n'a pas de fils - --> modification par rapport a MACRO classique - """ - # dans EFICAS on ne souhaite pas afficher les mots-clés fils de FORMULE - # de façon traditionnelle - return [] - - def GetIconName(self): - """ - Retourne le nom de l'icone à afficher dans l'arbre - Ce nom dépend de la validité de l'objet - """ - if self.object.isactif(): - self.object.state="modified" - if self.object.isvalid(): - return "ast-green-square" - else: - return "ast-red-square" - else: - return "ast-white-text" - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte a afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - if self.object.isactif(): - # None --> fonte et couleur par défaut - return self.labeltext,None,None - else: - return self.labeltext,None,None - #return self.labeltext,fontes.standard_italique,None - -# --------------------------------------------------------------------------- -# Méthodes permettant la modification et la lecture des attributs -# du paramètre = API graphique de la FORMULE pour Panel et EFICAS -# --------------------------------------------------------------------------- - - def get_nom(self): - """ - Retourne le nom de la FORMULE - """ - return self.object.get_nom() - - def get_type(self): - """ - Retourne le type de la valeur retournée par la FORMULE - """ - return self.object.type_retourne - - def get_args(self): - """ - Retourne les arguments de la FORMULE - """ - args="" - for mot in self.object.mc_liste: - 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éja le casa - try : - args=string.split(args,',') - except : - pass - return args - - def get_corps(self): - """ - Retourne le corps de la FORMULE - """ - corps="" - for mot in self.object.mc_liste: - if mot.nom == 'VALE': - corps=mot.valeur - break - return corps - - - def get_liste_types_autorises(self): - """ - Retourne la liste des types autorises pour les valeurs de sortie - d'une FORMULE - """ - return self.object.l_types_autorises - - def save_formule(self,new_nom,new_typ,new_arg,new_exp): - """ - Vérifie si (new_nom,new_typ,new_arg,new_exp) définit bien une FORMULE - licite : - - si oui, stocke ces paramètres comme nouveaux paramètres de la - FORMULE courante et retourne 1 - - si non, laisse les paramètres anciens de la FORMULE inchangés et - retourne 0 - """ - test,erreur = self.object.verif_formule_python(formule=(new_nom,new_typ,new_arg, - new_exp)) - if test : - # la formule est bien correcte : on sauve les nouveaux paramètres - test=self.object.update_formule_python(formule=(new_nom,new_typ,new_exp,new_arg)) - return test,erreur - -# --------------------------------------------------------------------------- -# Accès aux méthodes de vérification de l'objet FORM_ETAPE -# --------------------------------------------------------------------------- - - def verif_nom(self,nom): - """ - Lance la vérification du nom passé en argument - """ - return self.object.verif_nom(nom) - - def verif_arguments(self,arguments): - """ - Lance la vérification des arguments passés en argument - """ - return self.object.verif_arguments('('+arguments+')') - - def verif_formule(self,formule): - """ - Lance la vérification de FORMULE passée en argument - """ - return self.object.verif_formule(formule=formule) - - - def verif_formule_python(self,formule): - """ - Lance la vérification de FORMULE passée en argument - """ - return self.object.verif_formule_python(formule=formule) - -import Accas -treeitem =FORMULETreeItem -objet = Accas.FORM_ETAPE diff --git a/InterfaceQT/compojdc.py b/InterfaceQT/compojdc.py deleted file mode 100644 index 1cd49081..00000000 --- a/InterfaceQT/compojdc.py +++ /dev/null @@ -1,116 +0,0 @@ -# -*- coding: utf-8 -*- - -from qt import * -from Editeur import Objecttreeitem -import browser - - -class Node(browser.JDCNode): - def getPanel(self): - """ - """ - from monRacinePanel import MonRacinePanel - return MonRacinePanel(self,parent=self.editor) - - def doPasteCommande(self,objet_a_copier): - """ - Réalise la copie de l'objet passé en argument qui est nécessairement - une commande - """ - child = self.append_child(objet_a_copier,pos='first',retour='oui') - return child - - -class JDCTreeItem(Objecttreeitem.ObjectTreeItem): - itemNode=Node - - def IsExpandable(self): - return 1 - - def GetText(self): - return " " - - def GetLabelText(self): - # None --> fonte et couleur par défaut - return self.object.nom,None,None - - def get_jdc(self): - """ - Retourne l'objet pointé par self - """ - return self.object - - def GetIconName(self): - if self.object.isvalid(): - return "ast-green-square" - else: - return "ast-red-square" - - def keys(self): - if self.object.etapes_niveaux != []: - return range(len(self.object.etapes_niveaux)) - else: - return range(len(self.object.etapes)) - - def additem(self,name,pos): - cmd = self._object.addentite(name,pos) - return cmd - - def suppitem(self,item) : - # item = item de l'ETAPE à supprimer du JDC - # item.getObject() = ETAPE ou COMMENTAIRE - # self.object = JDC - - itemobject=item.getObject() - if self.object.suppentite(itemobject): - if itemobject.nature == "COMMENTAIRE" : - message = "Commentaire supprimé" - else : - message = "Commande " + itemobject.nom + " supprimée" - self.appli.affiche_infos(message) - return 1 - else: - self.appli.affiche_infos("Pb interne : impossible de supprimer cet objet") - return 0 - - def GetSubList(self): - """ - Retourne la liste des items fils de l'item jdc. - Cette liste est conservee et mise a jour a chaque appel - """ - if self.object.etapes_niveaux != []: - liste = self.object.etapes_niveaux - else: - liste = self.object.etapes - sublist=[None]*len(liste) - # suppression des items lies aux objets disparus - for item in self.sublist: - old_obj=item.getObject() - if old_obj in liste: - pos=liste.index(old_obj) - sublist[pos]=item - else: - pass # objets supprimes ignores - # ajout des items lies aux nouveaux objets - pos=0 - for obj in liste: - if sublist[pos] is None: - # nouvel objet : on cree un nouvel item - item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj) - sublist[pos]=item - pos=pos+1 - - self.sublist=sublist - return self.sublist - - def get_l_noms_etapes(self): - """ Retourne la liste des noms des étapes de self.object""" - return self.object.get_l_noms_etapes() - - def get_liste_cmd(self): - listeCmd = self.object.niveau.definition.get_liste_cmd() - return listeCmd - -import Accas -treeitem =JDCTreeItem -objet = Accas.JDC diff --git a/InterfaceQT/compomacro.py b/InterfaceQT/compomacro.py deleted file mode 100644 index 74e2f59a..00000000 --- a/InterfaceQT/compomacro.py +++ /dev/null @@ -1,154 +0,0 @@ -# -*- coding: utf-8 -*- - -# Modules Python -import os,sys,string -import types -import traceback -from qt import * - -# Modules Eficas -from Editeur import Objecttreeitem -import compooper -import browser -import typeNode - - -class MACRONode(browser.JDCNode,typeNode.PopUpMenuNode): - def getPanel(self): - from monMacroPanel import MonMacroPanel - return MonMacroPanel (self,parent=self.editor ) - - def createPopUpMenu(self): - typeNode.PopUpMenuNode.createPopUpMenu(self) - - -class MACROTreeItem(compooper.EtapeTreeItem): -# """ Cette classe hérite d'une grande partie des comportements -# de la classe compooper.EtapeTreeItem -# """ - itemNode=MACRONode - -# ------------------------------------ -# Classes necessaires à INCLUDE -# ------------------------------------ - -class INCLUDETreeItemBase(MACROTreeItem): - - def __init__(self,appli, labeltext, object, setfunction): - MACROTreeItem.__init__(self,appli, labeltext, object, setfunction) - - def iscopiable(self): - return 0 - - -class INCLUDENode(browser.JDCNode,typeNode.PopUpMenuNode): - def getPanel(self): - from monIncludePanel import MonIncludePanel - return MonIncludePanel (self,parent=self.editor ) - - def createPopUpMenu(self): - typeNode.PopUpMenuNode.createPopUpMenu(self) - self.menu.insertItem( qApp.translate('Browser','Edit'), self.makeEdit ) - - def makeEdit(self): #,appli,node - if self.item.object.text_converted == 0: - # Le texte du fichier inclus n'a pas pu etre converti par le module convert - msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n" - msg=msg+self.item.object.text_error - return - - if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None: - #L'include n'est pas initialise - self.item.object.build_include(None,"") - - # On cree un nouvel onglet dans le bureau - self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom ) - - -class INCLUDETreeItem(INCLUDETreeItemBase): - itemNode=INCLUDENode - - -# ------------------------------------ -# Classes necessaires à POURSUITE -# ------------------------------------ - -class POURSUITENode(browser.JDCNode, typeNode.PopUpMenuNode): - def getPanel(self): - from monPoursuitePanel import MonPoursuitePanel - return MonPoursuitePanel (self,parent=self.editor ) - - def createPopUpMenu(self): - typeNode.PopUpMenuNode.createPopUpMenu(self) - self.menu.insertItem( qApp.translate('Browser','Edit'), self.makeEdit ) - - def makeEdit(self): #,appli,node - if self.item.object.text_converted == 0: - msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n" - msg=msg+self.item.object.text_error - return - - if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None: - text="""DEBUT() - FIN()""" - self.object.build_poursuite(None,text) - - # On cree un nouvel onglet dans le bureau - self.editor.vm.displayJDC( self.item.object.jdc_aux , self.item.object.jdc_aux.nom) - -class POURSUITETreeItem(INCLUDETreeItemBase): - itemNode=POURSUITENode - - -# ---------------------------------------- -# Classes necessaires à INCLUDE MATERIAU -# ---------------------------------------- - - -class MATERIAUNode(MACRONode): - - def getPanel(self): - from monMacroPanel import MonMacroPanel - return MonMacroPanel (self,parent=self.editor ) - - def createPopUpMenu(self): - typeNode.PopUpMenuNode.createPopUpMenu(self) - self.menu.insertItem( qApp.translate('Browser','View'), self.makeView ) - - def makeView(self) : - if hasattr(self.item.object,'fichier_ini') and self.item.object.fichier_ini==None: - QMessageBox.information( self, "Include vide","L'include doit etre correctement initialisé pour etre visualisé") - return - f = open(self.item.object.fichier_ini, "rb") - texte = f.read() - f.close() - from desVisu import DVisu - monVisu=DVisu(parent=self.editor,fl=Qt.WType_Dialog) - monVisu.TB.setText(texte) - monVisu.show() - -class INCLUDE_MATERIAUTreeItem(INCLUDETreeItemBase): - itemNode=MATERIAUNode - -# ------------------------------------ -# TreeItem -# ------------------------------------ - - -def treeitem(appli, labeltext, object, setfunction=None): - """ Factory qui retourne l'item adapte au type de macro : - INCLUDE, POURSUITE, MACRO - """ - if object.nom == "INCLUDE_MATERIAU": - return INCLUDE_MATERIAUTreeItem(appli, labeltext, object, setfunction) - elif object.nom == "INCLUDE": - return INCLUDETreeItem(appli, labeltext, object, setfunction) - elif object.nom == "POURSUITE": - return POURSUITETreeItem(appli, labeltext, object, setfunction) - else: - return MACROTreeItem(appli, labeltext, object, setfunction) - -import Accas -objet=Accas.MACRO_ETAPE - - diff --git a/InterfaceQT/compomclist.py b/InterfaceQT/compomclist.py deleted file mode 100644 index 65bdad03..00000000 --- a/InterfaceQT/compomclist.py +++ /dev/null @@ -1,205 +0,0 @@ -# -*- coding: utf-8 -*- - -import types -import traceback - -from qt import * - -import compofact -import browser -from Editeur import Objecttreeitem -from Noyau.N_OBJECT import ErrorObj -#import compoerror - - -class Node(browser.JDCNode): - def getPanel(self): - """ - """ - if self.item.isMCList() : - if self.item.ajout_possible(): - from monMCListAjoutPanel import MonMCListAjoutPanel - return MonMCListAjoutPanel(self,parent=self.editor) - else : - print "MCList" - elif self.item.isMCFact() : - from monMCFactPanel import MonMCFactPanel - return MonMCFactPanel(self,parent=self.editor) - else : - print "MCList" - - def doPaste(self,node_selected): - objet_a_copier = self.item.get_copie_objet() - child=node_selected.doPasteMCF(objet_a_copier) - #print "doPaste",child - return child - - def doPasteMCF(self,objet_a_copier): - child=None - # le noeud courant est une MCList - if self.item.isMCList() : - child = self.append_child(objet_a_copier,pos='first',retour='oui') - - # le noeud courant est un MCFACT - elif self.item.isMCFact() : - # le noeud selectionne est un MCFACT dans une MCList - if self.parent.item.isMCList(): - child = self.parent.append_child(objet_a_copier, - pos=self.item, - retour='oui') - - # le noeud MCFACT selectionne n'est pas dans une MCList - else: - child = self.parent.append_child(objet_a_copier,retour='oui') - - else: - QMessageBox.information( self, "Copie impossible", - "Vous ne pouvez coller le mot-clé facteur copié à ce niveau de l'arborescence !") - self.editor.affiche_infos("Copie refusée") - - return child - -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). - """ - itemNode=Node - - def init(self): - # Si l'objet Accas (MCList) a moins d'un mot cle facteur - # on utilise directement ce mot cle facteur comme delegue - self.updateDelegate() - - def updateDelegate(self): - 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) - Si la liste ne contient qu'un mot clé facteur, on utilise le panneau - FACTPanel. - Si la liste est plus longue on utilise le panneau MCLISTPanel. - """ - if len(self._object) > 1: - return MCLISTPanel(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) - - def GetSubList(self): - self.updateDelegate() - if len(self._object) <= 1: - self._object.data[0].alt_parent=self._object - return compofact.FACTTreeItem.GetSubList(self) - - liste=self._object.data - sublist=[None]*len(liste) - # suppression des items lies aux objets disparus - for item in self.sublist: - old_obj=item.getObject() - if old_obj in liste: - pos=liste.index(old_obj) - sublist[pos]=item - else: - pass # objets supprimes ignores - # ajout des items lies aux nouveaux objets - pos=0 - for obj in liste: - if sublist[pos] is None: - # nouvel objet : on cree un nouvel item - def setfunction(value, object=obj): - object=value - item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction) - sublist[pos]=item - #Attention : on ajoute une information supplementaire pour l'actualisation de - # la validite. L'attribut parent d'un MCFACT pointe sur le parent de la MCLISTE - # et pas sur la MCLISTE elle meme ce qui rompt la chaine de remontee des - # informations de validite. alt_parent permet de remedier a ce defaut. - obj.alt_parent=self._object - pos=pos+1 - - self.sublist=sublist - return self.sublist - - def GetIconName(self): - if self._object.isvalid(): - return "ast-green-los" - elif self._object.isoblig(): - return "ast-red-los" - else: - return "ast-yel-los" - - def get_docu(self): - """ Retourne la clef de doc de l'objet pointé par self """ - return self.object.get_docu() - - def 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 - - def isMCList(self): - """ - Retourne 1 si l'objet pointé par self est une MCList, 0 sinon - """ - 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: - return compofact.FACTTreeItem.additem(self,obj,pos) - - o= self.object.addentite(obj,pos) - return o - - def suppitem(self,item): - """ - 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 self.object.suppentite(obj): - if len(self._object) == 1: self.updateDelegate() - message = "Mot-clef " + obj.nom + " supprimé" - self.appli.affiche_infos(message) - return 1 - else: - self.appli.affiche_infos('Impossible de supprimer ce mot-clef') - return 0 - - -import Accas -objet = Accas.MCList - -def treeitem(appli,labeltext,object,setfunction): - """ Factory qui produit un objet treeitem adapte a un objet - Accas.MCList (attribut objet de ce module) - """ - return MCListTreeItem(appli,labeltext,object,setfunction) diff --git a/InterfaceQT/componiveau.py b/InterfaceQT/componiveau.py deleted file mode 100644 index 866d585e..00000000 --- a/InterfaceQT/componiveau.py +++ /dev/null @@ -1,94 +0,0 @@ -# -*- coding: utf-8 -*- - -from qt import * -from Editeur import Objecttreeitem -from Extensions import commentaire -import browser - -class Node(browser.JDCNode): - pass - -class NIVEAUTreeItem(Objecttreeitem.ObjectTreeItem): - itemNode=Node - - def isactif(self): - return self.object.isactif() - - def IsExpandable(self): - return 1 - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - if self.isactif(): - fonte = Fonte_Niveau - else : - fonte = Fonte_Niveau_inactif - return self.labeltext,fonte,'#00008b' - - def GetIconName(self): - if self.isactif(): - if self.object.isvalid(): - return "ast-green-text" - else: - return "ast-red-text" - else: - return "ast-white-text" - - def keys(self): - if self.object.etapes_niveaux != []: - return range(len(self.object.etapes_niveaux)) - else: - return range(len(self.object.etapes)) - - def GetSubList(self): - sublist=[] - for key in self.keys(): - if self.object.etapes_niveaux != []: - liste = self.object.etapes_niveaux - else: - liste = self.object.etapes - try: - value = liste[key] - except KeyError: - continue - def setfunction(value, key=key, object=liste): - object[key] = value - item =self.make_objecttreeitem(self.appli,value.ident() + " : ", value, setfunction) - sublist.append(item) - return sublist - - def additem(self,name,pos): - if isinstance(name,Objecttreeitem.TreeItem) : - cmd=self.object.addentite(name.getObject(),pos) - else : - cmd = self.object.addentite(name,pos) - item = self.make_objecttreeitem(self.appli,cmd.nom + " : ", cmd) - return item - - def suppitem(self,item) : - # item = item de l'ETAPE à supprimer du JDC - # item.getObject() = ETAPE ou COMMENTAIRE - # self.object = JDC - itemobject=item.getObject() - if self.object.suppentite(itemobject): - if isinstance(item.object,commentaire.COMMENTAIRE): - message = "Commentaire supprimé" - else : - message = "Commande " + itemobject.nom + " supprimée" - self.appli.affiche_infos(message) - return 1 - else: - self.appli.affiche_infos("Pb interne : impossible de supprimer cet objet") - return 0 - - def GetText(self): - return '' - - -import Accas -treeitem = NIVEAUTreeItem -objet = Accas.ETAPE_NIVEAU diff --git a/InterfaceQT/componuplet.py b/InterfaceQT/componuplet.py deleted file mode 100644 index 649ce0e2..00000000 --- a/InterfaceQT/componuplet.py +++ /dev/null @@ -1,85 +0,0 @@ -# -*- 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 -import types -from repr import Repr -from copy import copy,deepcopy - -# Modules Eficas -from Editeur import Objecttreeitem - -myrepr = Repr() -myrepr.maxstring = 100 -myrepr.maxother = 100 - -# Si Expandable vaut 1 les éléments du nuplet apparaissent dans l'arbre -# Si Expandable vaut 0 les éléments n'apparaissent pas -Expandable=1 - - -import browser -from qt import * - -class Node(browser.JDCNode): pass -## def getPanel(self): -## """ -## """ -## return NUPLETPanel( self, self.editor ) - - -class NUPLETTreeItem(Objecttreeitem.ObjectTreeItem): -## panel=NUPLETPanel - itemNode=Node - - def IsExpandable(self): - return Expandable - - def GetText(self): - return '' - - def isvalid(self): - return self.object.isvalid() - - def GetIconName(self): - if self.object.isvalid(): - return "ast-green-los" - elif self.object.isoblig(): - return "ast-red-los" - else: - return "ast-yel-los" - - def GetSubList(self): - if not Expandable:return [] - sublist=[] - for obj in self.object.mc_liste: - item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, None) - sublist.append(item) - return sublist - - def additem(self,name,pos): - raise "NUPLET" - - def suppitem(self,item) : - raise "NUPLET" - -import Accas -treeitem=NUPLETTreeItem -objet=Accas.MCNUPLET diff --git a/InterfaceQT/compooper.py b/InterfaceQT/compooper.py deleted file mode 100644 index 2f990a30..00000000 --- a/InterfaceQT/compooper.py +++ /dev/null @@ -1,260 +0,0 @@ -# -*- coding: utf-8 -*- - -import traceback -import string - -from qt import * - -from Editeur import Objecttreeitem -import browser -import typeNode - -class Node(browser.JDCNode, typeNode.PopUpMenuNode): - def getPanel( self ): - """ - """ - from monCommandePanel import MonCommandePanel - return MonCommandePanel(self,parent=self.editor) - - def createPopUpMenu(self): - typeNode.PopUpMenuNode.createPopUpMenu(self) - if ("AFFE_CARA_ELEM" in self.item.get_genealogie()) and self.editor.salome: - self.menu.insertItem( 'View3D', self.view3D ) - - def doPaste(self,node_selected): - """ - Déclenche la copie de l'objet item avec pour cible - l'objet passé en argument : node_selected - """ - objet_a_copier = self.item.get_copie_objet() - child=node_selected.doPasteCommande(objet_a_copier) - return child - - def doPasteCommande(self,objet_a_copier): - """ - Réalise la copie de l'objet passé en argument qui est nécessairement - une commande - """ - parent=self.parent - #child = parent.item.append_child(objet_a_copier,self.item.getObject()) - child = self.append_brother(objet_a_copier,retour='oui') - #if child is None:return 0 - return child - - def doPasteMCF(self,objet_a_copier): - """ - Réalise la copie de l'objet passé en argument (objet_a_copier) - Il s'agit forcément d'un mot clé facteur - """ - child = self.append_child(objet_a_copier,pos='first',retour='oui') - return child - - def view3D(self) : - from Editeur import TroisDPal - troisD=TroisDPal.TroisDPilote(self.item,self.editor.parent.appliEficas) - troisD.envoievisu() - - -class EtapeTreeItem(Objecttreeitem.ObjectTreeItem): - """ La classe EtapeTreeItem est un adaptateur des objets ETAPE du noyau - Accas. Elle leur permet d'etre affichés comme des noeuds - d'un arbre graphique. - Cette classe a entre autres deux attributs importants : - - _object qui est un pointeur vers l'objet du noyau - - object qui pointe vers l'objet auquel sont délégués les - appels de méthode et les acces aux attributs - Dans le cas d'une ETAPE, _object et object pointent vers le - meme objet. - """ - itemNode=Node - - def IsExpandable(self): - return 1 - - def GetIconName(self): - """ - Retourne le nom de l'icone a afficher dans l'arbre - Ce nom dépend de la validité de l'objet - """ - if not self.object.isactif(): - return "ast-white-square" - elif self.object.isvalid(): - return "ast-green-square" - else: - valid=self.valid_child() - valid=valid * self.valid_regles("non") - if self.reste_val != {}: - valid=0 - if valid==0 : - return "ast-red-square" - else : - try : - # on traite ici le cas d include materiau - # print self.object.definition.nom - if self.object.fichier_ini != self.object.nom_mater : - return "ast-red-square" - except : - pass - return "ast-yellow-square" - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte a afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - if self.object.isactif(): - # None --> fonte et couleur par défaut - return self.labeltext,None,None - else: - return self.labeltext, None, None #CS_pbruno todo - - def get_objet(self,name) : - for v in self.object.mc_liste: - if v.nom == name : return v - return None - - def get_type_sd_prod(self): - """ - Retourne le nom du type du concept résultat de l'étape - """ - sd_prod=self.object.get_type_produit() - if sd_prod: - return sd_prod.__name__ - else: - return "" - - def additem(self,name,pos): - mcent = self._object.addentite(name,pos) - return mcent - - - def suppitem(self,item) : - # item : item du MOCLE de l'ETAPE a supprimer - # item.getObject() = MCSIMP, MCFACT, MCBLOC ou MCList - itemobject=item.getObject() - if itemobject.isoblig() : - self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ') - return 0 - if self.object.suppentite(itemobject): - message = "Mot-clef " + itemobject.nom + " supprime" - self.appli.affiche_infos(message) - return 1 - else : - self.appli.affiche_infos('Pb interne : impossible de supprimer ce mot-clé') - return 0 - - def GetText(self): - try: - return self.object.get_sdname() - except: - return '' - - def keys(self): - keys=self.object.mc_dict.keys() - return keys - - def GetSubList(self): - """ - Reactualise la liste des items fils stockes dans self.sublist - """ - if self.isactif(): - liste=self.object.mc_liste - else: - liste=[] - - sublist=[None]*len(liste) - # suppression des items lies aux objets disparus - for item in self.sublist: - old_obj=item.getObject() - if old_obj in liste: - pos=liste.index(old_obj) - sublist[pos]=item - else: - pass # objets supprimes ignores - - # ajout des items lies aux nouveaux objets - pos=0 - for obj in liste: - if sublist[pos] is None: - # nouvel objet : on cree un nouvel item - def setfunction(value, object=obj): - object.setval(value) - item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction) - sublist[pos]=item - pos=pos+1 - - self.sublist=sublist - return self.sublist - - def isvalid(self): - return self.object.isvalid() - - def iscopiable(self): - """ - Retourne 1 si l'objet est copiable, 0 sinon - """ - return 1 - - def update(self,item): - if item.sd and item.sd.nom: - self.nomme_sd(item.sd.nom) - - def nomme_sd(self,nom): - """ Lance la méthode de nommage de la SD """ - oldnom="" - if self.object.sd != None : - oldnom=self.object.sd.nom - test,mess= self.object.nomme_sd(nom) - if test:self.object.parent.reset_context() - if (test and self.appli.dict_reels.has_key(oldnom) ): - self.appli.dict_reels[nom]=self.appli.dict_reels[oldnom] - return test,mess - - def is_reentrant(self): - return self.object.is_reentrant() - - def get_noms_sd_oper_reentrant(self): - return self.object.get_noms_sd_oper_reentrant() - - def get_objet_commentarise(self): - """ - Cette méthode retourne un objet commentarisé - représentatif de self.object - """ - # Format de fichier utilisé - format=self.appli.format_fichier - 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 - """ - import generator,string,Accas - # Format de fichier utilisé - format=self.appli.format_fichier - g=generator.plugins[format]() - texte_commande = g.gener(self.object,format='beautifie') - # Il faut enlever la premiere ligne vide de texte_commande que - # rajoute le generator - rebut,texte_commande = string.split(texte_commande,'\n',1) - # on construit l'objet COMMANDE_COMM repésentatif de self mais non - # enregistré dans le jdc - commande_comment = Accas.COMMANDE_COMM(texte=texte_commande,reg='non', - parent=self.object.parent) - commande_comment.niveau = self.object.niveau - commande_comment.jdc = commande_comment.parent = self.object.jdc - - pos=self.object.parent.etapes.index(self.object) - parent=self.object.parent - self.object.parent.suppentite(self.object) - parent.addentite(commande_comment,pos) - - return commande_comment - - -import Accas -treeitem = EtapeTreeItem -objet = Accas.ETAPE - diff --git a/InterfaceQT/compoparam.py b/InterfaceQT/compoparam.py deleted file mode 100644 index 4c3fb26b..00000000 --- a/InterfaceQT/compoparam.py +++ /dev/null @@ -1,123 +0,0 @@ -# -*- coding: utf-8 -*- -""" - Ce module contient les classes permettant de définir les objets graphiques - représentant un objet de type PARAMETRE, cad le panneau et l'item de l'arbre - d'EFICAS -""" - -# import modules Python -import string -from qt import * - -# import modules EFICAS -from Editeur import Objecttreeitem -import browser -import typeNode - - -class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel): - def getPanel(self): - """ - """ - from monParamPanel import MonParamPanel - return MonParamPanel(self, parent=self.editor ) - - def createPopUpMenu(self): - typeNode.PopUpMenuNodePartiel.createPopUpMenu(self) - - - -class PARAMTreeItem(Objecttreeitem.ObjectTreeItem): - """ - Classe servant à définir l'item porté par le noeud de l'arbre d'EFICAS - qui représente le PARAMETRE - """ - itemNode=Node - - def init(self): - self.setfunction = self.set_valeur - -# --------------------------------------------------------------------------- -# API du PARAMETRE pour l'arbre -# --------------------------------------------------------------------------- - - def GetIconName(self): - """ - Retourne le nom de l'icone associée au noeud qui porte self, - dépendant de la validité de l'objet - NB : un PARAMETRE est toujours valide ... - """ - if self.isactif(): - if self.isvalid(): - return "ast-green-square" - else: - return "ast-red-square" - else: - return "ast-white-square" - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - return 'PARAMETRE',None,None - - def GetText(self): - """ - Retourne le texte à afficher aprês le nom de la commande (ici apres 'paramêtre') - Ce texte est tronqué à 25 caractêres - """ - texte=self.object.nom+"="+str(self.object.valeur) - texte = string.split(texte,'\n')[0] - if len(texte) < 25 : - return texte - else : - return texte[0:24]+'...' - - def GetSubList(self): - """ - Retourne la liste des fils de self - """ - return [] - -# --------------------------------------------------------------------------- -# Méthodes permettant la modification et la lecture des attributs -# du paramêtre = API graphique du PARAMETRE pour Panel et EFICAS -# --------------------------------------------------------------------------- - - def get_valeur(self): - """ - Retourne la valeur de l'objet PARAMETRE cad son texte - """ - if self.object.valeur is None: return '' - else: return self.object.valeur - - def get_nom(self): - """ - Retourne le nom du paramêtre - """ - return self.object.nom - - def set_valeur(self,new_valeur): - """ - Affecte valeur à l'objet PARAMETRE - """ - self.object.set_valeur(new_valeur) - - def set_nom(self,new_nom): - """ - Renomme le paramêtre - """ - self.object.set_nom(new_nom) - #self.object.set_attribut('nom',new_nom) - - def get_fr(self): - """ - Retourne le fr associé au paramêtre, cad la bulle d'aide pour EFICAS - """ - return "Définition d'un paramêtre" - -import Extensions.parametre -treeitem =PARAMTreeItem -objet = Extensions.parametre.PARAMETRE diff --git a/InterfaceQT/compoparameval.py b/InterfaceQT/compoparameval.py deleted file mode 100644 index 09a54c6d..00000000 --- a/InterfaceQT/compoparameval.py +++ /dev/null @@ -1,153 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -Ce module contient les classes permettant de définir les objets graphiques -représentant un objet de type PARAMETRE_EVAL, cad le panneau et l'item de l'arbre -d'EFICAS -""" - -# import modules Python -import string - -# import modules EFICAS - -from Editeur import Objecttreeitem - - -import browser -from qt import * - -class Node(browser.JDCNode): pass -## def getPanel(self): -## """ -## """ -## return PARAM_EVALPanel( self, self.editor ) - - -class PARAM_EVALTreeItem(Objecttreeitem.ObjectTreeItem): - """ - Classe servant a définir l'item porté par le noeud de l'arbre d'EFICAS - qui représente le PARAMETRE - """ - itemNode=Node -## panel = PARAM_EVALPanel - - def init(self): - self.setfunction = self.set_valeur - -# --------------------------------------------------------------------------- -# API du PARAMETRE pour l'arbre -# --------------------------------------------------------------------------- - - def GetIconName(self): - """ - Retourne le nom de l'icone associée au noeud qui porte self, - dépendant de la validité de l'objet - NB : un PARAMETRE est toujours valide ... - """ - if self.isactif(): - if self.isvalid(): - return "ast-green-square" - else: - return "ast-red-square" - else: - return "ast-white-square" - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte a afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - return 'EVAL',Fonte_PARAMETRE,None - - def GetText(self): - """ - Retourne le texte a afficher apres le nom de la commande (ici apres 'parametre') - Ce texte est tronqué a 25 caracteres - """ - texte = repr(self.object) - texte = string.split(texte,'\n')[0] - if len(texte) < 25 : - return texte - else : - return texte[0:24]+'...' - - def GetSubList(self): - """ - Retourne la liste des fils de self - """ - return [] - -# --------------------------------------------------------------------------- -# Méthodes permettant la modification et la lecture des attributs -# du parametre = API graphique du PARAMETRE pour Panel et EFICAS -# --------------------------------------------------------------------------- - - def isvalid(self): - """ - Indique si l'objet pointé par self est valide - """ - return self.object.isvalid() - - def get_valeur(self): - """ - Retourne une chaine représentant la valeur de l'objet PARAMETRE - cad de l'objet class_eval.EVAL - """ - return self.object.get_valeur() or '' - - def get_nom(self): - """ - Retourne le nom du parametre - """ - return self.object.get_nom() - - def set_valeur(self,new_valeur): - """ - Affecte new_valeur a l'objet PARAMETRE_EVAL - """ - # on construit le texte de la nouvelle valeur - new_valeur = 'EVAL("""'+new_valeur+'""")' - # on affecte la nouvelle valeur a self.object - self.object.set_valeur(new_valeur) - - def set_nom(self,new_nom): - """ - Renomme le parametre - """ - self.object.set_nom(new_nom) - - def get_fr(self): - """ - Retourne le fr associé au parametre, cad la bulle d'aide pour EFICAS - """ - return "Définition d'un parametre de type EVAL" - - def verif_nom(self,nom): - """ - Lance la vérification de validité du nom passé en argument - """ - return self.object.verif_nom(nom = nom) - - def verif_eval(self,valeur): - """ - Lance la vérification de validité de l'expression EVAL passée en argument - """ - return self.object.verif_eval(exp_eval = valeur) - - def save_parametre_eval(self,new_nom,new_val): - """ - Vérifie si (new_nom,new_val) définit bien un EVAL licite : - - si oui, stocke ces parametres comme nouveaux parametres de l'EVAL courant et retourne 1 - - si non, laisse les parametres anciens de EVAL inchangés et retourne 0 - """ - test,erreur = self.object.verif_parametre_eval(param=(new_nom,new_val)) - if test : - # la formule est bien correcte : on sauve les nouveaux parametres - self.object.update(param=(new_nom,new_val)) - return test,erreur - -import Extensions.parametre_eval -treeitem =PARAM_EVALTreeItem -objet = Extensions.parametre_eval.PARAMETRE_EVAL diff --git a/InterfaceQT/compoproc.py b/InterfaceQT/compoproc.py deleted file mode 100644 index ffbfdf03..00000000 --- a/InterfaceQT/compoproc.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from Editeur import Objecttreeitem -import compooper -import browser -import typeNode - -from qt import * - -class Node(browser.JDCNode,typeNode.PopUpMenuNode): - def getPanel(self): - from monMacroPanel import MonMacroPanel - return MonMacroPanel(self,parent=self.editor) - - def createPopUpMenu(self): - typeNode.PopUpMenuNode.createPopUpMenu(self) - - -class ProcEtapeTreeItem(compooper.EtapeTreeItem): - itemNode=Node - -import Accas -treeitem = ProcEtapeTreeItem -objet = Accas.PROC_ETAPE - diff --git a/InterfaceQT/composimp.py b/InterfaceQT/composimp.py deleted file mode 100644 index 3e636ef5..00000000 --- a/InterfaceQT/composimp.py +++ /dev/null @@ -1,605 +0,0 @@ -# -*- coding: utf-8 -*- -# Modules Python -import string,types,os - -from copy import copy,deepcopy -import traceback -from qt import * - -# Modules Eficas -from Editeur import Objecttreeitem -import browser -from Noyau.N_CR import justify_text - -import prefs - -class Node(browser.JDCNode): - def getPanel(self): - """ - """ - klass = None - - # Attention l ordre des if est important - if self.item.wait_shell(): - # l'objet attend un shell - # a priori jamais - print "Pb : Panneau Shell attendu" - print "Pb : Prevenir la maintenance" - klass = None #CS_pbruno todo - return None - - # l'objet prend sa (ses) valeur(s) dans un ensemble discret de valeurs - if self.item.has_into(): - if self.item.is_list() : - from monPlusieursIntoPanel import MonPlusieursIntoPanel - klass = MonPlusieursIntoPanel - else: - from monUniqueIntoPanel import MonUniqueIntoPanel - klass = MonUniqueIntoPanel - - # l'objet prend une ou des valeurs a priori quelconques - else: - # on attend une liste de valeurs - if self.item.is_list() : - # on attend une liste de SD - if self.item.wait_assd(): - from monPlusieursASSDPanel import MonPlusieursASSDPanel - klass = MonPlusieursASSDPanel - else: - # on attend une liste de valeurs de types debase (entiers, réels,...) - from monPlusieursBasePanel import MonPlusieursBasePanel - klass = MonPlusieursBasePanel - # on n'attend qu'une seule valeur - else: - # on attend une SD ou un objet de la classe CO (qui n'existe pas encore) - if self.item.wait_co(): - if len(self.item.get_sd_avant_du_bon_type()) != 0 : - from monUniqueSDCOIntoPanel import MonUniqueSDCOIntoPanel - klass = MonUniqueSDCOIntoPanel - else : - from monUniqueSDCOPanel import MonUniqueSDCOPanel - klass = MonUniqueSDCOPanel - - # on attend une SD - elif self.item.wait_assd(): - if 'R' in self.item.GetType(): - from monUniqueASSDPanel import MonUniqueASSDReelPanel - klass = MonUniqueASSDReelPanel - else : - from monUniqueASSDPanel import MonUniqueASSDPanel - klass = MonUniqueASSDPanel - - # on attend une valeur d'un type de base (entier,reel,...) - else: - # on attend un complexe - if self.item.wait_complex(): - from monUniqueCompPanel import MonUniqueCompPanel - klass = MonUniqueCompPanel - else: - # on attend un entier, un réel ou une string - from monUniqueBasePanel import MonUniqueBasePanel - klass = MonUniqueBasePanel - - # cas particulier des fonctions - genea = self.item.get_genealogie() - if "VALE" in genea or "VALE_C" in genea: - if "DEFI_FONCTION" in genea : - from monFonctionPanel import MonFonctionPanel - klass = MonFonctionPanel - - if not klass: - return None - return klass( self, self.editor ) - - - -class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): - itemNode=Node - - def init(self) : - self.expandable = 0 - - - #----------------------------------------------- - # - # Methodes liees aux informations sur le Panel - # ou au mot-clef simple - # - #----------------------------------------------- - # is_list - # get_into a priori inutile --> commentee - # has_into - # wait_into a priori inutile --> commentee - # GetMinMax - # GetMultiplicite - # GetIntervalle - # GetListeValeurs - # get_liste_possible - - def is_list(self): - """ - Cette méthode indique si le mot cle simple attend une liste (valeur de retour 1) - ou s'il n'en attend pas (valeur de retour 0) - - Deux cas principaux peuvent se presenter : avec validateurs ou bien sans. - Dans le cas sans validateur, l'information est donnée par l'attribut max - de la definition du mot cle. - Dans le cas avec validateur, il faut combiner l'information précédente avec - celle issue de l'appel de la méthode is_list sur le validateur.On utilisera - l'operateur ET pour effectuer cette combinaison (AndVal). - """ - is_a_list=0 - min,max = self.GetMinMax() - assert (min <= max) - if max > 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 - # on retournera 0 (n'attend pas de liste) - if self.definition.validators : - is_a_list= self.definition.validators.is_list() * is_a_list - return is_a_list - - #def get_into(self,liste_courante=None): - # """ - # Cette méthode retourne la liste de choix proposée par le mot cle. Si le mot cle ne propose - # pas de liste de choix, la méthode retourne None. - # L'argument d'entrée liste_courante, s'il est différent de None, donne la liste des choix déja - # effectués par l'utilisateur. Dans ce cas, la méthode get_into doit calculer la liste des choix - # en en tenant compte. - # Cette méthode part du principe que la relation entre into du mot clé et les validateurs est - # une relation de type ET (AndVal). - # """ - # if not self.object.definition.validators : - # return self.object.definition.into - # else: - # return self.object.definition.validators.get_into(liste_courante,self.definition.into) - - def has_into(self): - """ - Cette méthode indique si le mot cle simple propose un choix (valeur de retour 1) - ou s'il n'en propose pas (valeur de retour 0) - - 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é - 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 - elif self.definition.validators : - has_an_into= self.definition.validators.has_into() - return has_an_into - - - def GetMinMax(self): - """ Retourne les valeurs min et max de la définition de object """ - return self.object.get_min_max() - - def GetMultiplicite(self): - """ A préciser. - Retourne la multiplicité des valeurs affectées a l'objet - représenté par l'item. Pour le moment retourne invariablement 1. - """ - return 1 - - def GetIntervalle(self): - """ - Retourne le domaine de valeur attendu par l'objet représenté - par l'item. - """ - return self.object.getintervalle() - - def GetListeValeurs(self) : - """ Retourne la liste des valeurs de object """ - valeurs=self.object.get_liste_valeurs() - try : - if "R" in self.object.definition.type: - clef=self.object.GetNomConcept() - if self.appli.dict_reels.has_key(clef): - if type(valeurs) == types.TupleType: - valeurs_reelles=[] - for val in valeurs : - if self.appli.dict_reels[clef].has_key(val) : - valeurs_reelles.append(self.appli.dict_reels[clef][val]) - else : - valeurs_reelles.append(val) - else : - if self.appli.dict_reels[clef].has_key(valeurs): - valeurs_reelles=self.appli.dict_reels[clef][valeurs] - valeurs=valeurs_reelles - except : - pass - return valeurs - - def get_liste_possible(self,listeActuelle=[]): - if hasattr(self.definition.validators,'into'): - valeurspossibles = self.definition.validators.into - else: - valeurspossibles = self.get_definition().into - - #On ne garde que les items valides - listevalideitem=[] - if type(valeurspossibles) in (types.ListType,types.TupleType) : - pass - else : - valeurspossibles=(valeurspossibles,) - for item in valeurspossibles: - encorevalide=self.valide_item(item) - if encorevalide : - listevalideitem.append(item) - - #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) - 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)) - if ('grma' in repr(typ)) and type_param=='str': - liste_param.append(param.nom) - return liste_param - - #-------------------------------------------------- - # - # Methodes liees a la validite des valeurs saisies - # - #--------------------------------------------------- - # valide_item - # valide_liste_partielle - # valide_liste_complete - # info_erreur_item - # info_erreur_liste - # IsInIntervalle - # isvalid - - def valide_item(self,item): - """ - La validation est réalisée directement par l'objet - """ - return self.object.valide_item(item) - - def valide_liste_partielle(self,item,listecourante): - #On protege la liste en entree en la copiant - valeur=listecourante[:] - valeur.append(item) - 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 : - commentaire=self.definition.validators.info_erreur_item() - return commentaire - - def aide(self) : - commentaire="" - if self.definition.validators : - commentaire=self.definition.validators.aide() - return commentaire - - def info_erreur_liste(self) : - commentaire="" - if self.definition.validators : - commentaire=self.definition.validators.info_erreur_liste() - return commentaire - - def IsInIntervalle(self,valeur): - """ - Retourne 1 si la valeur est dans l'intervalle permis par - l'objet représenté par l'item. - """ - return self.valide_item(valeur) - - def isvalid(self): - valide=self.object.isvalid() - return valide - - #-------------------------------------------------- - # - # Autres ... - # - #--------------------------------------------------- - # GetIconName - # GetText - # set_valeur_co - # get_sd_avant_du_bon_type - # delete_valeur_co - - - def GetIconName(self): - if self.isvalid(): - return "ast-green-ball" - elif self.object.isoblig(): - return "ast-red-ball" - else: - return "ast-yel-ball" - - def GetText(self): - """ - Classe SIMPTreeItem - Retourne le texte a afficher dans l'arbre représentant la valeur de l'objet - pointé par self - """ - text= self.object.GetText() - if text == None : text="" - return text - - - def set_valeur_co(self,nom_co): - """ - Affecte au MCS pointé par self l'objet de type CO et de nom nom_co - """ - ret = self.object.set_valeur_co(nom_co) - #print "set_valeur_co",ret - return ret - - def get_sd_avant_du_bon_type(self): - """ - Retourne la liste des noms des SD présentes avant l'étape qui contient - le MCS pointé par self et du type requis par ce MCS - """ - a=self.object.etape.parent.get_sd_avant_du_bon_type(self.object.etape,self.object.definition.type) - return a - - def get_sd_avant_du_bon_type_pour_type_de_base(self): - a=self.object.jdc.get_sd_avant_du_bon_type_pour_type_de_base(self.object.etape,"LASSD") - return a - - - - - def delete_valeur_co(self,valeur=None): - """ - Supprime la valeur du mot cle (de type CO) - il faut propager la destruction aux autres etapes - """ - if not valeur : valeur=self.object.valeur - # XXX faut il vraiment appeler del_sdprod ??? - #self.object.etape.parent.del_sdprod(valeur) - self.object.etape.parent.delete_concept(valeur) - - #----------------------------------------------- - # - # Methodes liees au type de l objet attendu - # - #----------------------------------------------- - # wait_co - # wait_geom - # wait_complex - # wait_reel - # wait_shell - # wait_assd - # GetType - - def wait_co(self): - """ - Méthode booléenne qui retourne 1 si l'objet pointé par self - attend un objet de type ASSD qui n'existe pas encore (type CO()), - 0 sinon - """ - return self.object.wait_co() - - def wait_geom(self): - """ - Méthode booléenne qui retourne 1 si l'objet pointé par self - attend un objet GEOM, 0 sinon - """ - return self.object.wait_geom() - - def wait_complex(self): - """ Méthode booléenne qui retourne 1 si l'objet pointé par self - attend un complexe, 0 sinon """ - if 'C' in self.object.definition.type: - return 1 - else: - return 0 - - def wait_reel(self): - """ Méthode booléenne qui retourne 1 si l'objet pointé par self - attend un réel, 0 sinon """ - if 'R' in self.object.definition.type: - return 1 - else: - return 0 - - def wait_shell(self): - """ Méthode booléenne qui retourne 1 si l'objet pointé par self - attend un shell, 0 sinon """ - if 'shell' in self.object.definition.type: - return 1 - else: - return 0 - - def wait_assd(self): - """Méthode booléenne qui retourne 1 si l'objet pointé par self - attend un objet de type ASSD ou dérivé, 0 sinon """ - return self.object.wait_assd() - - def wait_assd_or_type_base(self) : - boo=0 - if len(self.object.definition.type) > 1 : - if self.wait_reel() : - boo = 1 - if 'I' in self.object.definition.type : - boo = 1 - return boo - - - def GetType(self): - """ - Retourne le type de valeur attendu par l'objet représenté par l'item. - """ - return self.object.get_type() - - #----------------------------------------------------- - # - # Methodes liees a l evaluation de la valeur saisie - # - #----------------------------------------------------- - # eval_valeur - # eval_valeur_item - # is_CO - # traite_reel - - def eval_valeur(self,valeur): - """ Lance l'interprétation de 'valeur' (chaine de caractéres) comme valeur de self : - - retourne l'objet associé si on a pu interpréter (entier, réel, ASSD,...) - - retourne 'valeur' (chaine de caractéres) sinon - """ - newvaleur=self.eval_val(valeur) - return newvaleur,1 - - def eval_valeur_BAK(self,valeur): - """ Lance l'interprétation de 'valeur' (chaine de caractéres) comme valeur - de l'objet pointé par self : - - retourne l'objet associé si on a pu interpréter (entier, réel, ASSD,...) - - retourne 'valeur' (chaine de caractéres) sinon - - retourne None en cas d invalidite - - retourne invalide si 1 des objets du tuple l est - """ - validite=1 - if type(valeur) in (types.ListType,types.TupleType) : - valeurretour=[] - for item in valeur : - newvaleur,validiteitem=self.eval_valeur_item(item) - valeurretour.append(newvaleur) - if validiteitem == 0: - validite=0 - else : - valeurretour,validite= self.eval_valeur_item(valeur) - if validite == 0 : - 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 - 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 - validite=1 - if self.wait_reel(): - valeurinter = self.traite_reel(valeur) - if valeurinter != None : - valeurretour,validite= self.object.eval_valeur(valeurinter) - else: - valeurretour,validite= self.object.eval_valeur(valeur) - elif self.wait_geom(): - valeurretour,validite = valeur,1 - else : - valeurretour,validite= self.object.eval_valeur(valeur) - #print "eval_valeur_item",valeurretour,validite - - if validite == 0: - if type(valeur) == types.StringType and self.object.wait_TXM(): - essai_valeur="'" + valeur + "'" - valeurretour,validite= self.object.eval_valeur(essai_valeur) - - if hasattr(valeurretour,'__class__'): - #if valeurretour.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'): - if valeurretour.__class__.__name__ in ('PARAMETRE',): - validite=1 - - #if self.wait_co(): - # CCAR : il ne faut pas essayer de creer un concept - # il faut simplement en chercher un existant ce qui a du etre fait par self.object.eval_valeur(valeur) - #try: - #valeurretour=Accas.CO(valeur) - #except: - #valeurretour=None - #validite=0 - # on est dans le cas ou on a évalué et ou on n'aurait pas du - if self.object.wait_TXM() : - if type(valeurretour) != types.StringType: - valeurretour=str(valeur) - validite=1 - return valeurretour,validite - - def is_CO(self,valeur=None): - """ - Indique si valeur est un concept produit de la macro - Cette méthode n'a de sens que pour un MCSIMP d'une MACRO - Si valeur vaut None on teste la valeur du mot cle - """ - # Pour savoir si un concept est un nouveau concept de macro - # on regarde s'il est présent dans l'attribut sdprods de l'étape - # ou si son nom de classe est CO. - # Il faut faire les 2 tests car une macro non valide peut etre - # dans un etat pas tres catholique avec des CO pas encore types - # et donc pas dans sdprods (resultat d'une exception dans type_sdprod) - if not valeur:valeur=self.object.valeur - if valeur in self.object.etape.sdprods:return 1 - if type(valeur) is not types.InstanceType:return 0 - if valeur.__class__.__name__ == 'CO':return 1 - return 0 - - def is_param(self,valeur) : - for param in self.jdc.params: - if (repr(param) == valeur): - return 1 - return 0 - - def traite_reel(self,valeur): - """ - Cette fonction a pour but de rajouter le '.' en fin de chaine pour un réel - ou de détecter si on fait référence a un concept produit par DEFI_VALEUR - ou un EVAL ... - """ - valeur = string.strip(valeur) - liste_reels = self.get_sd_avant_du_bon_type() - if valeur in liste_reels: - return valeur - if len(valeur) >= 3 : - if valeur[0:4] == 'EVAL' : - # on a trouvé un EVAL --> on retourne directement la valeur - return valeur - if string.find(valeur,'.') == -1 : - # aucun '.' n'a été trouvé dans valeur --> on en rajoute un a la fin - if (self.is_param(valeur)): - return valeur - else: - if string.find(valeur,'e') != -1: - # Notation scientifique ? - try : - r=eval(valeur) - return valeur - except : - return None - else : - return valeur+'.' - else: - return valeur - - -import Accas -treeitem = SIMPTreeItem -objet = Accas.MCSIMP - diff --git a/InterfaceQT/editor.py b/InterfaceQT/editor.py deleted file mode 100644 index f102684e..00000000 --- a/InterfaceQT/editor.py +++ /dev/null @@ -1,742 +0,0 @@ -#i -*- coding: iso-8859-1 -*- - -# Modules Python -import types,sys,os -import traceback -from qt import * - -# Modules Eficas - -import convert,generator -from Editeur import session -from Editeur import comploader -from Editeur import Objecttreeitem -import panelsQT -import browser -import readercata - -import prefs -import qtCommun - -VERSION_EFICAS = "EFICAS v1.17" - - -# -------------------------- # -# # -class JDCEditor(QSplitter): -# # -# -------------------------- # - """ - Editeur de jdc - """ - - def __init__(self,fn = None, jdc = None ,parent=None, editor = None, units = None, include=0): - #-------------------------------------------------------------------------------------------# - - QSplitter.__init__(self, parent,'') - - VERSION_CODE = session.d_env.cata - self.salome=0 - self.parent = parent - if parent != None : - self.salome = self.parent.salome - self.appliEficas = self.parent.appliEficas - self.top = None - self.code = prefs.code - self.version_code = VERSION_CODE - self.titre=VERSION_EFICAS + ' pour '+ self.code - self.dict_reels={} - self.liste_simp_reel=[] - self.format_fichier='python' # par defaut - self.jdc_openturn_xml="" - self.jdc_openturn_std="" - self.ihm="QT" - - import configuration - self.CONFIGURATION = self.appliEficas.CONFIGURATION - self.CONFIGStyle = self.appliEficas.CONFIGStyle - self.test=0 - self.sb = None - if hasattr(qApp.mainWidget(),"statusBar"): - self.sb = qApp.mainWidget().statusBar() - - self.vm = parent #viewManager - self.fileName = fn - self.fileInfo = None - self.lastModified = 0 - self.jdc = jdc - - self.fichier=None - self.panel_courant=None - self.node_selected = None - self.modified = False - self.isReadOnly = False - - if not hasattr( readercata, 'reader' ) : - readercata.reader = readercata.READERCATA( self, self ) - self.readercata = readercata.reader - - #------- construction du jdc -------------- - - jdc_item = None - - nouveau=0 - if self.fileName is not None: # fichier jdc fourni - self.fileInfo = QFileInfo(self.fileName) - self.fileInfo.setCaching(0) - if editor is None: - self.jdc = self.readFile(self.fileName) - if units is not None: - self.jdc.recorded_units=units - self.jdc.old_recorded_units=units - else: - self.top = editor.top - self.code = editor.code - self.version_code = editor.version_code - self.titre = editor.titre - self.dict_reels = editor.dict_reels - self.liste_simp_reel= editor.liste_simp_reel - self.format_fichier = editor.format_fichier - self.CONFIGURATION = editor.CONFIGURATION - self.CONFIGStyle = editor.CONFIGStyle - self.jdc = editor.jdc - - self.lastModified = self.fileInfo.lastModified() - elif editor is not None: - self.jdc = editor.jdc - else: - if not self.jdc: # nouveau jdc - if not include : - self.jdc = self._newJDC(units=units) - else : - self.jdc = self._newJDCInclude(units=units) - nouveau=1 - - if self.jdc: - self.jdc.appli = self - txt_exception = None - if not jdc: - self.jdc.analyse() - txt_exception = self.jdc.cr.get_mess_exception() - if txt_exception: - self.jdc = None - qApp.restoreOverrideCursor() - self.affiche_infos("Erreur fatale au chargement de %s" %fn) - QMessageBox.critical( self, "Erreur fatale au chargement d'un fichier", txt_exception) - else: - comploader.charger_composants("QT") - jdc_item=Objecttreeitem.make_objecttreeitem( self, "nom", self.jdc ) - - if (not self.jdc.isvalid()) and (not nouveau) : - self.viewJdcRapport() - - #------- config widget -------------- - - if jdc_item: - self.tree = browser.JDCTree( jdc_item, self ) - self.connect(self.tree,SIGNAL('selectionChanged(QListViewItem *)'),self.updatePanel) - - sh = self.sizeHint() - if sh.width() < 300: - sh.setWidth(300) - if sh.height() < 300: - sh.setHeight(300) - self.resize(sh) - - # Make sure tabbing through a QWorkspace works. - self.setFocusPolicy(QWidget.StrongFocus) - self._updateReadOnly(1) - - # Set the editors size if it is too big for the parent. - if parent is not None: - req = self.size() - bnd = req.boundedTo(parent.size()) - - if bnd.width() < req.width() or bnd.height() < req.height(): - self.resize(bnd) - - self.panel = QWidget(self) - #self.connect(self, SIGNAL('modificationChanged(bool)'), self.handleModificationChanged) - - - #-------------------------------------------------------------------# - def _updateReadOnly(self, bForce=1): - #-------------------------------------------------------------------# - """ - Private method to update the readOnly information for this editor. - - If bForce is True, then updates everything regardless if - the attributes have actually changed, such as during - initialization time. A signal is emitted after the - caption change. - - @param bForce 1 to force change, 0 to only update and emit - signal if there was an attribute change. - """ - - if self.fileName is None: - return - readOnly = not QFileInfo(self.fileName).isWritable() and 1 or 0 - if not bForce and (readOnly == self.isReadOnly): - return - cap = self.fileName - if readOnly: - cap = "%s (ro)" % unicode(cap) - self.isReadOnly = readOnly - self.setCaption(cap) - self.emit(PYSIGNAL('captionChanged'), (cap, self)) - - #--------------------------------# - def _newJDC( self ,units = None): - #--------------------------------# - """ - Initialise un nouveau JDC vierge - """ - CONTEXT.unset_current_step() - jdc=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 - ) - if units is not None: - jdc.recorded_units=units - jdc.old_recorded_units=units - jdc.analyse() - return jdc - - #--------------------------------# - def _newJDCInclude( self ,units = None): - #--------------------------------# - """ - Initialise un nouveau JDC vierge - """ - import Extensions.jdc_include - JdC_aux=Extensions.jdc_include.JdC_include - CONTEXT.unset_current_step() - - jaux=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, - ) - jaux.analyse() - - J=JdC_aux( procedure="", - appli=self, - cata=self.readercata.cata, - cata_ord_dico=self.readercata.cata_ordonne_dico, - jdc_pere=jaux, - rep_mat=self.CONFIGURATION.rep_mat, - ) - J.analyse() - if units is not None: - J.recorded_units=units - J.old_recorded_units=units - return J - - - #-----------------------# - def get_source(self,file): - #-----------------------# - import convert - format=self.format_fichier - - # Il faut convertir le contenu du fichier en fonction du format - if convert.plugins.has_key(format): - # Le convertisseur existe on l'utilise - p=convert.plugins[format]() - p.readfile(file) - text=p.convert('execnoparseur') - if not p.cr.estvide(): - self.affiche_infos("Erreur a la conversion") - return text - else: - # Il n'existe pas c'est une erreur - self.affiche_infos("Type de fichier non reconnu") - QMessageBox.critical( self, "Type de fichier non reconnu","EFICAS ne sait pas ouvrir ce type de fichier") - return None - - #---------------------------------------------# - def get_file(self,unite=None,fic_origine = ''): - #---------------------------------------------# - ulfile = None - jdcText = "" - - titre = "" - - if unite : - titre = "Choix unite %d " %unite - texte = "Le fichier %s contient une commande INCLUDE \n" % fic_origine - texte = texte+'Donnez le nom du fichier correspondant à l unité logique %d' % unite - labeltexte = 'Fichier pour unite %d :' % unite - else: - titre = "Choix d'un fichier de poursuite" - texte = "Le fichier %s contient une commande %s\n" %(fic_origine,'POURSUITE') - texte = texte+'Donnez le nom du fichier dont vous voulez faire une poursuite' - - QMessageBox.information( self, titre,texte) - fn = QFileDialog.getOpenFileName( self.CONFIGURATION.savedir,"", self, titre, "" ) - - if fn.isNull(): - return - - ulfile = os.path.abspath(unicode(fn)) - # On utilise le convertisseur défini par format_fichier - source=self.get_source(ulfile) - if source: - # On a réussi à convertir le fichier self.ulfile - jdcText = source - else: - # Une erreur a été rencontrée - jdcText = '' - return ulfile, jdcText - - - #-----------------------# - def readFile(self, fn): - #-----------------------# - """ - Public slot to read the text from a file. - - @param fn filename to read from (string or QString) - """ - fn = unicode(fn) - - qApp.setOverrideCursor(Qt.waitCursor) - - # ------------------------------------------------------------------------------------ - # charge le JDC - # ------------------------------------------------------------------------------------ - - jdcName=os.path.basename(fn) - # Il faut convertir le contenu du fichier en fonction du format - if convert.plugins.has_key( self.format_fichier ): - # Le convertisseur existe on l'utilise - appli = self # CS_pbruno compatiblity parseur_python: self.appli.liste_simp_reel, self.appli.dict_reels - p=convert.plugins[self.format_fichier]() - p.readfile(fn) - text=p.convert('exec',appli) - if not p.cr.estvide(): - self.affiche_infos("Erreur à la conversion") - - CONTEXT.unset_current_step() - ## os.chdir(self.initialdir) - jdc=self.readercata.cata[0].JdC(procedure=text, - appli=self, - cata=self.readercata.cata, - cata_ord_dico=self.readercata.cata_ordonne_dico, - nom=jdcName, - rep_mat=self.CONFIGURATION.rep_mat - ) - # ---------------------------------------------------- - # charge le JDC fin - # ---------------------------------------------------- - self.modified = False - - qApp.restoreOverrideCursor() - if self.fileInfo!= None : - self.lastModified = self.fileInfo.lastModified() - else : - self.lastModified = 1 - return jdc - - #----------------------------------------------# - def _viewText(self, txt, caption = "FILE_VIEWER"): - #----------------------------------------------# - w = qtCommun.ViewText( self.parent ) - w.setCaption( caption ) - w.setText(txt) - w.show() - - #-----------------------# - def viewJdcSource(self): - #-----------------------# - format = self.format_fichier - f=open(self.fileName,'r') - texteSource=f.read() - f.close() - self._viewText(texteSource, "JDC_SOURCE") - - #-----------------------# - def viewJdcPy(self): - #-----------------------# - format = self.format_fichier - strSource = str( self.get_text_JDC(format) ) - self._viewText(strSource, "JDC_RESULTAT") - - #-----------------------# - def viewJdcRapport(self): - #-----------------------# - strRapport = str( self.jdc.report() ) - self._viewText(strRapport, "JDC_RAPPORT") - - #-----------------------# - def handleRenamed(self, fn): - #-----------------------# - """ - Public slot to handle the editorRenamed signal. - - @param fn filename to be set for the editor (QString or string). - """ - self.fileName = unicode(fn) - self.setCaption(self.fileName) - - if self.fileInfo is None: - self.fileInfo = QFileInfo(self.fileName) - self.fileInfo.setCaching(0) - - self.lastModified = self.fileInfo.lastModified() - self.vm.setEditorName(self, self.fileName) - self._updateReadOnly(1) - - #-----------------------# - def handleNewView(self): - #-----------------------# - """ - Private slot to create a new view to an open document. - """ - self.vm.newEditorView(self.fileName, self)#, self.isPythonFile) - - #------------------------------------# - def handleModificationChanged(self, m): - #------------------------------------# - """ - Private slot to handle the modificationChanged signal. - - It emits the signal modificationStatusChanged with parameters - m and self. - - @param m modification status - """ - if not m and self.fileInfo is not None: - self.lastModified = self.fileInfo.lastModified() - self.emit(PYSIGNAL('modificationStatusChanged'), (m, self)) - - #------------------------# - def hasSyntaxErrors(self): - #------------------------# - return False #CS_pbruno todo - - #----------------# - def closeIt(self): - #----------------# - """ - Public method called by the viewmanager to finally get rid of us. - """ - - if self.jdc: - self.jdc.supprime() - self.close() - - - #------------------------------# - def affiche_infos(self,message): - #------------------------------# - if self.salome : - if not hasattr(self.appliEficas,'MessageLabel') : - self.appliEficas.leLayout=QDockWindow(self.appliEficas) - self.appliEficas.MessageLabel = QLabel(self.appliEficas.leLayout,"MessageLabel") - self.appliEficas.MessageLabel.setAlignment(Qt.AlignBottom) - self.appliEficas.leLayout.setWidget(self.appliEficas.MessageLabel) - self.appliEficas.moveDockWindow(self.appliEficas.leLayout,Qt.DockBottom) - self.appliEficas.MessageLabel.setText(message) - self.appliEficas.MessageLabel.show() - self.appliEficas.leLayout.show() - if self.sb: - self.sb.message(message)#,2000) - - #------------------------------# - def updatePanel(self, jdcNode): - #------------------------------# - """ - Appele a chaque changement de noeud - """ - self.node_selected = jdcNode - if self.panel: - self.panel.close() - del self.panel - self.panel = None - - if jdcNode.item.isactif(): - self.panel = jdcNode.getPanel() - #print self.panel.__class__ - else: - self.panel = panelsQT.PanelInactif(self.node_selected,self) - - if not self.panel: - self.panel = panelsQT.NoPanel(self) - - self.panel.show() - - - #-------------------# - def init_modif(self): - #-------------------# - """ - Met l'attribut modified a 'o' : utilise par Eficas pour savoir - si un JDC doit etre sauvegarde avant destruction ou non - """ - self.modified = True - self.emit(PYSIGNAL('modificationStatusChanged'), (True, self)) - - #-------------------# - def stop_modif(self): - #-------------------# - """ - Met l'attribut modified à 'n' : utilisé par Eficas pour savoir - si un JDC doit etre sauvegardé avant destruction ou non - """ - self.modified = False - self.emit(PYSIGNAL('modificationStatusChanged'), (False, self)) - - - #-------------------# - def cut(self): - #-------------------# - """ - Stocke dans Eficas.noeud_a_editer le noeud à couper - """ - if not self.node_selected.item.iscopiable(): - QMessageBox.information( self, "Copie impossible", - "Cette version d'EFICAS ne permet que la copie d'objets de type 'Commande' ou mot-clé facteur") - return - self.parent.edit="couper" - self.parent.noeud_a_editer = self.node_selected - - #-------------------# - def copy(self): - #-------------------# - """ - Stocke dans Eficas.noeud_a_editer le noeud a copier - """ - if not self.node_selected.item.iscopiable(): - QMessageBox.information( self, "Copie impossible", - "La copie d'un tel objet n'est pas permise") - return - self.parent.edit="copier" - self.parent.noeud_a_editer = self.node_selected - - #-------------------# - def paste(self): - #-------------------# - """ - Lance la copie de l'objet place dans self.parent.noeud_a_editer - Ne permet que la copie d'objets de type Commande ou MCF - """ - try: - child=self.parent.noeud_a_editer.doPaste(self.node_selected) - except: - traceback.print_exc() - QMessageBox.information( self, "Copie impossible", - "L'action de coller apres un tel objet n'est pas permise") - return - - if child == 0: - if self.message != '': - QMessageBox.critical( self, "Copie refusee", self.message) - self.message = '' - self.affiche_infos("Copie refusée") - return - - # il faut declarer le JDCDisplay_courant modifie - self.init_modif() - # suppression eventuelle du noeud selectionne - # si possible on renomme l objet comme le noeud couper - - if self.parent.edit == "couper": - #nom = self.parent.noeud_a_editer.item.object.sd.nom - item=self.parent.noeud_a_editer.item - self.parent.noeud_a_editer.delete() - child.item.update(item) - #test,mess = child.item.nomme_sd(nom) - child.select() - - # on rend la copie a nouveau possible en liberant le flag edit - self.parent.edit="copier" - - #---------------------# - def getFileName(self): - #---------------------# - return self.fileName - - #---------------------------# - def writeFile(self, fn, txt = None): - #------------------------------# - """ - Public slot to write the text to a file. - - @param fn filename to write to (string or QString) - @return flag indicating success - """ - - fn = unicode(fn) - - if txt == None : - txt = self.get_text_JDC(self.format_fichier) - eol = '\n' - if len(txt) >= len(eol): - if txt[-len(eol):] != eol: - txt += eol - else: - txt += eol - - try: - f = open(fn, 'wb') - f.write(txt) - f.close() - return 1 - except IOError, why: - QMessageBox.critical(self, self.trUtf8('Save File'), - self.trUtf8('The file %1 could not be saved.
Reason: %2') - .arg(unicode(fn)).arg(str(why))) - return 0 - - #------------------------------------ - def writeFilesOpenturns(self,fn) : - #------------------------------------ - base=fn[:fn.rfind(".")] - fileXML=base + '.xml' - fileSTD=base + '_std.py' - self.writeFile(fileXML,self.jdc_openturn_xml) - self.writeFile(fileSTD,self.jdc_openturn_std) - - - #-----------------------------# - def get_text_JDC(self,format): - #-----------------------------# - if generator.plugins.has_key(format): - # Le generateur existe on l'utilise - g=generator.plugins[format]() - jdc_formate=g.gener(self.jdc,format='beautifie') - if format == "openturns" : - self.jdc_openturn_xml=g.getOpenturnsXML() - self.jdc_openturn_std=g.getOpenturnsSTD() - if not g.cr.estvide(): - self.affiche_infos("Erreur à la generation") - QMessageBox.critical( self, "Erreur a la generation","EFICAS ne sait pas convertir ce JDC") - return - else: - return jdc_formate - else: - # Il n'existe pas c'est une erreur - self.affiche_infos("Format %s non reconnu" % format) - QMessageBox.critical( self, "Format %s non reconnu" % format,"EFICAS ne sait pas convertir le JDC en format %s "% format) - return - - - #-------------------------------------------# - def saveFile(self, saveas = 0, path = None): - #-------------------------------------------# - """ - Public slot to save the text to a file. - - @param saveas flag indicating a 'save as' action - @param path directory to save the file in (string or QString) - @return tuple of two values (boolean, string) giving a success indicator and - the name of the saved file - """ - self.modified = True #CS_pbruno test - - if not saveas and not self.modified:#self.isModified(): - return (0, None) # do nothing if text wasn't changed - - newName = None - if saveas or self.fileName is None: - if path is None and self.fileName is not None: - path = os.path.dirname(unicode(self.fileName)) - else : - path=self.CONFIGURATION.savedir - fn = QFileDialog.getSaveFileName(path, - self.trUtf8("JDC (*.comm);;" "All Files (*)"),self, None, - self.trUtf8("Save File"), '', 0) - - if not fn.isNull(): - ext = QFileInfo(fn).extension() - if ext.isEmpty(): - ex = ".comm" - fn.append(ex) - if QFileInfo(fn).exists(): - abort = QMessageBox.warning( - self, - self.trUtf8("Sauvegarde Fichier"), - self.trUtf8("Le fichier %1 existe deja.").arg(fn), - self.trUtf8("&Remplacer"), - self.trUtf8("&Abandonner") ) - print abort - if abort: - return (0, None) - fn = unicode(QDir.convertSeparators(fn)) - newName = fn - else: - return (0, None) - else: - fn = self.fileName - - if self.writeFile(fn): - self.fileName = fn - self.modified = False - self.setCaption(self.fileName) - if self.fileInfo is None or saveas: - self.fileInfo = QFileInfo(self.fileName) - self.fileInfo.setCaching(0) - self.emit(PYSIGNAL('editorRenamed'), (self.fileName,)) - self.lastModified = self.fileInfo.lastModified() - if newName is not None: - self.vm.addToRecentList(newName) - self.emit(PYSIGNAL('editorSaved'), (self.fileName,)) - self.stop_modif() - if self.code == "OPENTURNS" : - self.writeFilesOpenturns(fn) - if self.salome : - self.parent.appli.addJdcInSalome( self.fileName) - if self.code == 'ASTER': - self.parent.appli.createOrUpdateMesh(self) - #PN ; TODO - - - return (1, self.fileName) - else: - return (0, None) - - #---------------------------------# - def saveFileAs(self, path = None): - #---------------------------------# - """ - Public slot to save a file with a new name. - - @param path directory to save the file in (string or QString) - @return tuple of two values (boolean, string) giving a success indicator and - the name of the saved file - """ - return self.saveFile(1, path) - - -if __name__=='__main__': - if hasattr(prefs,'encoding'): - # Hack pour changer le codage par defaut des strings - import sys - reload(sys) - sys.setdefaultencoding(prefs.encoding) - del sys.setdefaultencoding - # Fin hack - - #CS_pbruno note: fait implicitement des trucs ces imports (grr) - import styles - import import_code - import session - - # Analyse des arguments de la ligne de commande - options=session.parse(sys.argv) - code=options.code - - app = QApplication(sys.argv) - mw = JDCEditor('azAster.comm') - app.setMainWidget(mw) - app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()")) - mw.show() - - res = app.exec_loop() - sys.exit(res) - diff --git a/InterfaceQT/eficas_go.py b/InterfaceQT/eficas_go.py deleted file mode 100644 index daaf8bf7..00000000 --- a/InterfaceQT/eficas_go.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- 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 permet de lancer l'application EFICAS en affichant - un ecran Splash pour faire patienter l'utilisateur -""" -# Modules Python -import sys -from qt import * - -# Modules Eficas -import prefs -if hasattr(prefs,'encoding'): - # Hack pour changer le codage par defaut des strings - import sys - reload(sys) - sys.setdefaultencoding(prefs.encoding) - del sys.setdefaultencoding - # Fin hack - -from Editeur import import_code -from Editeur import session - -def lance_eficas(code=None,fichier=None): - """ - Lance l'appli EFICAS - """ - # Analyse des arguments de la ligne de commande - if code !=None : prefs.code=code - import qtEficas - options=session.parse(sys.argv) - code=options.code - - app = QApplication(sys.argv) - mw = qtEficas.Appli(code=code) - app.setMainWidget(mw) - app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()")) - mw.show() - mw.ouvreFichiers() - res = app.exec_loop() - sys.exit(res) - - diff --git a/InterfaceQT/gereTraduction.py b/InterfaceQT/gereTraduction.py deleted file mode 100644 index 8756200f..00000000 --- a/InterfaceQT/gereTraduction.py +++ /dev/null @@ -1,51 +0,0 @@ -from qt import * -import os - - -def traduction(directPath,editor,version): - if version == "V7V8" : - from Traducteur import traduitV7V8 - suffixe="v8.comm" - if version == "V8V9" : - from Traducteur import traduitV8V9 - suffixe="v9.comm" - fn = QFileDialog.getOpenFileName( QString(directPath) , "") - - FichieraTraduire=str(fn) - if (FichieraTraduire == "" or FichieraTraduire == () ) : return - i=FichieraTraduire.rfind(".") - Feuille=FichieraTraduire[0:i] - FichierTraduit=Feuille+suffixe - - i=Feuille.rfind("/") - directLog=Feuille[0:i] - log=directLog+"/convert.log" - os.system("rm -rf "+log) - os.system("rm -rf "+FichierTraduit) - - qApp.setOverrideCursor(QCursor(Qt.WaitCursor)) - if version == "V7V8" : traduitV7V8.traduc(FichieraTraduire,FichierTraduit,log) - if version == "V8V9" : traduitV8V9.traduc(FichieraTraduire,FichierTraduit,log) - qApp.setOverrideCursor(QCursor(Qt.ArrowCursor)) - - Entete="Fichier Traduit : "+FichierTraduit +"\n\n" - if os.stat(log)[6] != 0L : - f=open(log) - texte= f.read() - f.close() - else : - texte = Entete - commande="diff "+FichieraTraduire+" "+FichierTraduit+" >/dev/null" - try : - if os.system(commande) == 0 : - texte = texte + "Pas de difference entre le fichier origine et le fichier traduit" - except : - pass - - from desVisu import DVisu - titre = "conversion de "+ FichieraTraduire - monVisu=DVisu(parent=editor,fl=Qt.WType_Dialog) - monVisu.setCaption(titre) - monVisu.TB.setText(texte) - monVisu.show() - diff --git a/InterfaceQT/monChoixCata.py b/InterfaceQT/monChoixCata.py deleted file mode 100644 index f21aaa14..00000000 --- a/InterfaceQT/monChoixCata.py +++ /dev/null @@ -1,57 +0,0 @@ -# -*- 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 -# Modules Eficas - -from desChoixCata import DChoixCata -from qt import * - - -# Import des panels - -class MonChoixCata(DChoixCata): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,listeCata,readercata, parent = None,name = None,fl = 0): - DChoixCata.__init__(self,parent,name,fl) - self.listeCata=listeCata - self.readercata=readercata - for cata in self.listeCata : - self.CBChoixCata.insertItem(cata,0) - lab = QString(repr(len(listeCata))) - lab += QString(" versions du catalogue sont disponibles") - self.TLNb.setText(lab) - self.readercata.version_cata=self.CBChoixCata.currentText() - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def CataChoisi(self): - self.readercata.version_cata=self.CBChoixCata.currentText() - - def BOkPressed(self): - QDialog.accept(self) - - def BCancelPressed(self): - QDialog.reject(self) diff --git a/InterfaceQT/monCommandePanel.py b/InterfaceQT/monCommandePanel.py deleted file mode 100644 index 16962da8..00000000 --- a/InterfaceQT/monCommandePanel.py +++ /dev/null @@ -1,72 +0,0 @@ -# -*- 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 -# Modules Eficas - -from desCommande import DComm -from qtCommun import QTPanel -from qtCommun import QTPanelTBW1 -from qtCommun import QTPanelTBW2 -from qtCommun import QTPanelTBW3 -from qt import * - - -# Import des panels - -class MonCommandePanel(DComm,QTPanelTBW1,QTPanelTBW2,QTPanelTBW3): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - DComm.__init__(self,parent,name,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW1.__init__(self,node,parent) - QTPanelTBW2.__init__(self,node,parent) - QTPanelTBW3.__init__(self,node,parent) - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def BOkPressed(self): - QTPanel.BOkPressed(self) - - def ViewDoc(self): - QTPanel.ViewDoc(self) - - def BNextPressed(self): - QTPanelTBW2.BNextPressed(self) - - def BuildTabCommand(self): - QTPanelTBW2.BuildLBNouvCommande(self) - - def LEFiltreTextChanged(self): - QTPanelTBW2.LEFiltreTextChanged(self) - - def LEfiltreReturnPressed(self): - QTPanelTBW2.LEfiltreReturnPressed(self) - - def LBNouvCommandeClicked(self): - QTPanelTBW2.LBNouvCommandeClicked(self) - - def LENomConceptReturnPressed(self): - QTPanelTBW3.LENomConceptReturnPressed(self) diff --git a/InterfaceQT/monCommentairePanel.py b/InterfaceQT/monCommentairePanel.py deleted file mode 100644 index 4a983a46..00000000 --- a/InterfaceQT/monCommentairePanel.py +++ /dev/null @@ -1,78 +0,0 @@ -# -*- 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 -import string,types,os - -# Modules Eficas - -from qt import * - -from desCommentaire import DComment -from qtCommun import QTPanel -from qtCommun import QTPanelTBW2 - -import prefs - -# Import des panels - -class MonCommentairePanel(DComment,QTPanelTBW2,QTPanel): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - DComment.__init__(self,parent,name,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW2.__init__(self,node,parent) - self.RemplitPanel() - - def RemplitPanel(self): - texte=self.node.item.get_valeur() - self.textCommentaire.setText(texte) - - def TexteCommentaireEntre(self): - texte=self.textCommentaire.text().latin1() - self.editor.init_modif() - self.node.item.set_valeur(texte) - self.node.onValid() - - def BuildTabCommand(self): - QTPanelTBW2.BuildLBNouvCommande(self) - - def LEFiltreTextChanged(self): - QTPanelTBW2.LEFiltreTextChanged(self) - - def LEfiltreReturnPressed(self): - QTPanelTBW2.LEfiltreReturnPressed(self) - - def LBNouvCommandeClicked(self): - QTPanelTBW2.LBNouvCommandeClicked(self) - - def BNextPressed(self) : - QTPanelTBW2.BNextPressed(self) - - def BOkPressed(self): - QTPanel.BOkPressed(self) - - def ViewDoc(self): - QTPanel.ViewDoc(self) - diff --git a/InterfaceQT/monFonctionPanel.py b/InterfaceQT/monFonctionPanel.py deleted file mode 100644 index e38ed07b..00000000 --- a/InterfaceQT/monFonctionPanel.py +++ /dev/null @@ -1,157 +0,0 @@ -# -*- 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 -import string,types,os -from qt import * - -# Modules Eficas -from qtSaisie import SaisieValeur -from monPlusieursBasePanel import MonPlusieursBasePanel - -# Import des panels - -class MonFonctionPanel(MonPlusieursBasePanel): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - self.node=node - self.SetNbValeurs() - MonPlusieursBasePanel.__init__(self,node,parent,name,fl) - - def SetNbValeurs(self): - genea=self.node.item.get_genealogie() - if "VALE" in genea: - self.nbValeurs=2 - if "VALE_C" in genea: - self.nbValeurs=3 - - - def DecoupeListeValeurs(self,liste): - #decoupe la liste des valeurs en n ( les x puis les y) - l_valeurs=[] - if (len(liste)% self.nbValeurs != 0): - message="La cardinalité n'est pas correcte, la dernière valeur est ignorée" - self.editor.affiche_infos(message) - for i in range(len(liste)/ self.nbValeurs) : - if (self.nbValeurs==2): - t=(liste[i*self.nbValeurs], liste[i*self.nbValeurs+1]) - else: - t=(liste[i*self.nbValeurs], liste[i*self.nbValeurs+1], liste[i*self.nbValeurs+2]) - l_valeurs.append(t) - return l_valeurs - - def BuildLBValeurs(self): - self.LBValeurs.clear() - listeValeurs=self.node.item.GetListeValeurs() - for valeur in self.DecoupeListeValeurs(listeValeurs): - if type(valeur) == types.TupleType: - TupleEnTexte="(" - for val in valeur : - TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", " - TupleEnTexte = TupleEnTexte[0:-2] +")" - self.LBValeurs.insertItem(TupleEnTexte) - else : - self.LBValeurs.insertItem(QString(str(valeur))) - - def Ajout1Valeur(self,liste=[]): - # Pour être appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur) - if liste == [] : - liste,validite,texteBrut=SaisieValeur.TraiteLEValeur(self) - if validite : - for val in texteBrut.split(',') : - self.politique.AjoutDsDictReel(val) - else : - validite=1 - if validite == 0 : return - if liste ==[] : return - - if len(liste) != self.nbValeurs : - commentaire = QString(str(liste)) - commentaire += QString(" n est pas un tuple de ") - commentaire += QString(str(self.nbValeurs)) - commentaire += QString(" valeurs") - #self.Commentaire.setText(commentaire) - self.LEValeur.setText(QString(str(liste))) - self.editor.affiche_infos(commentaire) - return - - index=self.LBValeurs.currentItem() +1 - indexListe=index*self.nbValeurs - if index == 0 : - index = len(self.listeValeursCourantes) - indexListe=len(self.listeValeursCourantes) - listeVal=[] - for valeur in self.listeValeursCourantes : - listeVal.append(valeur) - validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index+1,listeVal) - self.Commentaire.setText(comm2) - if not validite : - self.editor.affiche_infos(comm) - else: - self.LEValeur.setText(QString("")) - l1=self.listeValeursCourantes[:indexListe] - l3=self.listeValeursCourantes[indexListe:] - for valeur in self.DecoupeListeValeurs(listeRetour): - if type(valeur) == types.TupleType: - TupleEnTexte="(" - for val in valeur : - TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", " - TupleEnTexte = TupleEnTexte[0:-2] +")" - self.LBValeurs.insertItem(TupleEnTexte,index) - else : - self.LBValeurs.insertItem(QString(str(valeur)),index) - index=index+1 - self.listeValeursCourantes=l1+listeRetour+l3 - - - def AjoutNValeur(self,liste) : - if len(liste)%self.nbValeurs != 0 : - texte="Nombre de valeur incorrecte" - #self.Commentaire.setText(texte) - self.editor.affiche_infos(texte) - return - listeDecoupee=self.DecoupeListeValeurs(liste) - for vals in listeDecoupee : - self.Ajout1Valeur(vals) - - - def Sup1Valeur(self): - index=self.LBValeurs.currentItem() - self.LBValeurs.removeItem(self.LBValeurs.currentItem()) - listeVal=[] - i=0 - for valeur in self.listeValeursCourantes : - if self.nbValeurs == 2 : - if (i != index*2 and i != index*2+1 ) : listeVal.append(valeur) - elif self.nbValeurs == 3 : - if (i != index*3 and i != index*3+1 and i != index*3 +2) : listeVal.append(valeur) - else : - print "aiiiiiiiiiiiiiiiiiieeee" - i = i+1 - self.listeValeursCourantes=listeVal - listeValeurs=self.listeValeursCourantes - self.LBValeurs.clear() - for valeur in self.DecoupeListeValeurs(listeValeurs): - self.LBValeurs.insertItem(str(valeur)) - diff --git a/InterfaceQT/monFormulePanel.py b/InterfaceQT/monFormulePanel.py deleted file mode 100644 index e691082e..00000000 --- a/InterfaceQT/monFormulePanel.py +++ /dev/null @@ -1,147 +0,0 @@ -# -*- 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 -# Modules Eficas - -from desFormule import DFormule -from qtCommun import QTPanel -from qtCommun import QTPanelTBW2 -from qt import * - - -# Import des panels - -class MonFormulePanel(DFormule,QTPanelTBW2): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - DFormule.__init__(self,parent,name,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW2.__init__(self,node,parent) - self.LENomFormule.setText(node.item.get_nom()) - self.LECorpsFormule.setText(node.item.get_corps()) - texte_args="" - if node.item.get_args() != None : - for i in node.item.get_args() : - if texte_args != "" : - texte_args = texte_args +"," - texte_args=texte_args + i - self.LENomsArgs.setText(texte_args) - - - self.parent=parent - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def BOkPressed(self): - QTPanel.BOkPressed(self) - - def ViewDoc(self): - QTPanel.ViewDoc(self) - - def BNextPressed(self): - QTPanelTBW2.BNextPressed(self) - - def BuildTabCommand(self): - QTPanelTBW2.BuildLBNouvCommande(self) - - def LEFiltreTextChanged(self): - QTPanelTBW2.LEFiltreTextChanged(self) - - def LEfiltreReturnPressed(self): - QTPanelTBW2.LEfiltreReturnPressed(self) - - def LBNouvCommandeClicked(self): - QTPanelTBW2.LBNouvCommandeClicked(self) - - def NomFormuleSaisi(self): - nomFormule = self.LENomFormule.text().latin1() - if nomFormule == '' : return - test,erreur = self.node.item.verif_nom(nomFormule) - if test : - commentaire=nomFormule+" est un nom valide pour une FORMULE" - else : - commentaire=nomFormule+" n'est pas un nom valide pour une FORMULE" - self.editor.affiche_infos(commentaire) - - def argsSaisis(self): - arguments = self.LENomsArgs.text().latin1() - if arguments == '' : return - - test,erreur = self.node.item.verif_arguments(arguments) - if test: - commentaire="Argument(s) valide(s) pour une FORMULE" - else: - commentaire="Argument(s) invalide(s) pour une FORMULE" - self.editor.affiche_infos(commentaire) - - def FormuleSaisie(self): - nomFormule = self.LENomFormule.text().latin1() - arguments = self.LENomsArgs.text().latin1() - expression = self.LECorpsFormule.text().latin1() - if expression == '' : return - test,erreur = self.node.item.verif_formule_python((nomFormule,"REEL",arguments,expression)) - - if test: - commentaire="Corps de FORMULE valide" - else: - commentaire="Corps de FORMULE invalide" - self.editor.affiche_infos(commentaire) - - - def BOkPressedFormule(self): - if self.parent.modified == 'n' : self.parent.init_modif() - - nomFormule = self.LENomFormule.text().latin1() - test,erreur = self.node.item.verif_nom(nomFormule) - if not test : - self.editor.affiche_infos(erreur) - return - - arguments = self.LENomsArgs.text().latin1() - test,erreur = self.node.item.verif_arguments(arguments) - if not test : - self.editor.affiche_infos(erreur) - return - - expression = self.LECorpsFormule.text().latin1() - test,erreur = self.node.item.verif_formule_python((nomFormule,"REEL",arguments,expression)) - if not test : - self.editor.affiche_infos(erreur) - return - - test=self.node.item.object.update_formule_python(formule=(nomFormule,"REEL",arguments,expression)) - test,erreur = self.node.item.save_formule(nomFormule,"REEL",arguments,expression) - if test : - #self.node.update_texte() - #self.node.update_label() - #self.node.update_node() - self.node.onValid() - self.node.update_valid() - commentaire = "Formule modifiée" - else: - commentaire ="Formule incorrecte : " + erreur - self.editor.init_modif() - self.editor.affiche_infos(commentaire) diff --git a/InterfaceQT/monIncludePanel.py b/InterfaceQT/monIncludePanel.py deleted file mode 100644 index cec4661c..00000000 --- a/InterfaceQT/monIncludePanel.py +++ /dev/null @@ -1,154 +0,0 @@ -# -*- 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 -# Modules Eficas - -import os,traceback,sys -from qt import * -from desMacro import DMacro - -from monMacroPanel import MonMacroPanel -import convert - - -# Import des panels - -class MonIncludePanel(MonMacroPanel): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - MonMacroPanel.__init__(self,node,parent,name,fl) - #Version TK ?? - #if not hasattr(self.node.item.object,'fichier_ini'): - if not hasattr(self.node.item.object,'fichier_ini'): - self.ajoutPageBad() - else: - self.ajoutPageOk() - - def ajoutPageOk(self): - self.TabPage = QWidget(self.TWChoix,"TabPage") - self.LENomFichier = QLineEdit(self.TabPage,"LENomFichier") - self.LENomFichier.setGeometry(QRect(18,127,450,30)) - self.textLabel1_3 = QLabel(self.TabPage,"textLabel1_3") - self.textLabel1_3.setGeometry(QRect(70,50,350,41)) - self.BBrowse = QPushButton(self.TabPage,"BBrowse") - self.BBrowse.setGeometry(QRect(288,306,161,41)) - self.TWChoix.insertTab(self.TabPage,QString("")) - self.textLabel1_3.setText(self._DMacro__tr("La commande INCLUDE requiert un nom de Fichier :")) - self.BBrowse.setText(self._DMacro__tr("Edit")) - self.TWChoix.changeTab(self.TabPage,self._DMacro__tr("Fichier Include")) - self.TWChoix.setCurrentPage(2) - if hasattr(self.node.item.object,'fichier_ini'): - self.LENomFichier.setText(self.node.item.object.fichier_ini) - else : - self.LENomFichier.setText("") - self.LENomFichier.setText(self.node.item.object.fichier_ini) - - - self.BChangeFile = QPushButton(self.TabPage,"BChangeFile") - self.BChangeFile.setGeometry(QRect(290,350,161,41)) - #self.BChangeFile.setSizePolicy(QSizePolicy(0,0,0,0,self.BChangeFile.sizePolicy().hasHeightForWidth())) - self.BChangeFile.setText(self._DMacro__tr("Autre Fichier")) - - self.connect(self.BBrowse,SIGNAL("clicked()"),self.BBrowsePressed) - self.connect(self.BChangeFile,SIGNAL("clicked()"),self.BChangeFilePressed) - self.connect(self.LENomFichier,SIGNAL("returnPressed()"),self.LENomFichReturnPressed) - - - def ajoutPageBad(self) : - self.TabPage = QWidget(self.TWChoix,"TabPage") - self.textLabel1_5 = QLabel(self.TabPage,"textLabel1_5") - TabPageLayout = QGridLayout(self.TabPage,1,1,11,6,"TabPageLayout") - TabPageLayout.addWidget(self.textLabel1_5,0,0) - self.TWChoix.insertTab(self.TabPage,QString("")) - self.resize(QSize(521,499).expandedTo(self.minimumSizeHint())) - self.clearWState(Qt.WState_Polished) - self.textLabel1_5.setText(self._DMacro__trUtf8("\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x22\x2b\x31\x22\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x49\x4e\x43\x4c\x55\x44\x45\x20\x6e\x27\x61\x20\x70\x61\x73\x20\x64\x65\x20\x66\x69\x63\x68\x69\x65\x72\x20\x61\x73\x73\x6f\x63\x69\xc3\xa9\x2e\x0a\x49\x6c\x20\x66\x61\x75\x74\x20\x64\x27\x61\x62\x6f\x72\x64\x20\x63\x68\x6f\x69\x73\x69\x72\x20\x75\x6e\x20\x6e\x75\x6d\xc3\xa9\x72\x6f\x20\x64\x27\x75\x6e\x69\x74\xc3\xa9\x3c\x2f\x70\x3e\x3c\x2f\x66\x6f\x6e\x74\x3e")) - self.TWChoix.changeTab(self.TabPage,self._DMacro__tr("Fichier Include")) - self.TWChoix.setCurrentPage(2) - - - def BBrowsePressed(self): - self.node.makeEdit() - - def BOkIncPressed (self): - self.LENomFichReturnPressed() - - def LENomFichReturnPressed(self): - nomFichier=str(self.LENomFichier.text()) - if not os.path.isfile(nomFichier) : - commentaire = "Fichier introuvable" - self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) - return - - text=self.convert_file(nomFichier) - - # Si probleme a la lecture-conversion on arrete le traitement - if not text: - return - - try : - self.node.item.object.change_fichier_init(nomFichier,text) - commentaire = "Fichier modifie : " + self.node.item.get_nom() - self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) - except: - l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1]) - QMessageBox.critical( self, "Erreur fatale au chargement du fichier Include", l[0]) - commentaire = "Fichier invalide" - self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) - return - - - def convert_file(self,file): - """ - Methode pour convertir le fichier file dans le format courant - """ - format=self.editor.format_fichier - text=None - if convert.plugins.has_key(format): - # Le convertisseur existe on l'utilise - p=convert.plugins[format]() - p.readfile(file) - text=p.convert('execnoparseur') - else : - commentaire = "Impossible de lire le fichier : Format inconnu" - self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) - return text - - - def BChangeFilePressed(self): - userDir=os.path.expanduser("~/Eficas_install/") - fn = QFileDialog.getOpenFileName(userDir, - self.trUtf8('All Files (*);;''JDC Files (*.comm);;'), self.editor) - - if fn.isNull(): - return - - fn = os.path.abspath((unicode(fn))) - self.LENomFichier.setText(fn) - self.LENomFichReturnPressed() diff --git a/InterfaceQT/monListeParamPanel.py b/InterfaceQT/monListeParamPanel.py deleted file mode 100644 index 68c4bada..00000000 --- a/InterfaceQT/monListeParamPanel.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- 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 -# Modules Eficas - -from desListeParam import DLisParam -from qt import * - -# Import des panels - -class MonListeParamPanel(DLisParam): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,liste,parent,name = None,fl = 0): - self.panel=parent - DLisParam.__init__(self,parent,name,Qt.WType_Dialog) - self.liste=liste - self.initVal() - - def initVal(self): - self.LBParam.clear() - for param in self.liste : - self.LBParam.insertItem(QString(repr(param))) - - def LBParamItemPressed(self): - i=self.LBParam.index(self.LBParam.selectedItem()) - self.panel.Ajout1Valeur(self.liste[i]) diff --git a/InterfaceQT/monMCFactPanel.py b/InterfaceQT/monMCFactPanel.py deleted file mode 100644 index fc806931..00000000 --- a/InterfaceQT/monMCFactPanel.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- 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 -# Modules Eficas - -from desMCFact import DMCFact -from qtCommun import QTPanel -from qtCommun import QTPanelTBW1 -from qt import * - - -# Import des panels - -class MonMCFactPanel(DMCFact,QTPanelTBW1): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - DMCFact.__init__(self,parent,name,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW1.__init__(self,node,parent) - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def BOkPressed(self): - QTPanel.BOkPressed(self) - - def ViewDoc(self): - QTPanel.ViewDoc(self) - diff --git a/InterfaceQT/monMCListAjoutPanel.py b/InterfaceQT/monMCListAjoutPanel.py deleted file mode 100644 index 8cb0eb37..00000000 --- a/InterfaceQT/monMCListAjoutPanel.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- 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 -# Modules Eficas - -from desMCListAjout import DMCListAjout -from qtCommun import QTPanel -from qt import * - - -# Import des panels - -class MonMCListAjoutPanel(DMCListAjout,QTPanel): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node,parent = None,name = None,fl = 0): - DMCListAjout.__init__(self,parent,name,fl) - QTPanel.__init__(self,node,parent) - monMCFact=self.node.item.get_nom() - self.MCFacteur.setText(QString(monMCFact)) - self.MCFacteur.setAlignment(Qt.AlignHCenter) - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def BAjoutClicked(self): - self.node.parent.append_child(self.node.item.get_nom()) - - def ViewDoc(self): - QTPanel.ViewDoc(self) - diff --git a/InterfaceQT/monMacroPanel.py b/InterfaceQT/monMacroPanel.py deleted file mode 100644 index bb2d8036..00000000 --- a/InterfaceQT/monMacroPanel.py +++ /dev/null @@ -1,76 +0,0 @@ -# -*- 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 -# Modules Eficas - -from desMacro import DMacro -from qtCommun import QTPanel -from qtCommun import QTPanelTBW1 -from qtCommun import QTPanelTBW2 -from qtCommun import QTPanelTBW3 -from qt import * - - -# Import des panels - -class MonMacroPanel(DMacro,QTPanelTBW1,QTPanelTBW2,QTPanelTBW3): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - DMacro.__init__(self,parent,name,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW2.__init__(self,node,parent) - QTPanelTBW1.__init__(self,node,parent) - if self.node.item.object.get_type_produit() != None : - QTPanelTBW3.__init__(self,node,parent) - else : - self.TWChoix.removePage(self.TWChoix.page(2)) - - def ViewDoc(self): - QTPanel.ViewDoc(self) - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def BOkPressed(self): - QTPanel.BOkPressed(self) - - def BNextPressed(self): - QTPanelTBW2.BNextPressed(self) - - def BuildTabCommand(self): - QTPanelTBW2.BuildLBNouvCommande(self) - - def LEFiltreTextChanged(self): - QTPanelTBW2.LEFiltreTextChanged(self) - - def LEfiltreReturnPressed(self): - QTPanelTBW2.LEfiltreReturnPressed(self) - - def LBNouvCommandeClicked(self): - QTPanelTBW2.LBNouvCommandeClicked(self) - - def LENomConceptReturnPressed(self): - QTPanelTBW3.LENomConceptReturnPressed(self) - diff --git a/InterfaceQT/monOptionsEditeur.py b/InterfaceQT/monOptionsEditeur.py deleted file mode 100644 index 70c0dbdb..00000000 --- a/InterfaceQT/monOptionsEditeur.py +++ /dev/null @@ -1,145 +0,0 @@ -# -*- coding: utf-8 -*- - -from OptionsEditeur import desOptions -from qt import * -import os, re - -class Options(desOptions): - def __init__(self,parent = None,name = None,modal = 0,fl = 0,configuration=None): - desOptions.__init__(self,parent,name,modal,fl) - self.configuration=configuration - self.viewMan=parent - self.dVersion={} - self.dRepMat={} - self.dRepCat={} - self.initAll() - - - def initAll(self): - self.CBVersions.clear() - for item in self.configuration.catalogues : - try : - (code,version,cata,format,defaut)=item - except : - (code,version,cata,format)=item - self.dVersion[version]=(item) - self.dRepCat[version]=str(cata) - self.CBVersions.insertItem(QString(version),0) - - codeSansPoint=re.sub("\.","",version) - chaine="rep_mat_"+codeSansPoint - if hasattr(self.configuration,chaine): - rep_mat=getattr(self.configuration,chaine) - self.dRepMat[version]=str(rep_mat) - else : - self.dRepMat[version]="" - self.LERepMat.setText(self.dRepMat[version]) - self.LERepCata.setText(self.dRepCat[version]) - if hasattr(self.configuration,"path_doc"): - self.LERepDoc.setText(self.configuration.path_doc) - - - def VersionChoisie(self): - version=str(self.CBVersions.currentText()) - if self.dRepMat.has_key(version): - self.LERepMat.setText(self.dRepMat[version]) - if self.dRepCat.has_key(version): - self.LERepCata.setText(self.dRepCat[version]) - - def BokClicked(self): - version=str(self.CBVersions.currentText()) - if self.LERepCata.text() == "" : - QMessageBox.critical( self, "Champ non rempli","Le champs Catalogue doit etre rempli" ) - return - - self.dRepMat[version]=self.LERepMat.text() - if str(self.dRepMat[version] != "") != "" : - codeSansPoint=re.sub("\.","",version) - chaine="rep_mat_"+codeSansPoint - setattr(self.configuration,chaine,self.dRepMat[version]) - - self.dRepCat[version]=str(self.LERepCata.text()) - if version in self.dVersion.keys(): - item=list(self.dVersion[version]) - item[2]=self.dRepCat[version] - self.dVersion[version]=tuple(item) - else : - self.dVersion[version]=('ASTER',version,self.dRepCat[version],'python') - - lItem=[] - for version in self.dVersion.keys() : - lItem.append(self.dVersion[version]) - self.configuration.catalogues=lItem - self.configuration.save_params() - - def AjoutVersion(self): - version=self.LEVersionAjout.text() - if str(version) == "" : return - self.CBVersions.insertItem(version,0) - self.LERepMat.setText("") - self.LERepCata.setText("") - self.LEVersionAjout.setText("") - - def SupVersion(self): - version=str(self.LEVersionSup.text()) - if version == "" : return - i =0 - while i < self.CBVersions.count() : - if self.CBVersions.text(i) == version : - self.CBVersions.removeItem(i) - break - i=i+1 - try : - del self.dVersion[version] - del self.dRepMat[version] - del self.dRepCat[version] - except : - self.LEVersionSup.setText("") - return - codeSansPoint=re.sub("\.","",version) - chaine="rep_mat_"+codeSansPoint - if hasattr(self.configuration,chaine): - delattr(self.configuration,chaine) - self.LEVersionSup.setText("") - - lItem=[] - for version in self.dVersion.keys() : - lItem.append(self.dVersion[version]) - self.LERepMat.setText("") - self.LERepCata.setText("") - self.configuration.catalogues=lItem - self.configuration.save_params() - self.CBVersions.setCurrentItem(0) - self.VersionChoisie() - - - def BdefautChecked(self): - res = QMessageBox.warning( - None, - self.trUtf8("Restauration des parametres par defaut "), - self.trUtf8("Votre fichier editeur sera ecrase."), - self.trUtf8("&Ok"), - self.trUtf8("&Abandonner")) - self.Bdefaut.setState(QButton.Off) - if res == 1 : return - - appli=self.configuration.appli - repIni=self.configuration.repIni - fic_ini_util=self.configuration.fic_ini_utilisateur - old_fic_ini_util=fic_ini_util+"_old" - commande="mv "+fic_ini_util+" "+old_fic_ini_util - os.system(commande) - import configuration - configNew=configuration.CONFIG(appli,repIni) - self.configuration=configNew - appli.CONFIGURATION=configNew - self.configuration.save_params() - self.dVersion={} - self.dRepMat={} - self.dRepCat={} - self.initAll() - - def ChangePathDoc(self): - self.configuration.path_doc=str(self.LERepDoc.text()) - self.configuration.save_params() - diff --git a/InterfaceQT/monOptionsPdf.py b/InterfaceQT/monOptionsPdf.py deleted file mode 100644 index a7c81d29..00000000 --- a/InterfaceQT/monOptionsPdf.py +++ /dev/null @@ -1,22 +0,0 @@ -from OptionsPdf import desPdf - -class OptionPdf(desPdf): - def __init__(self,parent = None,name = None,modal = 0,fl = 0,configuration=None): - desPdf.__init__(self,parent,name,modal,fl) - self.configuration=configuration - self.initVal() - - def initVal(self): - if hasattr(self.configuration,'exec_acrobat'): - self.LERepPdf.setText(self.configuration.exec_acrobat) - else : - self.LERepPdf.clear() - - def LeRepPdfPressed(self): - nouveau=str(self.LERepPdf.text()) - self.configuration.exec_acrobat=nouveau - self.configuration.save_params() - - def BokClicked(self): - self.LeRepPdfPressed() - self.close() diff --git a/InterfaceQT/monParamPanel.py b/InterfaceQT/monParamPanel.py deleted file mode 100644 index 84472fcd..00000000 --- a/InterfaceQT/monParamPanel.py +++ /dev/null @@ -1,138 +0,0 @@ -# -*- 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 -import string,types,os,re - -# Modules Eficas -import prefs - -from qt import * - -from desParam import DParam -from qtCommun import QTPanel -from qtCommun import QTPanelTBW2 - -# Import des panels - -class MonParamPanel(DParam,QTPanelTBW2,QTPanel): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - DParam.__init__(self,parent,name,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW2.__init__(self,node,parent) - self.InitLEs() - - def InitLEs(self): - nom=self.node.item.get_nom() - self.lineEditNom.setText(nom) - valeur=self.node.item.get_valeur() - if valeur != None: - #str=QString("").setNum(valeur) - self.lineEditVal.setText(str(valeur)) - else : - self.lineEditVal.clear() - - def BOkParamPressed(self): - val=self.LEValeurPressed() - nom=self.LENomPressed() - if not nom : - commentaire="Entrer un nom de parametre" - self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) - return - self.node.item.set_nom(nom) - self.node.item.set_valeur(val) - self.node.update_texte() - self.node.update_valid() - self.editor.init_modif() - self.InitLEs() - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def LEValeurPressed(self): - self.Commentaire.setText(QString("")) - commentaire="Valeur incorrecte" - qtVal=self.lineEditVal.text() - boul=2 - try : - val,boul=QString.toInt(qtVal) - except : - pass - if boul == 0 : - try : - val,boul=QString.toDouble(qtVal) - except : - pass - if boul == 0 : - try : - val=str(qtVal) - boul=1 - except : - pass - if boul: commentaire="Valeur correcte" - self.Commentaire.setText(QString(commentaire)) - valString=str(self.lineEditVal.text()) - return valString - - def LENomPressed(self): - self.Commentaire.setText(QString("")) - qtNom=self.lineEditNom.text() - nom=str(qtNom) - numDebutPattern=re.compile('[a-zA-Z]') - if numDebutPattern.match(nom) : - return nom - else : - commentaire="Les noms de parametre doivent commencer par une lettre" - self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) - return None - - def BuildTabCommand(self): - QTPanelTBW2.BuildLBNouvCommande(self) - - def LEFiltreTextChanged(self): - QTPanelTBW2.LEFiltreTextChanged(self) - - def LEfiltreReturnPressed(self): - QTPanelTBW2.LEfiltreReturnPressed(self) - - def LBNouvCommandeClicked(self): - QTPanelTBW2.LBNouvCommandeClicked(self) - - def AppelleBuildLBRegles(self): - listeRegles=self.node.item.get_regles() - listeNomsEtapes = self.node.item.get_l_noms_etapes() - self.BuildLBRegles(listeRegles,listeNomsEtapes) - - def BNextPressed(self) : - QTPanelTBW2.BNextPressed(self) - - def BOkPressed(self): - QTPanel.BOkPressed(self) - - def ViewDoc(self): - QTPanel.ViewDoc(self) - diff --git a/InterfaceQT/monPlusieursASSDPanel.py b/InterfaceQT/monPlusieursASSDPanel.py deleted file mode 100644 index 5cc6b305..00000000 --- a/InterfaceQT/monPlusieursASSDPanel.py +++ /dev/null @@ -1,118 +0,0 @@ -# -*- 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 -import string,types,os - -# Modules Eficas -import prefs - -from qt import * -from monPlusieursIntoPanel import MonPlusieursIntoPanel -from desPlusieursInto import DPlusInto -from qtCommun import QTPanel -from politiquesValidation import PolitiquePlusieurs -# Import des panels - -class MonPlusieursASSDPanel(MonPlusieursIntoPanel): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - QTPanel.__init__(self,node,parent) - DPlusInto.__init__(self,parent,name,fl) - - self.listeValeursCourantes=self.node.item.GetListeValeurs() - self.InitValeursCourantes() - self.DisplayListBoxCourantes() - self.DisplayListBoxPossibles() - - self.politique=PolitiquePlusieurs(node,parent) - #QObject.connect(self.listBoxVal, SIGNAL("doubleClicked(QListBoxItem*)" ), self.Ajout1Valeur ) - # QObject.connect(self.listBoxVal, SIGNAL("doubleClicked(QListBoxItem*)" ), self.ClicASSD ) - - def DisplayListBoxPossibles(self): - listeNomsSD = self.node.item.get_sd_avant_du_bon_type() - self.listBoxVal.clear() - for aSD in listeNomsSD: - self.listBoxVal.insertItem( aSD) - if len(listeNomsSD) == 1 : - self.listBoxVal.setSelected(0,1) - - def DisplayListBoxCourantes(self): - self.LBValeurs.clear() - for aSD in self.listNomsValeurs : - self.LBValeurs.insertItem( aSD) - - def InitValeursCourantes(self): - self.listNomsValeurs=[] - for i in self.listeValeursCourantes : - self.listNomsValeurs.append(i.get_name()) - - def BOkPourListePressed(self): - if self.listeValeursCourantes == [] : - self.editor.affiche_infos("Pas de Validation d un groupe vide") - return - self.node.item.set_valeur(self.listeValeursCourantes) - self.editor.affiche_infos("Valeur Acceptée") - pass - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def Sup1Valeur(self): - index=self.LBValeurs.currentItem() - self.LBValeurs.removeItem(self.LBValeurs.currentItem()) - listeVal=[] - i=0 - for valeur in self.listeValeursCourantes : - if i != index : listeVal.append(valeur) - i = i+1 - self.listeValeursCourantes=listeVal - self.InitValeursCourantes() - self.DisplayListBoxCourantes() - self.DisplayListBoxPossibles() - - def Ajout1Valeur(self): - liste=[] - if self.listBoxVal.currentText().latin1() == None : return - liste.append(self.listBoxVal.currentText().latin1()) - index=self.LBValeurs.currentItem() + 1 - if index==0 : index = -1 - listeVal=[] - for valeur in self.listeValeursCourantes : - valeurSD,validite=self.node.item.eval_valeur(valeur) - if validite : listeVal.append(valeur) - validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal) - self.Commentaire.setText(comm2) - if not validite : - self.editor.affiche_infos(comm) - else: - l1=self.listeValeursCourantes[:index] - l3=self.listeValeursCourantes[index:] - for valeur in listeRetour: - self.LBValeurs.insertItem(QString(str(valeur)),index) - index=index+1 - self.listeValeursCourantes=l1+listeRetour+l3 - self.InitValeursCourantes() - self.DisplayListBoxCourantes() - self.DisplayListBoxPossibles() diff --git a/InterfaceQT/monPlusieursBasePanel.py b/InterfaceQT/monPlusieursBasePanel.py deleted file mode 100644 index f10f1e76..00000000 --- a/InterfaceQT/monPlusieursBasePanel.py +++ /dev/null @@ -1,179 +0,0 @@ -# -*- 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 -import string,types,os - -# Modules Eficas -import prefs - -from qt import * - -from desPlusieursBase import DPlusBase -from qtCommun import QTPanel -from qtSaisie import SaisieValeur -from politiquesValidation import PolitiquePlusieurs - -# Import des panels - -class MonPlusieursBasePanel(DPlusBase,QTPanel,SaisieValeur): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - QTPanel.__init__(self,node,parent) - DPlusBase.__init__(self,parent,name,fl) - self.politique=PolitiquePlusieurs(node,parent) - self.BuildLBValeurs() - self.listeValeursCourantes=self.node.item.GetListeValeurs() - self.InitCommentaire() - self.detruitBouton() - - def detruitBouton(self): - mc = self.node.item.get_definition() - type = mc.type[0] - if not(('grma' in repr(type)) or ('grno' in repr(type))) or not(self.editor.salome) : - self.BSalome.close() - self.BView2D.close() - - def ViewDoc(self): - QTPanel.ViewDoc(self) - - def BuildLBValeurs(self): - # redefinit en raison de l heritage par monFonctionPanel - SaisieValeur.BuildLBValeurs(self,politique=self.politique) - - def BOkPourListePressed(self): - if self.listeValeursCourantes == [] : - self.editor.affiche_infos("Pas de validation d un groupe vide") - return - self.node.item.set_valeur(self.listeValeursCourantes) - self.editor.affiche_infos("Valeur Acceptée") - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def BParametresPressed(self): - QTPanel.BParametresPressed(self) - - def LEValeurPressed(self): - self.Ajout1Valeur() - - def Sup1Valeur(self): - index=self.LBValeurs.currentItem() - self.LEValeur.setText(self.LBValeurs.currentText()) - self.LBValeurs.removeItem(self.LBValeurs.currentItem()) - listeVal=[] - i=0 - for valeur in self.listeValeursCourantes : - if i != index : listeVal.append(valeur) - i = i+1 - self.listeValeursCourantes=listeVal - - - def Ajout1Valeur(self,valeur=None): - liste,validite,texteBrut=SaisieValeur.TraiteLEValeur(self,valeur) - if validite == 0 : return - if liste ==[] : return - for val in texteBrut.split(',') : - self.politique.AjoutDsDictReel(val) - - index=self.LBValeurs.currentItem() + 1 - listeVal=[] - for valeur in self.listeValeursCourantes : - listeVal.append(valeur) - validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal) - self.Commentaire.setText(comm2) - if not validite : - self.editor.affiche_infos(comm) - else: - self.LEValeur.setText(QString("")) - l1=self.listeValeursCourantes[:index] - l3=self.listeValeursCourantes[index:] - for valeur in listeRetour: - self.LBValeurs.insertItem(QString(str(valeur)),index) - self.LBValeurs.setCurrentItem(index) - index=index+1 - self.listeValeursCourantes=l1+listeRetour+l3 - self.editor.modified=1 - - def BImportPressed(self): - init=QString( self.editor.CONFIGURATION.savedir) - fn = QFileDialog.getOpenFileName(init, self.trUtf8('All Files (*)',)) - if fn == None : return - if fn == "" : return - from monSelectVal import MonSelectVal - MonSelectVal(file=fn,parent=self).show() - - def InitCommentaire(self): - commentaire="" - mc = self.node.item.get_definition() - d_aides = { 'TXM' : 'chaînes de caractères', - 'R' : 'réels', - 'I' : 'entiers', - 'C' : 'complexes'} - type = mc.type[0] - if not d_aides.has_key(type) : - if mc.min == mc.max: - commentaire="Entrez "+str(mc.min)+" valeurs " - else : - commentaire="Entrez entre "+str(mc.min)+" et "+str(mc.max)+" valeurs " - else : - if mc.min == mc.max: - commentaire="Entrez "+str(mc.min)+" "+d_aides[type] - else : - commentaire="Entrez entre "+str(mc.min)+" et "+str(mc.max) +" " + d_aides[type] - aideval=self.node.item.aide() - commentaire=commentaire + "\n" + aideval - self.Commentaire.setText(QString(commentaire)) - - def BSalomePressed(self): - - genea=self.node.item.get_genealogie() - kwType = None - for e in genea: - if "GROUP_NO" in e: kwType = "GROUP_NO" - if "GROUP_MA" in e: kwType = "GROUP_MA" - - #print "BkwType",kwType - #print "editor", self.editor - selection, commentaire = self.editor.parent.appliEficas.selectGroupFromSalome(kwType,editor=self.editor) - if commentaire !="" : - self.Commentaire.setText(QString(commentaire)) - monTexte="" - if selection == [] : return - for geomElt in selection: - monTexte=geomElt+"," - monTexte= monTexte[0:-1] - self.LEValeur.setText(QString(monTexte)) - - def BView2DPressed(self): - valeur=self.LEValeur.text() - if valeur == QString("") : - valeur=self.LBValeurs.currentText() - if valeur == QString("") : return - valeur = str(valeur) - if valeur : - ok, msgError = self.editor.parent.appliEficas.displayShape(valeur) - if not ok: - self.editor.parent.appli.affiche_infos(msgError) - diff --git a/InterfaceQT/monPlusieursIntoPanel.py b/InterfaceQT/monPlusieursIntoPanel.py deleted file mode 100644 index 4a738c7f..00000000 --- a/InterfaceQT/monPlusieursIntoPanel.py +++ /dev/null @@ -1,120 +0,0 @@ -# -*- 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 -import string,types,os - -# Modules Eficas -import prefs - -from qt import * - -from desPlusieursInto import DPlusInto -from qtCommun import QTPanel -from qtSaisie import SaisieValeur -from politiquesValidation import PolitiquePlusieurs - -# Import des panels - -class MonPlusieursIntoPanel(DPlusInto,QTPanel,SaisieValeur): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - QTPanel.__init__(self,node,parent) - DPlusInto.__init__(self,parent,name,fl) - self.politique=PolitiquePlusieurs(node,parent) - SaisieValeur.BuildLBValeurs(self) - self.listeValeursCourantes=self.node.item.GetListeValeurs() - SaisieValeur.RemplitPanel(self,self.listeValeursCourantes) - QObject.connect(self.listBoxVal, SIGNAL("doubleClicked(QListBoxItem*)" ), self.Ajout1Valeur ) - self.InitCommentaire() - - def BOkPourListePressed(self): - if self.listeValeursCourantes == [] : - self.editor.affiche_infos("Pas de validation d un groupe vide") - return - self.node.item.set_valeur(self.listeValeursCourantes) - self.editor.affiche_infos("Valeur Acceptée") - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def ViewDoc(self): - QTPanel.ViewDoc(self) - - def Sup1Valeur(self): - index=self.LBValeurs.currentItem() - self.LBValeurs.removeItem(self.LBValeurs.currentItem()) - listeVal=[] - i=0 - for valeur in self.listeValeursCourantes : - if i != index : listeVal.append(valeur) - i = i+1 - self.listeValeursCourantes=listeVal - SaisieValeur.RemplitPanel(self,self.listeValeursCourantes) - - def Ajout1Valeur(self): - liste=[] - if self.listBoxVal.currentText().latin1() == None : return - liste.append(self.listBoxVal.currentText().latin1()) - index=self.LBValeurs.currentItem() + 1 - if index==0 : index = -1 - listeVal=[] - for valeur in self.listeValeursCourantes : - listeVal.append(valeur) - validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal) - self.Commentaire.setText(comm2) - if not validite : - self.editor.affiche_infos(comm) - else: - l1=self.listeValeursCourantes[:index] - l3=self.listeValeursCourantes[index:] - for valeur in listeRetour: - self.LBValeurs.insertItem(QString(str(valeur)),index) - self.LBValeurs.setCurrentItem(index) - index=index+1 - self.listeValeursCourantes=l1+listeRetour+l3 - SaisieValeur.RemplitPanel(self,self.listeValeursCourantes) - - def InitCommentaire(self): - commentaire="" - mc = self.node.item.get_definition() - d_aides = { 'TXM' : 'chaînes de caractères', - 'R' : 'réels', - 'I' : 'entiers', - 'C' : 'complexes'} - type = mc.type[0] - if not d_aides.has_key(type) : - if mc.min == mc.max: - commentaire="Entrez "+str(mc.min)+" valeurs " - else : - commentaire="Entrez entre "+str(mc.min)+" et "+str(mc.max)+" valeurs " - else : - if mc.min == mc.max: - commentaire="Entrez "+str(mc.min)+" "+d_aides[type] - else : - commentaire="Entrez entre "+str(mc.min)+" et "+str(mc.max)+" "+d_aides[type] - aideval=self.node.item.aide() - commentaire=commentaire + "\n" + aideval - self.Commentaire.setText(QString(commentaire)) - diff --git a/InterfaceQT/monPoursuitePanel.py b/InterfaceQT/monPoursuitePanel.py deleted file mode 100644 index 3ba31b20..00000000 --- a/InterfaceQT/monPoursuitePanel.py +++ /dev/null @@ -1,115 +0,0 @@ -# -*- 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 -# Modules Eficas - -import os,traceback,sys -from qt import * -from desMacro import DMacro - -from monMacroPanel import MonMacroPanel -import convert - - -# Import des panels - -class MonPoursuitePanel(MonMacroPanel): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - MonMacroPanel.__init__(self,node,parent,name,fl) - #Version TK ?? - self.ajoutPageOk() - - def ajoutPageOk(self) : - self.TabPage = QWidget(self.TWChoix,"TabPage") - self.LENomFichier = QLineEdit(self.TabPage,"LENomFichier") - self.LENomFichier.setGeometry(QRect(18,127,450,30)) - self.textLabel1_3 = QLabel(self.TabPage,"textLabel1_3") - self.textLabel1_3.setGeometry(QRect(70,50,350,41)) - self.BBrowse = QPushButton(self.TabPage,"BBrowse") - self.BBrowse.setGeometry(QRect(288,306,161,41)) - self.TWChoix.insertTab(self.TabPage,QString("")) - self.textLabel1_3.setText(self._DMacro__tr("La commande POURSUITE requiert un nom de Fichier :")) - self.BBrowse.setText(self._DMacro__tr("Edit")) - self.TWChoix.changeTab(self.TabPage,self._DMacro__tr("Fichier Poursuite")) - self.TWChoix.setCurrentPage(2) - if hasattr(self.node.item.object,'fichier_ini'): - self.LENomFichier.setText(self.node.item.object.fichier_ini) - else : - self.LENomFichier.setText("") - self.connect(self.BBrowse,SIGNAL("clicked()"),self.BBrowsePressed) - self.connect(self.LENomFichier,SIGNAL("returnPressed()"),self.LENomFichReturnPressed) - - - def BBrowsePressed(self): - self.node.makeEdit() - - def BOkIncPressed (self): - self.LENomFichReturnPressed() - - def LENomFichReturnPressed(self): - nomFichier=str(self.LENomFichier.text()) - if not os.path.isfile(nomFichier) : - commentaire = "Fichier introuvable" - self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) - return - - text=self.convert_file(nomFichier) - - # Si probleme a la lecture-conversion on arrete le traitement - if not text: - return - - try : - self.node.item.object.change_fichier_init(nomFichier,text) - commentaire = "Fichier modifie : " + self.node.item.get_nom() - self.Commentaire.setText(QString(commentaire)) - except: - l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1]) - QMessageBox.critical( self, "Erreur fatale au chargement du fichier Include", l[0]) - commentaire = "Fichier invalide" - self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) - return - - - def convert_file(self,file): - """ - Methode pour convertir le fichier file dans le format courant - """ - format=self.editor.format_fichier - text=None - if convert.plugins.has_key(format): - # Le convertisseur existe on l'utilise - p=convert.plugins[format]() - p.readfile(file) - text=p.convert('execnoparseur') - else : - commentaire = "Impossible de lire le fichier : Format inconnu" - self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) - return text - diff --git a/InterfaceQT/monRacinePanel.py b/InterfaceQT/monRacinePanel.py deleted file mode 100644 index 78f8e32a..00000000 --- a/InterfaceQT/monRacinePanel.py +++ /dev/null @@ -1,81 +0,0 @@ -# -*- 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 -# Modules Eficas - -from desRacine import DRac -from qtCommun import QTPanel -from qtCommun import QTPanelTBW2 -from qtCommun import itemColore -from qt import * - - -# Import des panels - -class MonRacinePanel(DRac,QTPanelTBW2): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - DRac.__init__(self,parent,name,fl) - QTPanel.__init__(self,node,parent) - QTPanelTBW2.__init__(self,node,parent,racine=1) - self.setMinimumSize(0,0) - self.LEFiltre.setFocus() - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def BOkPressed(self): - self.DefCmd() - - def ViewDoc(self): - QTPanel.ViewDoc(self) - - def BNextPressed(self): - QTPanelTBW2.BNextPressed(self) - - def BuildTabCommand(self): - QTPanelTBW2.BuildLBNouvCommande(self) - - def LEFiltreTextChanged(self): - QTPanelTBW2.LEFiltreTextChanged(self) - - def LEfiltreReturnPressed(self): - QTPanelTBW2.LEfiltreReturnPressed(self) - - def LBNouvCommandeClicked(self): - QTPanelTBW2.LBNouvCommandeClicked(self) - - def AppelleBuildLBRegles(self): - listeRegles=self.node.item.get_regles() - listeNomsEtapes = self.node.item.get_l_noms_etapes() - self.BuildLBRegles(listeRegles,listeNomsEtapes) - - def DefCmd(self): - if self.LBNouvCommande.selectedItem()== None : return - name=str(self.LBNouvCommande.selectedItem().text()) - if name==QString(" "): return - if name.find("GROUPE :")==0 : return - self.editor.init_modif() - new_node = self.node.append_child(name,'first') diff --git a/InterfaceQT/monSelectVal.py b/InterfaceQT/monSelectVal.py deleted file mode 100644 index d0f03f8e..00000000 --- a/InterfaceQT/monSelectVal.py +++ /dev/null @@ -1,87 +0,0 @@ -# -*- 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 -# Modules Eficas - -from desSelectVal import DSelVal -from qt import * - -# Import des panels - -class MonSelectVal(DSelVal): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,file,parent,name = None,fl = 0): - self.FonctPanel=parent - DSelVal.__init__(self,parent,name,Qt.WType_Dialog) - self.dictSepar={} - self.separateur=" " - self.texte=" " - self.textTraite="" - self.file=str(file) - self.readVal() - self.initVal() - - def readVal(self): - if self.file == "" : return - f = open(self.file, "rb") - self.texte = f.read() - f.close() - - def initVal(self): - self.TBtext.clear() - self.TBtext.setText(self.texte) - self.dictSepar["virgule"]="," - self.dictSepar["point-virgule"]=";" - self.dictSepar["espace"]=" " - - def SeparateurSelect(self,numero): - monBouton=self.BGSeparateur.find(numero) - self.separateur=self.dictSepar[str(monBouton.text())] - - def BImportSelPressed(self): - text=str(self.TBtext.selectedText()) - self.textTraite=text - if self.textTraite == "" : return - self.Traitement() - - def BImportToutPressed(self): - self.textTraite=self.texte - self.Traitement() - - def Traitement(self): - import string - if self.textTraite[-1]=="\n" : self.textTraite=self.textTraite[0:-1] - self.textTraite=string.replace(self.textTraite,"\n",self.separateur) - liste1=self.textTraite.split(self.separateur) - liste=[] - for val in liste1 : - if val != '' and val != ' ' and val != self.separateur : - val=str(val) - try : - val2=eval(val,{}) - liste.append(val) - except : - pass - self.FonctPanel.AjoutNValeur(liste) diff --git a/InterfaceQT/monUniqueASSDPanel.py b/InterfaceQT/monUniqueASSDPanel.py deleted file mode 100644 index a2280be3..00000000 --- a/InterfaceQT/monUniqueASSDPanel.py +++ /dev/null @@ -1,75 +0,0 @@ -# -*- 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 -import string,types,os - -# Modules Eficas -import prefs - -from qt import * - -from desUniqueASSD import DUnASSD -from qtCommun import QTPanel -from qtSaisie import SaisieValeur -from politiquesValidation import PolitiqueUnique - -# Import des panels - -class MonUniqueASSDPanel(DUnASSD,QTPanel,SaisieValeur): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - self.editor=parent - QTPanel.__init__(self,node,parent) - DUnASSD.__init__(self,parent,name,fl) - self.politique=PolitiqueUnique(node,parent) - self.InitListBoxASSD() - self.InitCommentaire() - - def BOkPressed(self): - self.ClicASSD() - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def ViewDoc(self): - QTPanel.ViewDoc(self) - - def InitCommentaire(self): - mc = self.node.item.get_definition() - try : - 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) - type = type + ' ou '+l - commentaire="Un objet de type "+type+" est attendu" - aideval=self.node.item.aide() - commentaire=commentaire +"\n"+ aideval - self.Commentaire.setText(QString(commentaire)) diff --git a/InterfaceQT/monUniqueBasePanel.py b/InterfaceQT/monUniqueBasePanel.py deleted file mode 100644 index 75c9eb1e..00000000 --- a/InterfaceQT/monUniqueBasePanel.py +++ /dev/null @@ -1,125 +0,0 @@ -# -*- 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 -import string,types,os - -# Modules Eficas -import prefs - -from qt import * - -from desUniqueBase import DUnBase -from qtCommun import QTPanel -from qtSaisie import SaisieValeur -from politiquesValidation import PolitiqueUnique - -# Import des panels - -class MonUniqueBasePanel(DUnBase,QTPanel,SaisieValeur): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - self.editor=parent - QTPanel.__init__(self,node,parent) - DUnBase.__init__(self,parent,name,fl) - self.politique=PolitiqueUnique(node,parent) - self.InitLineEditVal() - self.InitCommentaire() - self.detruitBouton() - - def ViewDoc(self): - QTPanel.ViewDoc(self) - - def detruitBouton(self): - mc = self.node.item.get_definition() - type = mc.type[0] - #if not('grma' in repr(type)): - #if not('grma' in repr(type)) or not(self.editor.salome) : - if not(('grma' in repr(type)) or ('grno' in repr(type))) or not(self.editor.salome) : - self.BSalome.close() - self.BView2D.close() - - def InitLineEditVal(self): - valeur=self.node.item.get_valeur() - valeurTexte=self.politique.GetValeurTexte(valeur) - if valeurTexte != None: - try : - maString=QString("").setNum(valeurTexte) - except : - maString=str(valeurTexte) - self.lineEditVal.setText(maString) - - - def InitCommentaire(self): - mc = self.node.item.get_definition() - d_aides = { 'TXM' : "Une chaîne de caractères est attendue", - 'R' : "Un réel est attendu", - 'I' : "Un entier est attendu"} - type = mc.type[0] - commentaire=d_aides.get(type,"Type de base inconnu") - aideval=self.node.item.aide() - commentaire=commentaire +"\n"+ aideval - self.Commentaire.setText(QString(commentaire)) - - def BOk2Pressed(self): - SaisieValeur.BOk2Pressed(self) - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def LEValeurPressed(self): - SaisieValeur.LEValeurPressed(self) - - def BParametresPressed(self): - QTPanel.BParametresPressed(self) - - def Ajout1Valeur(self,valeur): - SaisieValeur.LEValeurPressed(self,valeur) - - def BSalomePressed(self): - genea=self.node.item.get_genealogie() - kwType = None - for e in genea: - if "GROUP_NO" in e: kwType = "GROUP_NO" - if "GROUP_MA" in e: kwType = "GROUP_MA" - - selection, commentaire = self.editor.parent.appliEficas.selectGroupFromSalome(kwType,editor=self.editor) - if commentaire !="" : - self.Commentaire.setText(QString(commentaire)) - monTexte="" - if selection == [] : return - for geomElt in selection: - monTexte=geomElt+"," - monTexte= monTexte[0:-1] - self.LEValeur.setText(QString(monTexte)) - - def BView2DPressed(self): - valeur=self.LEValeur.text() - if valeur == QString("") : return - valeur = str(valeur) - if valeur : - ok, msgError = self.editor.parent.appliEficas.displayShape(valeur) - if not ok: - self.editor.parent.appli.affiche_infos(msgError) - diff --git a/InterfaceQT/monUniqueCompPanel.py b/InterfaceQT/monUniqueCompPanel.py deleted file mode 100644 index 46a85338..00000000 --- a/InterfaceQT/monUniqueCompPanel.py +++ /dev/null @@ -1,163 +0,0 @@ -# -*- 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 -import string,types,os,re - -# Modules Eficas -import prefs - -from qt import * - -from desUniqueComp import DUnComp -from qtCommun import QTPanel -from politiquesValidation import PolitiqueUnique - -# Import des panels - -#class MonUniqueCompPanel(DUnComp,QTPanel,SaisieValeur): -class MonUniqueCompPanel(DUnComp,QTPanel,PolitiqueUnique): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - QTPanel.__init__(self,node,parent) - DUnComp.__init__(self,parent,name,fl) - self.politique=PolitiqueUnique(node,parent) - self.InitLinesVal() - self.InitCommentaire() - - def InitLinesVal(self): - valeur=self.node.item.get_valeur() - if valeur == None or valeur == '' : return - if type(valeur) not in (types.ListType,types.TupleType) : - self.LEcomp.setText(str(valeur)) - else : - typ_cplx,x1,x2=valeur - self.LEReel.setText(str(x1)) - self.LEImag.setText(str(x2)) - if typ_cplx == "RI" : - self.buttonGroup1.setButton(1) - else : - self.buttonGroup1.setButton(0) - - - def LEcompRPressed(self) : - self.LEReel.clear() - self.LEImag.clear() - commentaire="expression valide" - valeur = str(self.LEcomp.text()) - d={} - try : - v=eval(valeur,d) - except : - commentaire="expression invalide" - self.editor.affiche_infos(commentaire) - return - try : - i=v.imag - except : - commentaire="expression n est pas de la forme a+bj" - self.editor.affiche_infos(commentaire) - - def LEReelRPressed(self): - self.LEcomp.clear() - commentaire="expression valide" - valeur = str(self.LEReel.text()) - try : - a=string.atof(valeur) - except : - commentaire="expression invalide" - self.editor.affiche_infos(commentaire) - - def LEImagRPressed(self): - self.LEcomp.clear() - commentaire="expression valide" - valeur = str(self.LEImag.text()) - try : - a=string.atof(valeur) - except : - commentaire="expression invalide" - self.editor.affiche_infos(commentaire) - - def BOkPressed(self): - if self.LEcomp.text()== "" : - valeur = self.getValeurAster() - else : - if self.LEReel.text() != "" or self.LEImag.text() != "" : - commentaire="entrer une seule valeur SVP" - self.editor.affiche_infos(commentaire) - return - valeur= self.getValeurComp() - self.politique.RecordValeur(valeur) - - def getValeurAster(self): - """ - Retourne le complexe saisi par l'utilisateur - """ - l=[] - if (self.buttonGroup1.selectedId() == 1 ) : - l.append("MP") - elif (self.buttonGroup1.selectedId() == 0) : - l.append("RI") - else : - commentaire="saisir le type de complexe" - self.editor.affiche_infos(commentaire) - return None - try : - l.append(string.atof(str(self.LEReel.text()))) - l.append(string.atof(str(self.LEImag.text()))) - except : - return None - return `tuple(l)` - - def getValeurComp(self): - commentaire="expression valide" - valeur = str(self.LEcomp.text()) - d={} - try : - v=eval(valeur,d) - except : - commentaire="expression invalide" - self.editor.affiche_infos(commentaire) - return None - try : - i=v.imag - except : - commentaire="expression n est pas de la forme a+bj" - self.editor.affiche_infos(commentaire) - return None - return v - - def InitCommentaire(self): - commentaire='Un complexe est attendu' - aideval=self.node.item.aide() - commentaire=commentaire +"\n"+ aideval - self.Commentaire.setText(QString(commentaire)) - - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def ViewDoc(self): - QTPanel.ViewDoc(self) - diff --git a/InterfaceQT/monUniqueIntoPanel.py b/InterfaceQT/monUniqueIntoPanel.py deleted file mode 100644 index 568410e2..00000000 --- a/InterfaceQT/monUniqueIntoPanel.py +++ /dev/null @@ -1,60 +0,0 @@ -# -*- 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 -import string,types,os - -# Modules Eficas -import prefs - -from qt import * - -from desUniqueInto import DUnIn -from qtCommun import QTPanel -from qtSaisie import SaisieValeur -from politiquesValidation import PolitiqueUnique - -# Import des panels - -class MonUniqueIntoPanel(DUnIn,QTPanel,SaisieValeur): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - QTPanel.__init__(self,node,parent) - DUnIn.__init__(self,parent,name,fl) - SaisieValeur.RemplitPanel(self) - self.politique=PolitiqueUnique(node,parent) - QObject.connect(self.listBoxVal, SIGNAL("doubleClicked(QListBoxItem*)" ), self.ClicValeur ) - - def ClicValeur(self): - SaisieValeur.ClicValeur(self) - - def BOkPressed(self): - SaisieValeur.BOkPressed(self) - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def ViewDoc(self): - QTPanel.ViewDoc(self) - diff --git a/InterfaceQT/monUniqueSDCOIntoPanel.py b/InterfaceQT/monUniqueSDCOIntoPanel.py deleted file mode 100644 index 0a54315b..00000000 --- a/InterfaceQT/monUniqueSDCOIntoPanel.py +++ /dev/null @@ -1,97 +0,0 @@ -# -*- 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 -import string,types,os - -# Modules Eficas -import prefs - -from qt import * - -from desUniqueSDCOInto import DUnSDCOInto -from qtCommun import QTPanel -from qtSaisie import SaisieSDCO -from politiquesValidation import PolitiqueUnique - -# Import des panels - -class MonUniqueSDCOIntoPanel(DUnSDCOInto,QTPanel,SaisieSDCO): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - QTPanel.__init__(self,node,parent) - DUnSDCOInto.__init__(self,parent,name,fl) - self.initLBSDCO() - - def initLBSDCO(self): - listeNomsSDCO = self.node.item.get_sd_avant_du_bon_type() - for aSDCO in listeNomsSDCO: - self.LBSDCO.insertItem( aSDCO) - valeur = self.node.item.get_valeur() - if valeur != "" and valeur != None : - self.LESDCO.setText(QString(valeur.nom)) - - - def LBSDCOReturnPressed(self): - """ - Teste si la valeur fournie par l'utilisateur est une valeur permise : - - si oui, l'enregistre - - si non, restaure l'ancienne valeur - """ - nomConcept=str(self.LBSDCO.currentText()) - self.LESDCO.clear() - self.editor.init_modif() - anc_val = self.node.item.get_valeur() - test_CO=self.node.item.is_CO(anc_val) - - valeur,validite=self.node.item.eval_valeur(nomConcept) - test = self.node.item.set_valeur(valeur) - if not test : - commentaire = "impossible d'évaluer : %s " %`valeur` - elif validite: - commentaire = "Valeur du mot-clé enregistrée" - if test_CO: - # il faut egalement propager la destruction de l'ancien concept - self.node.item.delete_valeur_co(valeur=anc_val) - self.node.item.object.etape.get_type_produit(force=1) - self.node.item.object.etape.parent.reset_context() - else : - commentaire = self.node.item.get_cr() - self.reset_old_valeur(anc_val,mess=mess) - self.editor.affiche_infos(commentaire) - self.Commentaire.setText(commentaire) - - def LESDCOReturnPressed(self) : - self.LBSDCO.clearSelection() - SaisieSDCO.LESDCOReturnPressed(self) - - def BOkPressed(self): - self.LESDCOReturnPressed() - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def ViewDoc(self): - QTPanel.ViewDoc(self) - diff --git a/InterfaceQT/monUniqueSDCOPanel.py b/InterfaceQT/monUniqueSDCOPanel.py deleted file mode 100644 index f2247ed1..00000000 --- a/InterfaceQT/monUniqueSDCOPanel.py +++ /dev/null @@ -1,67 +0,0 @@ -# -*- 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 -import string,types,os - -# Modules Eficas -import prefs - -from qt import * - -from desUniqueSDCO import DUnSDCO -from qtCommun import QTPanel -from qtSaisie import SaisieSDCO - -# Import des panels - -class MonUniqueSDCOPanel(DUnSDCO,QTPanel,SaisieSDCO): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def __init__(self,node, parent = None,name = None,fl = 0): - QTPanel.__init__(self,node,parent) - DUnSDCO.__init__(self,parent,name,fl) - valeur = self.node.item.get_valeur() - if valeur != "" and valeur != None : - self.LESDCO.setText(QString(valeur.nom)) - - def BOkPressed(self): - SaisieSDCO.LESDCOReturnPressed(self) - - def BSupPressed(self): - QTPanel.BSupPressed(self) - - def BOuiPressed(self): - self.Commentaire.setText("Aucun Objet de ce type n'est defini") - self.rbOui.setChecked(1) - - def LESDCOReturnPressed(self): - """ - Lit le nom donné par l'utilisateur au concept de type CO qui doit être - la valeur du MCS courant et stocke cette valeur - """ - SaisieSDCO.LESDCOReturnPressed(self) - - def ViewDoc(self): - QTPanel.ViewDoc(self) - diff --git a/InterfaceQT/panelsQT.py b/InterfaceQT/panelsQT.py deleted file mode 100644 index cc2125fe..00000000 --- a/InterfaceQT/panelsQT.py +++ /dev/null @@ -1,28 +0,0 @@ -# -*- coding: utf-8 -*- -import string -import os - -import traceback - -from qt import * -from qtCommun import QTPanel -from desInactif import DInactif - - -SEPARATEUR = '-'*30 - - -class PanelInactif( QTPanel, DInactif ): - def __init__(self,node,parent=None ): - DInactif.__init__(self,parent) - QTPanel.__init__(self,node,parent) - - -class NoPanel( QWidget ): - def __init__(self,parent = None,name = None,fl = 0): - QWidget.__init__(self,parent,name,fl) - self.textLabel = QLabel(self) - self.textLabel.setText(QString("PANNEAU A IMPLEMENTER")) - self.textLabel.setGeometry(QRect(130,150,219,17)) - self.resize(QSize(600,480).expandedTo(self.minimumSizeHint())) - diff --git a/InterfaceQT/politiquesValidation.py b/InterfaceQT/politiquesValidation.py deleted file mode 100644 index 65e9df18..00000000 --- a/InterfaceQT/politiquesValidation.py +++ /dev/null @@ -1,180 +0,0 @@ -# -*- 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 -import types - -from qt import * - - -#------------------ -class Validation : -#------------------ - def __init__(self,node,parent) : - self.node=node - self.parent=parent - - def TesteUneValeur(self,valeurentree): - valeur,validite=self.node.item.eval_valeur(valeurentree) - if not validite : - commentaire = "impossible d'évaluer : %s " %`valeurentree` - return valeur,validite,commentaire - - testtype,commentaire = self.node.item.object.verif_type(valeur) - if not testtype : - return valeur,0,commentaire - - valide=self.node.item.valide_item(valeur) - if type(valide) == types.TupleType: - validite,commentaire=valide - else : - validite=valide - commentaire=" " - - if not validite : - commentaire = "impossible d'évaluer : %s " %`valeurentree` - return valeur, validite, commentaire - -# ---------------------------------------------------------------------------------------- -# Méthodes utilisées pour la manipulation des items en notation scientifique -# a mettre au point -# ---------------------------------------------------------------------------------------- - def SetValeurTexte(self,texteValeur) : - try : - if "R" in self.node.item.object.definition.type: - if str(texteValeur)[0] != "'": - clef=eval(texteValeur) - if str(clef) != str(texteValeur) : - self.node.item.object.init_modif() - clefobj=self.node.item.object.GetNomConcept() - if not self.parent.dict_reels.has_key(clefobj): - self.parent.dict_reels[clefobj] = {} - self.parent.dict_reels[clefobj][clef]=texteValeur - self.parent.dict_reels[clefobj] - self.node.item.object.fin_modif() - except: - pass - - def AjoutDsDictReel(self,texteValeur): - try : - #if 1 : - if "R" in self.node.item.object.definition.type: - if str(texteValeur)[0] != "'": - clef=eval(texteValeur) - if str(clef) != str(texteValeur) : - clefobj=self.node.item.object.GetNomConcept() - if not self.parent.dict_reels.has_key(clefobj): - self.parent.dict_reels[clefobj] = {} - self.parent.dict_reels[clefobj][clef]=texteValeur - self.parent.dict_reels[clefobj] - except: - #else: - #print "pb ds try de AjoutDsDictReel" - pass - - def GetValeurTexte(self,valeur) : - valeurTexte=valeur - if "R" in self.node.item.object.definition.type: - clefobj=self.node.item.object.GetNomConcept() - if self.parent.dict_reels.has_key(clefobj): - if self.parent.dict_reels[clefobj].has_key(valeur): - valeurTexte=self.parent.dict_reels[clefobj][valeur] - return valeurTexte - -#------------------------------------ -class PolitiqueUnique(Validation) : -#------------------------------------ - """ - classe servant pour les entrees ne demandant qu un mot clef - """ - def __init__(self,node,parent): - Validation.__init__(self,node,parent) - - def RecordValeur(self,valeurentree): - if self.parent.modified == 'n' : self.parent.init_modif() - ancienne_val = self.node.item.get_valeur() - valeur,validite,commentaire =self.TesteUneValeur(valeurentree) - if validite : - validite=self.node.item.set_valeur(valeur) - if self.node.item.isvalid(): - commentaire = "Valeur du mot-clé enregistrée" - self.SetValeurTexte(str(valeurentree)) - else: - cr = self.node.item.get_cr() - commentaire = "Valeur du mot-clé non autorisée "+cr.get_mess_fatal() - self.node.item.set_valeur(ancienne_val) - return validite, commentaire - - -#------------------------------------- -class PolitiquePlusieurs (Validation): -#------------------------------------- - """ - classe servant pour les entrees ne demandant qu un mot clef - """ - def __init__(self,node,parent) : - self.node=node - self.parent=parent - - - def AjoutValeurs(self,listevaleur,index,listecourante): - listeRetour=[] - commentaire="Nouvelle valeur acceptée" - commentaire2="" - valide=1 - if listevaleur==None: return - if listevaleur=="": return - if not( type(listevaleur) in (types.ListType,types.TupleType)) : - listevaleur=tuple(listevaleur) - for valeur in listevaleur : - valeurScientifique=valeur - # On teste le type de la valeur - valide=self.node.item.valide_item(valeur) - if not valide : - try : - valeur,valide=self.node.item.eval_valeur(valeur) - valide,commentaire = self.node.item.object.verif_type(valeur) - except : - #return testtype,commentaire,"",listeRetour - pass - if not valide: - commentaire="Valeur "+str(valeur)+ " incorrecte : ajout à la liste refusé" - commentaire2=self.node.item.info_erreur_item() - return valide,commentaire,commentaire2,listeRetour - - # On valide la liste obtenue - encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante) - if not encorevalide : - commentaire2=self.node.item.info_erreur_liste() - # On traite le cas ou la liste n est pas valide pour un pb de cardinalite - min,max = self.node.item.GetMinMax() - if len(listecourante) + 1 >= max : - commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé" - return valide,commentaire,commentaire2,listeRetour - if len(listecourante) + 1 > min : - commentaire="" - return valide,commentaire,commentaire2,listeRetour - # On ajoute la valeur testee a la liste courante et a la liste acceptee - self.AjoutDsDictReel(valeurScientifique) - listecourante.insert(index,valeur) - index=index+1 - listeRetour.append(valeur) - - return valide,commentaire,commentaire2,listeRetour diff --git a/InterfaceQT/prefsQT.py b/InterfaceQT/prefsQT.py deleted file mode 100644 index ef1aa899..00000000 --- a/InterfaceQT/prefsQT.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== - -lang='fr' - diff --git a/InterfaceQT/qtCommun.py b/InterfaceQT/qtCommun.py deleted file mode 100644 index 7e5b13e5..00000000 --- a/InterfaceQT/qtCommun.py +++ /dev/null @@ -1,367 +0,0 @@ -# -*- 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 -import string,types,os -import traceback - -from qt import * -import prefsQT - -# Import des panels - -# ---------- # -class QTPanel: -# ---------- # - """ - Classe contenant les méthodes Qt communes a tous les panneaux droits - Tous les panneaux Mon...Panel héritent de cette classe - Gére plus précisement : - - l affichage de la doc - - le bouton Suppression (BSupPressed) - - la mutualisation de l affichage des regles - """ - def __init__(self,node, parent = None): - self.editor = parent - self.node = node - - def BSupPressed(self): - self.editor.init_modif() - self.node.delete() - - def ViewDoc(self) : - cle_doc = self.node.item.get_docu() - if cle_doc == None : - QMessageBox.information( self.editor, "Documentation Vide", \ - "Aucune documentation Aster n'est associée à ce noeud") - return - #cle_doc = string.replace(cle_doc,'.','') - #cle_doc = string.replace(cle_doc,'-','') - commande = self.editor.appliEficas.CONFIGURATION.exec_acrobat - try : - f=open(commande,"rb") - except : - texte="impossible de trouver la commande " + commande - QMessageBox.information( self.editor, "Lecteur PDF", texte) - return - nom_fichier = cle_doc - fichier = os.path.abspath(os.path.join(self.editor.CONFIGURATION.path_doc, - nom_fichier)) - try : - f=open(fichier,"rb") - except : - texte="impossible d'ouvrir " + fichier - QMessageBox.information( self.editor, "Documentation Vide", texte) - return - if os.name == 'nt': - os.spawnv(os.P_NOWAIT,commande,(commande,fichier,)) - elif os.name == 'posix': - script ="#!/usr/bin/sh \n%s %s&" %(commande,fichier) - pid = os.system(script) - - def BOkPressed(self): - """ Impossible d utiliser les vrais labels avec designer ?? """ - label=self.TWChoix.tabLabel(self.TWChoix.currentPage()) - if label==QString("Nouvelle Commande"): - self.DefCmd() - if label==QString("Nommer Concept"): - self.LENomConceptReturnPressed() - if label==QString("Ajouter Mot-Clef"): - self.DefMC() - if label==QString("Définition Formule"): - self.BOkPressedFormule() - if label==QString("Valeur Parametre"): - self.BOkParamPressed() - if label==QString("Fichier Include"): - self.BOkIncPressed() - if label==QString("Commentaire"): - self.TexteCommentaireEntre() - - def BParametresPressed(self): - liste=self.node.item.get_liste_param_possible() - from monListeParamPanel import MonListeParamPanel - MonListeParamPanel(liste=liste,parent=self).show() - - def AppelleBuildLBRegles(self): - listeRegles = self.node.item.get_regles() - listeNomsEtapes = self.node.item.get_mc_presents() - self.BuildLBRegles(listeRegles,listeNomsEtapes) - - - def BuildLBRegles(self,listeRegles,listeNomsEtapes): - if len(listeRegles) > 0: - for regle in listeRegles : - texteRegle=regle.gettext() - texteMauvais,test = regle.verif(listeNomsEtapes) - for ligne in texteRegle.split("\n") : - if ligne == "" : - self.LBRegles.insertItem(ligne) - continue - if ligne[0]=="\t" : - ligne=" "+ligne[1:] - if test : - self.LBRegles.insertItem(ligne) - else : - self.LBRegles.insertItem(itemColore(ligne)) - - -# ----------------------- # -class QTPanelTBW1(QTPanel): -# ----------------------- # - """ - Classe contenant les méthodes nécessaires a l onglet "Ajouter Mot-Clef" - hérite de QTPanel # Attention n appelle pas le __init__ - Gére plus précisement : - """ - def __init__(self,node, parent = None): - self.editor = parent - self.node = node - self.BuildLBMCPermis() - self.AppelleBuildLBRegles() - - def BuildLBMCPermis(self): - self.LBMCPermis.clear() - try : - QObject.disconnect(self.LBMCPermis,SIGNAL("doubleClicked(QListBoxItem*)"),self.DefMC) - except : - # normal pour la première fois qu on passe - # peut-etre inutile selon le connect ?? - pass - QObject.connect(self.LBMCPermis,SIGNAL("doubleClicked(QListBoxItem*)"),self.DefMC) - - jdc = self.node.item.get_jdc() - genea =self.node.item.get_genealogie() - liste_mc=self.node.item.get_liste_mc_ordonnee(genea,jdc.cata_ordonne_dico) - for aMc in liste_mc: - self.LBMCPermis.insertItem( aMc) - - - def DefMC(self): - """ On ajoute un mot-clé à la commande : subnode """ - if self.LBMCPermis.selectedItem() == None : return - name=str(self.LBMCPermis.selectedItem().text()) - self.editor.init_modif() - self.node.append_child(name) - -# ---------------------------- # -class QTPanelTBW2(QTPanel): -# ---------------------------- # - """ - Classe contenant les méthodes nécessaires a l onglet "Nouvelle Commande" - hérite de QTPanel # Attention n appelle pas le __init__ - Gére plus précisement : - """ - - def __init__(self,node, parent = None, racine = 0): - self.editor = parent - self.node = node - self.BuildLBNouvCommande() - self.LEFiltre.setFocus() - if racine == 1 : - self.AppelleBuildLBRegles() - else : - self.connect(self.TWChoix, SIGNAL("currentChanged(QWidget *)"), self.handleCurrentChanged) - - - def handleCurrentChanged(self): - label=self.TWChoix.tabLabel(self.TWChoix.currentPage()) - if label==QString("Nouvelle Commande"): - try : - self.LEFiltre.setFocus() - except : - pass - if label==QString("Nommer Concept"): - try : - self.LENomConcept.setFocus() - except : - pass - - def BuildLBNouvCommande(self): - self.LBNouvCommande.clear() - try : - QObject.disconnect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.DefCmd) - except : - # normal pour la première fois qu on passe - # peut-etre inutile selon le connect ?? - pass - - jdc=self.node.item.object.get_jdc_root() - if self.RBalpha.isOn(): - listeCmd = jdc.get_liste_cmd() - for aCmd in listeCmd: - self.LBNouvCommande.insertItem( aCmd ) - else : - listeGroupes,dictGroupes=jdc.get_groups() - for grp in listeGroupes: - if grp == "CACHE":continue - listeCmd=dictGroupes[grp] - texte="GROUPE : "+grp - self.LBNouvCommande.insertItem( texte ) - self.LBNouvCommande.insertItem( " " ) - for aCmd in listeCmd: - self.LBNouvCommande.insertItem( aCmd) - self.LBNouvCommande.insertItem( " " ) - QObject.connect( self.LBNouvCommande, SIGNAL("doubleClicked(QListBoxItem*)"),self.DefCmd ) - QObject.connect( self.LBNouvCommande, SIGNAL("returnPressed(QListBoxItem*)"),self.DefCmd ) - - def DefCmd(self): - if (self.editor.focusWidget())!=self.LBNouvCommande : - return - if self.LBNouvCommande.selectedItem()== 0 : return - if self.LBNouvCommande.selectedItem()== None : return - name=str(self.LBNouvCommande.selectedItem().text()) - if name==QString(" "): - return - if name.find("GROUPE :")==0 : - return - self.editor.init_modif() - new_node = self.node.append_brother(name,'after') - - - def LEFiltreTextChanged(self): - MonItem=self.LBNouvCommande.findItem(self.LEFiltre.text().upper(),Qt.Contains) - if MonItem != None : - self.LBNouvCommande.setCurrentItem(MonItem) - self.LBNouvCommande.setSelected(MonItem,1) - try : - QObject.disconnect(self.LBNouvCommande,SIGNAL("returnPressed(QListBoxItem*)"),self.DefCmd) - except : - pass - - def LEfiltreReturnPressed(self): - self.DefCmd() - - def BNextPressed(self): - MonItem=self.LBNouvCommande.findItem(self.LEFiltre.text().upper(),Qt.Contains) - if MonItem != None : - self.LBNouvCommande.setCurrentItem(self.LBNouvCommande.currentItem()+1) - self.LEFiltreTextChanged() - - def LBNouvCommandeClicked(self): - name=str(self.LBNouvCommande.currentText()) - - -# ---------------------------- # -class QTPanelTBW3(QTPanel): -# ---------------------------- # - - """ - Classe contenant les méthodes nécessaires a l onglet "Nommer Concept" - si non réentrant - hérite de QTPanel # Attention n appelle pas le __init__ - Gére plus précisement : - """ - - def __init__(self,node, parent = None): - self.editor = parent - self.node = node - type_sd = self.node.item.get_type_sd_prod() - nomConcept = self.node.item.GetText() - self.typeConcept.setText(type_sd) - self.LENomConcept.setText("") - self.LENomConcept.setText(nomConcept) - self.LENomConcept.setFocus() - - - - def LENomConceptReturnPressed(self): - """ - Nomme le concept SD retourne par l'etape - """ - nom = str(self.LENomConcept.text()) - nom = string.strip(nom) - - if nom == '' : return # si pas de nom, on ressort sans rien faire - - self.editor.init_modif() - test,mess = self.node.item.nomme_sd(nom) - self.editor.affiche_infos(mess) - -# ----------------------- # -class ViewText(QDialog): -# ----------------------- # - """ - Classe permettant la visualisation de texte - """ - def __init__(self,parent = None,name = None,modal = 0,fl = 0): - QDialog.__init__(self,parent,name,modal,fl) - - l1 = QVBoxLayout(self,11,6,) - self.view = QTextEdit(self) - self.view.setReadOnly(True) - - l2 = QHBoxLayout(None,0,6) - Horizontal_Spacing2 = QSpacerItem(220,20,QSizePolicy.Expanding,QSizePolicy.Minimum) - bclose= QPushButton(self) - bclose.setText(self.trUtf8( "Fermer")) - bsave= QPushButton(self) - bsave.setText(self.trUtf8( "Sauver")) - l2.addItem(Horizontal_Spacing2) - l2.addWidget(bsave) - l2.addWidget(bclose) - - l1.addWidget(self.view) - l1.addLayout(l2) - - self.resize( QSize(600,507).expandedTo(self.minimumSizeHint()) ) - self.connect( bclose,SIGNAL("clicked()"), self, SLOT("close()") ) - self.connect( bsave,SIGNAL("clicked()"), self.saveFile ) - - def setText(self, txt ): - self.view.setText(txt) - - def saveFile(self): - #recuperation du nom du fichier - fn = QFileDialog.getSaveFileName("", - self.trUtf8("All Files (*)"), self, None, - self.trUtf8("Save File"), '', 0) - if not fn.isNull(): - if QFileInfo(fn).exists(): - abort = QMessageBox.warning(self, - self.trUtf8("Sauvegarde Fichier"), - self.trUtf8("Le fichier %1 existe.") - .arg(fn), - self.trUtf8("&Remplacer"), - self.trUtf8("&Abandonner"), None, 1) - if abort: - return - fn = unicode(QDir.convertSeparators(fn)) - else: - return - - #ecriture du fichier - try: - f = open(fn, 'wb') - f.write(str(self.view.text())) - f.close() - return 1 - except IOError, why: - QMessageBox.critical(self, self.trUtf8('Save File'), - self.trUtf8('The file %1 could not be saved.
Reason: %2') - .arg(unicode(fn)).arg(str(why))) - return - - -#------------------------------- -class itemColore(QListBoxText): -#------------------------------- - def paint(self,p): - p.setPen(Qt.red) - QListBoxText.paint(self,p); diff --git a/InterfaceQT/qtEficas.py b/InterfaceQT/qtEficas.py deleted file mode 100644 index ca6972b0..00000000 --- a/InterfaceQT/qtEficas.py +++ /dev/null @@ -1,293 +0,0 @@ -# -*- coding: iso-8859-1 -*- - -import os, sys -repIni=os.path.dirname(os.path.abspath(__file__)) -INSTALLDIR=os.path.join(repIni,'..') -from Editeur import import_code - -from qt import * -from myMain import Eficas -from viewManager import MyTabview - -import configuration -from Editeur import session - -import utilIcons -utilIcons.initializeMimeSourceFactory() - - -class Appli(Eficas): - """ - Class implementing the main user interface. - """ - def __init__(self,code="ASTER",salome=0,parent=None): - """ - Constructor - - @param loc locale to be used by the UI (string) - @param splash reference to the splashscreen (UI.SplashScreen.SplashScreen) - """ - self.ihm="QT" - self.code=code - self.salome=salome - Eficas.__init__(self,parent,fl=Qt.WType_Dialog) - #Eficas.__init__(self,parent) - - if code == "ASTER" : - from Aster import prefs - import sys - sys.path.append(INSTALLDIR+"/Aster") - else : - import prefs - #try : - if 1 : - apply(Appli.__dict__[code],(self,)) - #except : - else: - pass - if hasattr(prefs,'encoding'): - import sys - reload(sys) - sys.setdefaultencoding(prefs.encoding) - del sys.setdefaultencoding - - self.top=self - self.CONFIGURATION = configuration.make_config(self,prefs.repIni) - self.CONFIGStyle = configuration.make_config_style(self,prefs.repIni) - - self.viewmanager = MyTabview(self, self) #MyTabview, MyWorkspace, Listspace - self.setCentralWidget(self.viewmanager) - - self.recentMenu = QPopupMenu(self.Fichier) - self.Fichier.insertItem(self.trUtf8('&Recents'), self.recentMenu,99,8) - self.connect(self.recentMenu,SIGNAL('aboutToShow()'),self.handleShowRecentMenu) - self.connect(self,PYSIGNAL('preferencesChanged'), - self.viewmanager.handlePreferencesChanged) - - self.connect(self.viewmanager,PYSIGNAL('lastEditorClosed'), - self.handleLastEditorClosed) - - self.connect(self.viewmanager,PYSIGNAL('editorOpened'), - self.handleEditorOpened) - - # Initialise the instance variables. - self.currentProg = None - self.isProg = 0 - self.utEditorOpen = 0 - self.utProjectOpen = 0 - - self.inDragDrop = 0 - self.setAcceptDrops(1) - self.ficPatrons={} - self.initPatrons() - self.monAssistant=QAssistantClient(QString(""), self.viewmanager) - - if self.salome : - from Editeur import session - self.ouvreFichiers() - - def OPENTURNS(self) : - self.MenuBar.removeItem(5) - self.MenuBar.removeItem(6) - self.MenuBar.removeItem(7) - - - def ouvreFichiers(self) : - # Ouverture des fichiers de commandes donnes sur la ligne de commande - cwd=os.getcwd() - self.dir=cwd - for study in session.d_env.studies: - os.chdir(cwd) - d=session.get_unit(study,self) - #print study["comm"] - self.viewmanager.handleOpen(fn=study["comm"],units=d) - - - def initPatrons(self) : - # Mise à jour du menu des fichiers recemment ouverts - from Editeur import listePatrons - self.listePatrons = listePatrons.listePatrons(self.code) - idx = 0 - for nomSsMenu in self.listePatrons.liste.keys(): - ssmenu = QPopupMenu(self.Patrons) - self.Patrons.insertItem(nomSsMenu, ssmenu) - for fichier in self.listePatrons.liste[nomSsMenu]: - id = ssmenu.insertItem(fichier, self.handleOpenPatrons) - self.ficPatrons[idx]=fichier - self.Patrons.setItemParameter(id,idx) - idx=idx+1 - - def traductionV7V8(self): - from gereTraduction import traduction - traduction(self.CONFIGURATION.rep_user,self.viewmanager,"V7V8") - - def traductionV8V9(self): - from gereTraduction import traduction - traduction(self.CONFIGURATION.rep_user,self.viewmanager,"V8V9") - - def version(self) : - from desVisu import DVisu - titre = "version " - monVisu=DVisu(parent=self.viewmanager,fl=Qt.WType_Dialog) - monVisu.setCaption(titre) - monVisu.TB.setText("Eficas V2.0") - monVisu.adjustSize() - monVisu.show() - - def aidePPal(self) : - maD=INSTALLDIR+"/AIDE/fichiers" - docsPath = QDir(maD).absPath() - self.monAssistant.showPage( QString("%1/index.html").arg(docsPath) ) - - def optionEditeur(self) : - from monOptionsEditeur import Options - monOption=Options(parent=self.viewmanager,fl=Qt.WType_Dialog,configuration=self.CONFIGURATION) - monOption.show() - - def optionPdf(self) : - from monOptionsPdf import OptionPdf - monOption=OptionPdf(parent=self.viewmanager,fl=Qt.WType_Dialog,configuration=self.CONFIGURATION) - monOption.show() - - def handleShowRecentMenu(self): - """ - Private method to set up recent files menu. - """ - idx = 0 - self.recentMenu.clear() - - for rp in self.viewmanager.recent: - id = self.recentMenu.insertItem('&%d. %s' % (idx+1, unicode(rp)), - self.handleOpenRecent) - self.recentMenu.setItemParameter(id,idx) - - idx = idx + 1 - - self.recentMenu.insertSeparator() - self.recentMenu.insertItem(self.trUtf8('&Clear'), self.handleClearRecent) - - def handleOpenPatrons(self, idx): - fichier=repIni+"/../Editeur/Patrons/"+self.code+"/"+self.ficPatrons[idx] - self.viewmanager.handleOpen(fn=fichier, patron = 1) - - - def handleOpenRecent(self, idx): - """ - Private method to open a file from the list of rencently opened files. - - @param idx index of the selected entry (int) - """ - self.viewmanager.handleOpen(unicode(self.viewmanager.recent[idx])) - - def handleClearRecent(self): - """ - Private method to clear the recent files menu. - """ - self.viewmanager.recent = QStringList() - - - def handleLastEditorClosed(self): - """ - Public slot to handle the lastEditorClosed signal. - """ - pass # CS_pbruno todo griser les parties k'il faut - - def handleEditorOpened(self, fn): - """ - Public slot to handle the editorOpened signal. - - @param fn filename of the opened editor (string) - """ - pass # CS_pbruno todo degriser les parties k'il faut - - - def fileNew(self): - self.viewmanager.newEditor() - - def fileOpen(self, prog=None): - self.viewmanager.handleOpen(prog) - - def fileNewView(self): - self.viewmanager.handleNewView() - - def fileSave(self): - self.viewmanager.saveCurrentEditor() - - def fileSaveAs(self): - self.viewmanager.saveAsCurrentEditor() - - def fileClose(self): - self.viewmanager.handleClose() - - def fileCloseAll(self): - self.viewmanager.handleCloseAll() - - def fileExit(self): - # On peut sortir sur Abort - if self.viewmanager.handleCloseAll() ==0 : - return - if self.salome : - self.close() - else : - qApp.closeAllWindows() - - def editCopy(self): - self.viewmanager.handleEditCopy() - - def editCut(self): - self.viewmanager.handleEditCut() - - def editPaste(self): - self.viewmanager.handleEditPaste() - - def jdcFichierSource(self): - self.viewmanager.handleViewJdcFichierSource() - - def jdcRapport(self): - self.viewmanager.handleViewJdcRapport() - - def visuJdcPy(self): - self.viewmanager.handlevisuJdcPy() - - def get_source(self,file): - from editor import JDCEditor - monEditeur=JDCEditor() - texte=monEditeur.get_source(file) - return texte - - def helpAbout(self): - import AIDE - AIDE.go3(parent=self) - - def NewInclude(self): - self.viewmanager.newIncludeEditor() - -if __name__=='__main__': - - # Modules Eficas - sys.path.append(INSTALLDIR+"/Aster") - from Aster import prefs - if hasattr(prefs,'encoding'): - # Hack pour changer le codage par defaut des strings - import sys - reload(sys) - sys.setdefaultencoding(prefs.encoding) - del sys.setdefaultencoding - # Fin hack - - from Editeur import import_code - from Editeur import session - - # Analyse des arguments de la ligne de commande - options=session.parse(sys.argv) - code=options.code - - app = QApplication(sys.argv) - mw = Appli() - app.setMainWidget(mw) - app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()")) - mw.ouvreFichiers() - mw.show() - - res = app.exec_loop() - sys.exit(res) diff --git a/InterfaceQT/qtSaisie.py b/InterfaceQT/qtSaisie.py deleted file mode 100644 index 938ff077..00000000 --- a/InterfaceQT/qtSaisie.py +++ /dev/null @@ -1,188 +0,0 @@ -# -*- 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 -import string,types,os -from qt import * - -# Import des panels - -class SaisieValeur: - """ - Classe contenant les méthodes communes aux panels - permettant de choisir des valeurs - """ - def __init__(self): - pass - - def InitListBoxASSD(self): - listeNomsSD = self.node.item.get_sd_avant_du_bon_type() - for aSD in listeNomsSD: - self.listBoxASSD.insertItem( aSD) - QObject.connect(self.listBoxASSD, SIGNAL("doubleClicked(QListBoxItem*)" ), self.ClicASSD ) - min,max = self.node.item.GetMinMax() - l= self.node.item.GetListeValeurs() - - if (min == 1 and min == max and len(listeNomsSD)==1 and (l==[] or l==None)): - if ('R' not in self.node.item.get_type()) : - self.listBoxASSD.setCurrentItem(0) - - - def BuildLBValeurs(self,politique=None): - self.LBValeurs.clear() - listeValeurs=self.node.item.GetListeValeurs() - for valeur in listeValeurs: - if politique : - self.LBValeurs.insertItem(str(self.politique.GetValeurTexte(valeur))) - else : - self.LBValeurs.insertItem(str(valeur)) - if listeValeurs != None and listeValeurs != [] : - self.LBValeurs.setCurrentItem(len(listeValeurs) - 1) - - - def RemplitPanel(self,listeDejaLa=[]): - self.listBoxVal.clear() - lChoix=self.node.item.get_liste_possible(listeDejaLa) - for valeur in lChoix : - self.listBoxVal.insertItem( str(valeur) ) - if len(lChoix) == 1 : - self.listBoxVal.setSelected(0,1) - - def ClicASSD(self): - if self.listBoxASSD.selectedItem()== None : return - valeurQstring=self.listBoxASSD.selectedItem().text() - commentaire = QString("Valeur selectionnée : ") - commentaire.append(valeurQstring) - self.Commentaire.setText(commentaire) - valeur=valeurQstring.latin1() - validite,commentaire=self.politique.RecordValeur(valeur) - self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) - - def ClicValeur(self): - if self.listBoxVal.selectedItem()== None : return - valeurQstring=self.listBoxVal.selectedItem().text() - valeur=valeurQstring.latin1() - validite,commentaire=self.politique.RecordValeur(valeur) - #self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) - - def BOkPressed(self): - if self.listBoxVal.selectedItem()==None : - commentaire = "Pas de valeur selectionnée" - self.Commentaire.setText(QString(commentaire)) - else : - self.ClicValeur() - - def BOk2Pressed(self): - if str(self.lineEditVal.text())== "" : - commentaire = "Pas de valeur entrée " - self.Commentaire.setText(QString(commentaire)) - else : - self.LEValeurPressed() - - def LEValeurPressed(self,valeur=None): - if valeur == None : - nouvelleValeur=str(self.lineEditVal.text()) - else : - self.lineEditVal.setText(QString(valeur.nom)) - nouvelleValeur=valeur - validite,commentaire=self.politique.RecordValeur(nouvelleValeur) - if commentaire != "" : - #self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) - - - def TraiteLEValeur(self,valeurTraitee=None) : - # lit la chaine entree dans le line edit - # et la tranforme en chaine de valeurs - # a traiter. renvoie eventuellement des complexes - listeValeurs=[] - if valeurTraitee == None : - valeurBrute=str(self.LEValeur.text()) - else : - valeurBrute=valeurTraitee - if valeurBrute == str("") : return listeValeurs,1,valeurBrute - try : - valeur=eval(valeurBrute,{}) - except : - valeur=valeurBrute - if type(valeur) in (types.ListType,types.TupleType) : - 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]]) - listeValeurs.append(t) - indice=indice+3 - except : - commentaire = "Veuillez entrer le complexe sous forme aster ou sous forme python" - self.editor.affiche_infos(commentaire) - return listeValeurs,0,valeurBrute - - - else : # ce n'est pas un tuple à la mode aster - - listeValeurs.append(v) - indice = indice + 1 - - else: # on n'attend pas un complexe - listeValeurs.append(v) - indice=indice+1 - elif type(valeur) == types.StringType: - listeValeurs=valeur.split(',') - else: - listeValeurs.append(valeur) - - return listeValeurs,1,valeurBrute - - -class SaisieSDCO : - def __init__(self): - pass - - def LESDCOReturnPressed(self): - """ - Lit le nom donné par l'utilisateur au concept de type CO qui doit être - la valeur du MCS courant et stocke cette valeur - """ - self.editor.init_modif() - anc_val = self.node.item.get_valeur() - if anc_val != None: - # il faut egalement propager la destruction de l'ancien concept - self.node.item.delete_valeur_co(valeur=anc_val) - # et on force le recalcul des concepts de sortie de l'etape - self.node.item.object.etape.get_type_produit(force=1) - # et le recalcul du contexte - self.node.item.object.etape.parent.reset_context() - nomConcept = str(self.LESDCO.text()) - if nomConcept == "" : return - - test,commentaire=self.node.item.set_valeur_co(nomConcept) - if test: - commentaire="Valeur du mot-clé enregistree" - self.node.update_node_valid() - else : - cr = self.node.item.get_cr() - commentaire = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal() - self.node.item.set_valeur_co(anc_val) - self.Commentaire.setText(QString(commentaire)) diff --git a/InterfaceQT/readercata.py b/InterfaceQT/readercata.py deleted file mode 100644 index ffeb8273..00000000 --- a/InterfaceQT/readercata.py +++ /dev/null @@ -1,417 +0,0 @@ -# -*- 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 sert a lire un catalogue et a construire - un objet CataItem pour Eficas. - Il s'appuie sur la classe READERCATA -""" -# Modules Python -import time -import os,sys,py_compile -import traceback -import cPickle -import re - -# Modules Eficas -import prefs -from Noyau.N_CR import CR -from Editeur.utils import init_rep_cata_dev - -from Editeur import analyse_catalogue -from Editeur import autre_analyse_cata -from Editeur import uiinfo -from monChoixCata import MonChoixCata - -from qt import * - -version="16" - -class READERCATA: - - def __init__(self,appli,parent): - self.appli=appli - self.parent=parent - self.code=self.appli.code - self.appli.format_fichier='python' - self.appli.appliEficas.format_fichier='python' - self.version_code=self.appli.version_code - self.version_cata=None - self.fic_cata=None - self.OpenCata() - self.cataitem=None - - def OpenCata(self): - """ - Ouvre le catalogue standard du code courant, cad le catalogue présent - dans le répertoire Cata - """ - message1 = "Compilation des fichiers Eficas \n\n Veuillez patienter ..." - self.configure_barre(4) - - liste_cata_possibles=[] - for catalogue in self.appli.CONFIGURATION.catalogues: - if catalogue[0] == self.code : - liste_cata_possibles.append(catalogue) - - if len(liste_cata_possibles)==0: - QMessageBox.critical( self.parent, "Import du catalogue","Pas de catalogue defini pour le code %s" % self.code) - self.appli.parent.ui.close() - sys.exit(1) - - if self.version_code is not None: - # La version a ete fixee - for cata in liste_cata_possibles: - if self.version_code == cata[1]: - self.fic_cata = cata[2] - self.appli.format_fichier=cata[3] - self.appli.appliEficas.format_fichier=cata[3] - elif len(liste_cata_possibles)==1: - self.fic_cata = liste_cata_possibles[0][2] - self.version_code = liste_cata_possibles[0][1] - self.appli.format_fichier=liste_cata_possibles[0][3] - self.appli.appliEficas.format_fichier=liste_cata_possibles[0][3] - lab=QString("Eficas V1.") - lab+=QString(version) - lab+=QString(" pour ") - lab+=QString(self.code) - lab+=QString(" avec le catalogue ") - lab+=self.version_code - try : - # souci pour les includes - self.appli.parent.ui.setCaption(lab) - except : - pass - #qApp.mainWidget().setCaption(lab) - else: - # plusieurs catalogues sont disponibles : il faut demander a l'utilisateur - # lequel il veut utiliser ... - self.ask_choix_catalogue() - - if self.fic_cata == None : - print "Pas de catalogue pour code %s, version %s" %(self.code,self.version_code) - sys.exit(0) - - self.determineMater() - - - # détermination de fic_cata_c et fic_cata_p - self.fic_cata_c = self.fic_cata + 'c' - self.fic_cata_p = os.path.splitext(self.fic_cata)[0]+'_pickled.py' - - # import du catalogue - self.cata = self.import_cata(self.fic_cata) - self.update_barre() - if not self.cata : - QMessageBox.critical( self.parent, "Import du catalogue","Impossible d'importer le catalogue %s" %self.fic_cata) - self.appli.parent.ui.close() - sys.exit(1) - # - # analyse du catalogue (ordre des mots-clés) - # - # Retrouve_Ordre_Cata_Standard fait une analyse textuelle du catalogue - # remplacé par Retrouve_Ordre_Cata_Standard_autre qui utilise une numerotation - # des mots clés a la création - self.Retrouve_Ordre_Cata_Standard_autre() - self.update_barre() - - # - # analyse des données liées a  l'IHM : UIinfo - # - uiinfo.traite_UIinfo(self.cata) - self.update_barre() - - # - # traitement des clefs documentaires - # - self.traite_clefs_documentaires() - - # chargement et analyse des catalogues développeur (le cas échéant) - # - if self.appli.CONFIGURATION.isdeveloppeur == 'OUI' : - init_rep_cata_dev(self.fic_cata,self.appli.CONFIGURATION.path_cata_dev) - fic_cata_dev = os.path.join(self.appli.CONFIGURATION.path_cata_dev,'cata_developpeur.py') - if os.path.isfile(fic_cata_dev): - # il y a bien un catalogue développeur : il faut récupérer le module_object associé ... - test = self.compile_cata(fic_cata_dev,fic_cata_dev+'c') - if not test : - showinfo("Compilation catalogue développeur", - "Erreur dans la compilation du catalogue développeur") - self.cata = (self.cata,) - else: - self.cata_dev =self.import_cata(fic_cata_dev) - #self.Retrouve_Ordre_Cata_Developpeur() - self.Retrouve_Ordre_Cata_Developpeur_autre() - self.cata = (self.cata,self.cata_dev) - else: - self.cata = (self.cata,) - else: - self.cata = (self.cata,) - titreSuite=" avec le catalogue " + os.path.basename(self.fic_cata) - titre=self.appli.titre+titreSuite - if self.appli.top: - self.appli.top.title(titre) - self.appli.titre=titre - - def determineMater(self) : - # Determinination du repertoire materiau - v_codeSansPoint=self.version_code - v_codeSansPoint=re.sub("\.","",v_codeSansPoint) - chaine="rep_mat_"+v_codeSansPoint - if hasattr(self.appli.CONFIGURATION,chaine): - a=getattr(self.appli.CONFIGURATION,chaine) - else : - try : - a=self.appli.CONFIGURATION.dRepMat[self.version_code] - except : - if self.code == "ASTER" : - print "Probleme avec le repertoire materiau" - a='.' - self.appli.CONFIGURATION.rep_mat=a - - def import_cata(self,cata): - """ - Réalise l'import du catalogue dont le chemin d'acca¨s est donné par cata - """ - nom_cata = os.path.splitext(os.path.basename(cata))[0] - rep_cata = os.path.dirname(cata) - sys.path[:0] = [rep_cata] - try : - o=__import__(nom_cata) - return o - except Exception,e: - traceback.print_exc() - return 0 - - def Retrouve_Ordre_Cata_Standard_autre(self): - """ - Construit une structure de données dans le catalogue qui permet - a  EFICAS de retrouver l'ordre des mots-clés dans le texte du catalogue. - Pour chaque entité du catlogue on crée une liste de nom ordre_mc qui - contient le nom des mots clés dans le bon ordre - """ - self.cata_ordonne_dico,self.appli.liste_simp_reel=autre_analyse_cata.analyse_catalogue(self.cata) - - def Retrouve_Ordre_Cata_Standard(self): - """ - Retrouve l'ordre des mots-clés dans le catalogue, cad : - - si ce dernier a été modifié, relance l'analyse du catalogue pour déterminer - l'ordre des mots-clés dans le catalogue - - s'il n'a pas été modifié, relie le fichier pickle - """ - time1 = os.path.getmtime(self.fic_cata) - try : - time2 = os.path.getmtime(self.fic_cata_p) - except: - time2 = 0 - if time2 > time1 : - # l'objet catalogue n'a pas été modifié depuis le dernier "pickle" - self.Get_Ordre_Cata() - else : - # le catalogue a été modifié depuis le dernier "pickle" : - # il faut retrouver l'ordre du catalogue et refaire pickle - self.Get_Ordre_Cata(mode='cata') - self.appli.affiche_infos("Catalogue standard chargé") - - def Retrouve_Ordre_Cata_Developpeur(self): - """ - Retrouve l'ordre des mots-clés dans le catalogue, cad : - - si ce dernier a été modifié, relance l'analyse du catalogue pour déterminer - l'ordre des mots-clés dans le catalogue - - s'il n'a pas été modifié, relie le fichier pickle - """ - if self.code != 'ASTER' : return - fic_cata = os.path.join(self.appli.CONFIGURATION.path_cata_dev,'cata_developpeur.py') - message="Chargement catalogue développeur présent dans :\n %s..." % self.appli.CONFIGURATION.path_cata_dev - cata_dev_ordonne = analyse_cata.analyse_catalogue(self,self.fic_cata) - self.cata_dev_ordonne_cr = cata_dev_ordonne.cr - cata_dev_ordonne_dico = cata_dev_ordonne.entites - self.cata_ordonne_dico.update(cata_dev_ordonne_dico) - self.appli.affiche_infos(" catalogue(s) développeur(s) chargé(s)" ) - - def Retrouve_Ordre_Cata_Developpeur_autre(self): - """ - Retrouve l'ordre des mots-clés dans le catalogue, cad : - - si ce dernier a été modifié, relance l'analyse du catalogue pour déterminer - l'ordre des mots-clés dans le catalogue - - s'il n'a pas été modifié, relie le fichier pickle - """ - if self.code != 'ASTER' : return - message="Chargement catalogue développeur présent dans :\n %s..." % self.appli.CONFIGURATION.path_cata_dev - cata_dev_ordonne_dico,self.appli.liste_simp_reel=autre_analyse_cata.analyse_catalogue(self.cata) - self.cata_ordonne_dico.update(cata_dev_ordonne_dico) - self.appli.affiche_infos(" catalogue(s) développeur(s) chargé(s)" ) - - def Get_Ordre_Cata(self,mode='pickle'): - """ - Retrouve l'ordre du catalogue : - - mode='pickle ': tente de relire le fichier pickle et sinon lance l'analyse du catalogue - - mode='cata' : force l'analyse du catalogue directement sans relire le pickle - """ - if mode == 'pickle' : - try: - f = open(self.fic_cata_p) - u = cPickle.Unpickler(f) - self.cata_ordonne_dico = u.load() - f.close() - except : - # on peut ne pas arriver a  relire le fichier pickle s'il a été altéré - # ou (le plus probable) s'il a été créé sous un autre OS - self.Get_Ordre_Cata(mode='cata') - elif mode == 'cata': - cata_ordonne = analyse_catalogue.analyse_catalogue(self,self.fic_cata) - self.cata_ordonne_cr = cata_ordonne.cr - self.cata_ordonne_dico = cata_ordonne.entites - f = open(self.fic_cata_p,'w+') - p = cPickle.Pickler(f) - p.dump(self.cata_ordonne_dico) - f.close() - else : - raise Exception("Appel a  un mode inconnu de Get_Ordre_Cata : %s" % mode) - return - - def ask_choix_catalogue(self): - """ - Ouvre une fenetre de sélection du catalogue dans le cas oa¹ plusieurs - ont été définis dans Accas/editeur.ini - """ - # construction du dictionnaire et de la liste des catalogues - self.dico_catalogues = {} - defaut = None - for catalogue in self.appli.CONFIGURATION.catalogues: - if catalogue[0] == self.code : - self.dico_catalogues[catalogue[1]] = catalogue - if len(catalogue) == 5 : - if catalogue[4]=='defaut' : defaut = catalogue[1] - liste_choix = self.dico_catalogues.keys() - liste_choix.sort() - - lab=QString("Eficas V1.") - lab+=QString(version) - lab+=QString(" pour ") - lab+=QString(self.code) - lab+=QString(" avec le catalogue ") - - # teste si plusieurs catalogues ou non - if len(liste_choix) == 0: - QMessageBox.critical( self.parent, "", "Aucun catalogue déclaré pour %s" %self.code) - self.appli.parent.ui.close() - sys.exit(1) - - # création d'une boite de dialogue modale - widgetChoix=MonChoixCata(liste_choix,self, self.parent, "", True ) - ret=widgetChoix.exec_loop() - - lab=QString("Eficas V1.") - lab+=QString(version) - lab+=QString(" pour ") - lab+=QString(self.code) - lab+=QString(" avec le catalogue ") - if ret == QDialog.Accepted: - self.version_cata=str(self.version_cata) - self.fic_cata = self.dico_catalogues[self.version_cata][2] - self.version_code = self.version_cata - self.appli.format_fichier = self.dico_catalogues[self.version_cata][3] - self.appli.appliEficas.format_fichier = self.dico_catalogues[self.version_cata][3] - lab+=self.version_cata - self.appli.parent.ui.setCaption(lab) - #qApp.mainWidget().setCaption(lab) - else : - sys.exit(0) - - - def compile_cata(self,cata,catac): - """ - Teste si le catalogue a bien besoin d'etre recompilé et si oui, le compile et - affiche un message dans le splash . Retourne 1 si la compilation s'est bien déroulée, - 0 sinon. - """ - time1 = os.path.getmtime(cata) - try: - time2 = os.path.getmtime(catac) - except: - time2 = 0 - if time1 > time2: - try: - # le catalogue doit etre recompilé avant d'etre importé - if self.appli.test == 0 : - splash._splash.configure(text="Compilation du catalogue\nCela peut prendre plusieurs secondes ...") - py_compile.compile(cata) - except: - return 0 - return 1 - - -#-------------------------------------------------------------------------------- -# Méthodes concernant la barre de progression lors de l'analyse du catalogue -#-------------------------------------------------------------------------------- - - def configure_barre(self,nbcommandes): - """ Configure la barre de progression en lui passant comme parama¨tre le - nombre de commandes du catalogue qui lui sert a  déterminer la longueur de son incrément """ - try: - if self.appli.test == 0 : - splash._splash.configure(barre='oui',ratio = nbcommandes) - except: - pass - - def update_barre(self): - """ Update la position de la barre de progression : la fait progresser de son incrément """ - try: - if self.appli.test == 0 : - splash._splash.update_barre() - except: - pass - - def visuCRCATA(self): - """ - Méthode permettant l'affichage du rapport de validation - """ - cr = CR( debut = "Début rapport de validation du catalogue", - fin = "Fin rapport de validation du catalogue") - titre="rapport de validation du catalogue" - if hasattr(self,'cata_ordonne_cr') : - cr.add(self.cata_ordonne_cr) - if hasattr(self,'cata_dev_ordonne_cr') : - cr.add(self.cata_dev_ordonne_cr) - for cata in self.cata: - if hasattr(cata,'JdC'): - cr.add(cata.JdC.report()) - texte_cr = str(cr) - self.visu_texte_cr = Fenetre(self.appli,titre=titre,texte=texte_cr) - - - def traite_clefs_documentaires(self): - try: - self.fic_cata_clef=os.path.splitext(self.fic_cata_c)[0]+'_clefs_docu' - f=open(self.fic_cata_clef) - except: - #print "Pas de fichier associé contenant des clefs documentaires" - return - - dict_clef_docu={} - for l in f.readlines(): - clef=l.split(':')[0] - docu=l.split(':')[1] - docu=docu[0:-1] - dict_clef_docu[clef]=docu - for oper in self.cata.JdC.commandes: - if dict_clef_docu.has_key(oper.nom): - oper.docu=dict_clef_docu[oper.nom] diff --git a/InterfaceQT/typeNode.py b/InterfaceQT/typeNode.py deleted file mode 100644 index 53d3f54c..00000000 --- a/InterfaceQT/typeNode.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -from qt import * - -#---------------------------# -class PopUpMenuNodePartiel : -#---------------------------# - def createPopUpMenu(self): - #menu - self.menu = QPopupMenu(self.tree) - - #ss-menu Comment: - self.commentMenu = QPopupMenu( self.menu ) - self.menu.insertItem( qApp.translate('Browser','Commentaire'), self.commentMenu ) - self.commentMenu.insertItem( 'après', self.addCommentAfter ) - self.commentMenu.insertItem( 'avant', self.addCommentBefore ) - - #ss-menu Parameters: - self.parametersMenu = QPopupMenu( self.menu ) - self.parametersMenu.insertItem( 'après', self.addParametersAfter ) - self.parametersMenu.insertItem( 'avant', self.addParametersBefore ) - - #items du menu - self.menu.insertItem( qApp.translate('Browser','Supprimer'), self.delete ) - self.menu.insertItem( qApp.translate('Browser','Parametres'), self.parametersMenu ) - - - def addCommentAfter(self): - """ - """ - self.addComment() - - def addCommentBefore(self): - """ - """ - self.addComment(False) - - def addParametersAfter(self): - """ - """ - self.addParameters() - - def addParametersBefore(self): - """ - """ - self.addParameters(False) - - -#-----------------------------------------# -class PopUpMenuNode(PopUpMenuNodePartiel) : -#-----------------------------------------# - def createPopUpMenu(self): - PopUpMenuNodePartiel.createPopUpMenu(self) - self.commentMenu.insertItem( 'ce noeud', self.commentIt ) diff --git a/InterfaceQT/utilIcons.py b/InterfaceQT/utilIcons.py deleted file mode 100644 index d52fbc50..00000000 --- a/InterfaceQT/utilIcons.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- - -from qt import QPixmap -import os - -class PixmapCache: - """ - Class implementing a pixmap cache for icons. - """ - def __init__(self): - """ - Constructor - """ - self.pixmapCache = {} - - def getPixmap(self, key): - """ - Public method to retrieve a pixmap. - - @param key name of the wanted pixmap (string) - @return the requested pixmap (QPixmap) - """ - try: - return self.pixmapCache[key] - except KeyError: - self.pixmapCache[key] = QPixmap.fromMimeSource(key) - return self.pixmapCache[key] - -pixCache = PixmapCache() - -def getPixmap(key, cache = pixCache): - """ - Module function to retrieve a pixmap. - - @param key name of the wanted pixmap (string) - @return the requested pixmap (QPixmap) - """ - return cache.getPixmap(key) - - - -from qt import QMimeSourceFactory - -def initializeMimeSourceFactory(): - """ - Function to initialize the default mime source factory. - - """ - defaultFactory = QMimeSourceFactory.defaultFactory() - repini=os.path.dirname(os.path.abspath(__file__)) - defaultFactory.addFilePath(repini+"/../Editeur/icons") #CS_pbruno todo (config) - diff --git a/InterfaceQT/viewManager.py b/InterfaceQT/viewManager.py deleted file mode 100644 index 01938695..00000000 --- a/InterfaceQT/viewManager.py +++ /dev/null @@ -1,2553 +0,0 @@ -# -*- 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 -from InterfaceQT import utilIcons -from qt import * - - -##fonctions utilitaires -def normabspath(path): - """ - Function returning a normalized, absolute path. - - @param path file path (string) - @return absolute, normalized path (string) - """ - return os.path.abspath(path) - - -def samepath(f1, f2): - """ - Function to compare two paths. - - @param f1 first path for the compare (string) - @param f2 second path for the compare (string) - @return flag indicating whether the two paths represent the - same path on disk. - """ - if f1 is None or f2 is None: - return 0 - - if normcasepath(f1) == normcasepath(f2): - return 1 - - return 0 - -def normcasepath(path): - """ - Function returning a path, that is normalized with respect to its case and references. - - @param path file path (string) - @return case normalized path (string) - """ - return os.path.normcase(os.path.normpath(path)) - - - - -class ViewManager: - """ - Base class inherited by all specific viewmanager classes. - - It defines the interface to be implemented by specific - viewmanager classes and all common methods. - - @signal lastEditorClosed emitted after the last editor window was closed - @signal editorOpened(string) emitted after an editor window was opened - @signal editorSaved(string) emitted after an editor window was saved - @signal checkActions(editor) emitted when some actions should be checked - for their status - @signal cursorChanged(editor) emitted after the cursor position of the active - window has changed - @signal breakpointToggled(editor) emitted when a breakpoint is toggled. - @signal bookmarkToggled(editor) emitted when a bookmark is toggled. - """ - def __init__(self, ui ): - """ - Constructor - - @param ui reference to the main user interface - @param dbs reference to the debug server object - """ - # initialize the instance variables - self.ui = ui - self.appliEficas = ui - self.editors = [] - self.doubles = {} - self.currentEditor = None - self.untitledCount = 0 - self.srHistory = {"search" : QStringList(), "replace" : QStringList()} - self.editorsCheckFocusIn = 1 - self.recent = QStringList() - - - # initialize the central store for api information (used by - # autocompletion and calltips) - self.apis = {} - self.initFileFilters() - - - def initFileFilters(self): - """ - Private method to initialize the lists of supported filename filters. - """ - self.fileFiltersString = self.trUtf8(\ - 'Python Files (*.py);;' - 'Aster Files (*.com*);;' - 'Pyrex Files (*.pyx);;' - 'Quixote Template Files (*.ptl);;' - 'IDL Files (*.idl);;' - 'C Files (*.h *.c);;' - 'C++ Files (*.h *.hpp *.hh *.cxx *.cpp *.cc);;' - 'C# Files (*.cs);;' - 'HTML Files (*.html *.htm *.asp *.shtml *.css);;' - 'PHP Files (*.php *.php3 *.php4 *.php5 *.phtml);;' - 'XML Files (*.xml *.xsl *.xslt *.dtd);;' - 'Java Files (*.java);;' - 'JavaScript Files (*.js);;' - 'SQL Files (*.sql);;' - 'Docbook Files (*.docbook);;' - 'Perl Files (*.pl *.pm *.ph);;' - 'Shell Files (*.sh);;' - 'Aster Files (*.com*);;' - 'All Files (*)') - - fileFilters = QStringList.split(';;', self.fileFiltersString) - - self.ext2Filter = {} - for fileFilter in fileFilters: - extensions = QStringList.split('*', fileFilter) - for extension in extensions[1:]: - extension = unicode(extension).strip().replace(')', '') - if extension: - self.ext2Filter[extension] = unicode(fileFilter) - - - - ##################################################################### - ## methods above need to be implemented by a subclass - ##################################################################### - - def canSplit(self): - """ - public method to signal if splitting of the view is available. - - @return flag indicating splitting of the view is available. - """ - return 0 - - def addSplit(self): - """ - Public method used to split the current view. - """ - pass - - def removeSplit(self): - """ - Public method used to remove the current split view. - - @return Flag indicating successful deletion - """ - return 0 - - def setSplitOrientation(self, orientation): - """ - Public method used to set the orientation of the split view. - - @param orientation orientation of the split - (QSplitter.Horizontal or QSplitter.Vertical) - """ - pass - - def eventFilter(self, object, event): - """ - Private method called to filter an event. - - @param object object, that generated the event (QObject) - @param event the event, that was generated by object (QEvent) - @return flag indicating if event was filtered out - """ - return 0 - - def focusInEvent(self, event): - """ - Public method called when the viewmanager receives focus. - - @param event the event object (QFocusEvent) - """ - self.editorActGrp.setEnabled(1) - - def focusOutEvent(self, event): - """ - Public method called when the viewmanager loses focus. - - @param event the event object (QFocusEvent) - """ - self.editorActGrp.setEnabled(0) - - - def initEditMenu(self): - """ - Public method to create the Edit menu - - @return the generated menu - """ - menu = QPopupMenu(self.ui) - menu.insertTearOffHandle() - self.undoAct.addTo(menu) - self.redoAct.addTo(menu) - self.revertAct.addTo(menu) - menu.insertSeparator() - self.cutAct.addTo(menu) - self.copyAct.addTo(menu) - self.pasteAct.addTo(menu) - self.deleteAct.addTo(menu) - menu.insertSeparator() - self.indentAct.addTo(menu) - self.unindentAct.addTo(menu) - menu.insertSeparator() - self.commentAct.addTo(menu) - self.uncommentAct.addTo(menu) - self.streamCommentAct.addTo(menu) - self.boxCommentAct.addTo(menu) - menu.insertSeparator() - self.autoCompleteAct.addTo(menu) - self.autoCompleteFromDocAct.addTo(menu) - self.autoCompleteFromAPIsAct.addTo(menu) - menu.insertSeparator() - self.searchAct.addTo(menu) - self.searchAgainAct.addTo(menu) - self.replaceAct.addTo(menu) - menu.insertSeparator() - self.searchFilesAct.addTo(menu) - menu.insertSeparator() - self.gotoAct.addTo(menu) - self.gotoBraceAct.addTo(menu) - menu.insertSeparator() - self.selectBraceAct.addTo(menu) - self.selectAllAct.addTo(menu) - self.deselectAllAct.addTo(menu) - menu.insertSeparator() - self.shortenEmptyAct.addTo(menu) - self.convertEOLAct.addTo(menu) - - return menu - - def initEditToolbar(self): - """ - Public method to create the Edit toolbar - - @return the generated toolbar - """ - tb = QToolBar(self.ui) - self.undoAct.addTo(tb) - self.redoAct.addTo(tb) - tb.addSeparator() - self.cutAct.addTo(tb) - self.copyAct.addTo(tb) - self.pasteAct.addTo(tb) - self.deleteAct.addTo(tb) - tb.addSeparator() - self.indentAct.addTo(tb) - self.unindentAct.addTo(tb) - tb.addSeparator() - self.commentAct.addTo(tb) - self.uncommentAct.addTo(tb) - - return tb - - ################################################################## - ## Initialize the search related actions, search menu and toolbar - ################################################################## - - def initSearchActions(self): - """ - Private method defining the user interface actions for the search commands. - """ - self.searchActGrp = QActionGroup(self) - - self.searchAct = QAction(self.trUtf8('Search'), - QIconSet(utilIcons.getPixmap("find.png")), - self.trUtf8('&Search...'), - QKeySequence(self.trUtf8("CTRL+F","Search|Search")), - self.searchActGrp) - self.searchAct.setStatusTip(self.trUtf8('Search for a text')) - self.searchAct.setWhatsThis(self.trUtf8( - """Search""" - """

Search for some text in the current editor. A""" - """ dialog is shown to enter the searchtext and options""" - """ for the search.

""" - )) - self.connect(self.searchAct,SIGNAL('activated()'),self.handleSearch) - self.searchActions.append(self.searchAct) - - self.searchAgainAct = QAction(self.trUtf8('Search again'), - QIconSet(utilIcons.getPixmap("findNext.png")), - self.trUtf8('Search &again'), - Qt.Key_F3,self.searchActGrp) - self.searchAgainAct.setStatusTip(self.trUtf8('Search again for text')) - self.searchAgainAct.setWhatsThis(self.trUtf8( - """Search again""" - """

Search again for some text in the current editor.""" - """ The previously entered searchtext and options are reused.

""" - )) - self.connect(self.searchAgainAct,SIGNAL('activated()'),self.searchDlg.handleFindNext) - self.searchActions.append(self.searchAgainAct) - - self.replaceAct = QAction(self.trUtf8('Replace'), - self.trUtf8('&Replace...'), - QKeySequence(self.trUtf8("CTRL+R","Search|Replace")), - self.searchActGrp) - self.replaceAct.setStatusTip(self.trUtf8('Replace some text')) - self.replaceAct.setWhatsThis(self.trUtf8( - """Replace""" - """

Search for some text in the current editor and replace it. A""" - """ dialog is shown to enter the searchtext, the replacement text""" - """ and options for the search and replace.

""" - )) - self.connect(self.replaceAct,SIGNAL('activated()'),self.handleReplace) - self.searchActions.append(self.replaceAct) - - self.gotoAct = QAction(self.trUtf8('Goto Line'), - QIconSet(utilIcons.getPixmap("goto.png")), - self.trUtf8('&Goto Line...'), - QKeySequence(self.trUtf8("CTRL+G","Search|Goto Line")), - self.searchActGrp) - self.gotoAct.setStatusTip(self.trUtf8('Goto Line')) - self.gotoAct.setWhatsThis(self.trUtf8( - """Goto Line""" - """

Go to a specific line of text in the current editor.""" - """ A dialog is shown to enter the linenumber.

""" - )) - self.connect(self.gotoAct,SIGNAL('activated()'),self.handleGoto) - self.searchActions.append(self.gotoAct) - - self.gotoBraceAct = QAction(self.trUtf8('Goto Brace'), - QIconSet(utilIcons.getPixmap("gotoBrace.png")), - self.trUtf8('Goto &Brace'), - QKeySequence(self.trUtf8("CTRL+L","Search|Goto Brace")), - self.searchActGrp) - self.gotoBraceAct.setStatusTip(self.trUtf8('Goto Brace')) - self.gotoBraceAct.setWhatsThis(self.trUtf8( - """Goto Brace""" - """

Go to the matching brace in the current editor.

""" - )) - self.connect(self.gotoBraceAct,SIGNAL('activated()'),self.handleGotoBrace) - self.searchActions.append(self.gotoBraceAct) - - self.searchActGrp.setEnabled(0) - - self.searchFilesAct = QAction(self.trUtf8('Search in Files'), - QIconSet(utilIcons.getPixmap("projectFind.png")), - self.trUtf8('Search in &Files...'), - QKeySequence(self.trUtf8("SHIFT+CTRL+F","Search|Search Files")), - self) - self.searchFilesAct.setStatusTip(self.trUtf8('Search for a text in files')) - self.searchFilesAct.setWhatsThis(self.trUtf8( - """Search in Files""" - """

Search for some text in the files of a directory tree""" - """ or the project. A dialog is shown to enter the searchtext""" - """ and options for the search and to display the result.

""" - )) - self.connect(self.searchFilesAct,SIGNAL('activated()'),self.handleSearchFiles) - self.searchActions.append(self.searchFilesAct) - - - ################################################################## - ## Initialize the view related actions, view menu and toolbar - ################################################################## - - def initViewActions(self): - """ - Protected method defining the user interface actions for the view commands. - """ - self.viewActGrp = QActionGroup(self) - self.viewFoldActGrp = QActionGroup(self) - - self.zoomInAct = QAction(self.trUtf8('Zoom in'), - QIconSet(utilIcons.getPixmap("zoomIn.png")), - self.trUtf8('Zoom &in'), - Qt.CTRL+Qt.Key_Plus, self.viewActGrp) - self.zoomInAct.setStatusTip(self.trUtf8('Zoom in on the text')) - self.zoomInAct.setWhatsThis(self.trUtf8( - """Zoom in""" - """

Zoom in on the text. This makes the text bigger.

""" - )) - self.connect(self.zoomInAct,SIGNAL('activated()'),self.handleZoomIn) - self.viewActions.append(self.zoomInAct) - - self.zoomOutAct = QAction(self.trUtf8('Zoom out'), - QIconSet(utilIcons.getPixmap("zoomOut.png")), - self.trUtf8('Zoom &out'), - Qt.CTRL+Qt.Key_Minus, self.viewActGrp) - self.zoomOutAct.setStatusTip(self.trUtf8('Zoom out on the text')) - self.zoomOutAct.setWhatsThis(self.trUtf8( - """Zoom out""" - """

Zoom out on the text. This makes the text smaller.

""" - )) - self.connect(self.zoomOutAct,SIGNAL('activated()'),self.handleZoomOut) - self.viewActions.append(self.zoomOutAct) - - self.zoomToAct = QAction(self.trUtf8('Zoom'), - QIconSet(utilIcons.getPixmap("zoomTo.png")), - self.trUtf8('&Zoom'), - 0, self.viewActGrp) - self.zoomToAct.setStatusTip(self.trUtf8('Zoom the text')) - self.zoomToAct.setWhatsThis(self.trUtf8( - """Zoom""" - """

Zoom the text. This opens a dialog where the""" - """ desired size can be entered.

""" - )) - self.connect(self.zoomToAct,SIGNAL('activated()'),self.handleZoom) - self.viewActions.append(self.zoomToAct) - - self.toggleAllAct = QAction(self.trUtf8('Toggle all folds'), - self.trUtf8('Toggle &all folds'), - 0, self.viewFoldActGrp) - self.toggleAllAct.setStatusTip(self.trUtf8('Toggle all folds')) - self.toggleAllAct.setWhatsThis(self.trUtf8( - """Toggle all folds""" - """

Toggle all folds of the current editor.

""" - )) - self.connect(self.toggleAllAct,SIGNAL('activated()'),self.handleToggleAll) - self.viewActions.append(self.toggleAllAct) - - self.toggleCurrentAct = QAction(self.trUtf8('Toggle current fold'), - self.trUtf8('Toggle ¤t fold'), - 0, self.viewFoldActGrp) - self.toggleCurrentAct.setStatusTip(self.trUtf8('Toggle current fold')) - self.toggleCurrentAct.setWhatsThis(self.trUtf8( - """Toggle current fold""" - """

Toggle the folds of the current line of the current editor.

""" - )) - self.connect(self.toggleCurrentAct,SIGNAL('activated()'),self.handleToggleCurrent) - self.viewActions.append(self.toggleCurrentAct) - - self.unhighlightAct = QAction(self.trUtf8('Remove all highlights'), - QIconSet(utilIcons.getPixmap("unhighlight.png")), - self.trUtf8('Remove all highlights'), - 0, self) - self.unhighlightAct.setStatusTip(self.trUtf8('Remove all highlights')) - self.unhighlightAct.setWhatsThis(self.trUtf8( - """Remove all highlights""" - """

Remove the highlights of all editors.

""" - )) - self.connect(self.unhighlightAct,SIGNAL('activated()'),self.unhighlight) - self.viewActions.append(self.unhighlightAct) - - self.splitViewAct = QAction(self.trUtf8('Split view'), - QIconSet(utilIcons.getPixmap("splitVertical.png")), - self.trUtf8('&Split view'), - 0, self) - self.splitViewAct.setStatusTip(self.trUtf8('Add a split to the view')) - self.splitViewAct.setWhatsThis(self.trUtf8( - """Split view""" - """

Add a split to the view.

""" - )) - self.connect(self.splitViewAct,SIGNAL('activated()'),self.handleSplitView) - self.viewActions.append(self.splitViewAct) - - self.splitOrientationAct = QAction(self.trUtf8('Arrange horizontally'), - self.trUtf8('Arrange &horizontally'), - 0, self, None, 1) - self.splitOrientationAct.setStatusTip(self.trUtf8('Arrange the splitted views horizontally')) - self.splitOrientationAct.setWhatsThis(self.trUtf8( - """Arrange horizontally""" - """

Arrange the splitted views horizontally.

""" - )) - self.splitOrientationAct.setOn(0) - self.connect(self.splitOrientationAct,SIGNAL('activated()'),self.handleSplitOrientation) - self.viewActions.append(self.splitOrientationAct) - - self.splitRemoveAct = QAction(self.trUtf8('Remove split'), - QIconSet(utilIcons.getPixmap("remsplitVertical.png")), - self.trUtf8('&Remove split'), - 0, self) - self.splitRemoveAct.setStatusTip(self.trUtf8('Remove the current split')) - self.splitRemoveAct.setWhatsThis(self.trUtf8( - """Remove split""" - """

Remove the current split.

""" - )) - self.connect(self.splitRemoveAct,SIGNAL('activated()'),self.removeSplit) - self.viewActions.append(self.splitRemoveAct) - - self.viewActGrp.setEnabled(0) - self.viewFoldActGrp.setEnabled(0) - self.unhighlightAct.setEnabled(0) - self.splitViewAct.setEnabled(0) - self.splitOrientationAct.setEnabled(0) - self.splitRemoveAct.setEnabled(0) - - def initViewMenu(self): - """ - Public method to create the View menu - - @return the generated menu - """ - menu = QPopupMenu(self.ui) - menu.insertTearOffHandle() - self.viewActGrp.addTo(menu) - menu.insertSeparator() - self.viewFoldActGrp.addTo(menu) - menu.insertSeparator() - self.unhighlightAct.addTo(menu) - if self.canSplit(): - menu.insertSeparator() - self.splitViewAct.addTo(menu) - self.splitOrientationAct.addTo(menu) - self.splitRemoveAct.addTo(menu) - return menu - - def initViewToolbar(self): - """ - Public method to create the View toolbar - - @return the generated toolbar - """ - tb = QToolBar(self.ui) - self.viewActGrp.addTo(tb) - tb.addSeparator() - self.unhighlightAct.addTo(tb) - if self.canSplit(): - tb.addSeparator() - self.splitViewAct.addTo(tb) - self.splitRemoveAct.addTo(tb) - - return tb - - ################################################################## - ## Initialize the macro related actions and macro menu - ################################################################## - - def initMacroActions(self): - """ - Private method defining the user interface actions for the macro commands. - """ - self.macroActGrp = QActionGroup(self) - - self.macroStartRecAct = QAction(self.trUtf8('Start Macro Recording'), - self.trUtf8('S&tart Macro Recording'), - 0, self.macroActGrp) - self.macroStartRecAct.setStatusTip(self.trUtf8('Start Macro Recording')) - self.macroStartRecAct.setWhatsThis(self.trUtf8( - """Start Macro Recording""" - """

Start recording editor commands into a new macro.

""" - )) - self.connect(self.macroStartRecAct,SIGNAL('activated()'),self.handleMacroStartRecording) - self.macroActions.append(self.macroStartRecAct) - - self.macroStopRecAct = QAction(self.trUtf8('Stop Macro Recording'), - self.trUtf8('Sto&p Macro Recording'), - 0, self.macroActGrp) - self.macroStopRecAct.setStatusTip(self.trUtf8('Stop Macro Recording')) - self.macroStopRecAct.setWhatsThis(self.trUtf8( - """Stop Macro Recording""" - """

Stop recording editor commands into a new macro.

""" - )) - self.connect(self.macroStopRecAct,SIGNAL('activated()'),self.handleMacroStopRecording) - self.macroActions.append(self.macroStopRecAct) - - self.macroRunAct = QAction(self.trUtf8('Run Macro'), - self.trUtf8('&Run Macro'), - 0, self.macroActGrp) - self.macroRunAct.setStatusTip(self.trUtf8('Run Macro')) - self.macroRunAct.setWhatsThis(self.trUtf8( - """Run Macro""" - """

Run a previously recorded editor macro.

""" - )) - self.connect(self.macroRunAct,SIGNAL('activated()'),self.handleMacroRun) - self.macroActions.append(self.macroRunAct) - - self.macroDeleteAct = QAction(self.trUtf8('Delete Macro'), - self.trUtf8('&Delete Macro'), - 0, self.macroActGrp) - self.macroDeleteAct.setStatusTip(self.trUtf8('Delete Macro')) - self.macroDeleteAct.setWhatsThis(self.trUtf8( - """Delete Macro""" - """

Delete a previously recorded editor macro.

""" - )) - self.connect(self.macroDeleteAct,SIGNAL('activated()'),self.handleMacroDelete) - self.macroActions.append(self.macroDeleteAct) - - self.macroLoadAct = QAction(self.trUtf8('Load Macro'), - self.trUtf8('&Load Macro'), - 0, self.macroActGrp) - self.macroLoadAct.setStatusTip(self.trUtf8('Load Macro')) - self.macroLoadAct.setWhatsThis(self.trUtf8( - """Load Macro""" - """

Load an editor macro from a file.

""" - )) - self.connect(self.macroLoadAct,SIGNAL('activated()'),self.handleMacroLoad) - self.macroActions.append(self.macroLoadAct) - - self.macroSaveAct = QAction(self.trUtf8('Save Macro'), - self.trUtf8('&Save Macro'), - 0, self.macroActGrp) - self.macroSaveAct.setStatusTip(self.trUtf8('Save Macro')) - self.macroSaveAct.setWhatsThis(self.trUtf8( - """Save Macro""" - """

Save a previously recorded editor macro to a file.

""" - )) - self.connect(self.macroSaveAct,SIGNAL('activated()'),self.handleMacroSave) - self.macroActions.append(self.macroSaveAct) - - self.macroActGrp.setEnabled(0) - - def initMacroMenu(self): - """ - Public method to create the Macro menu - - @return the generated menu - """ - menu = QPopupMenu(self.ui) - menu.insertTearOffHandle() - self.macroActGrp.addTo(menu) - return menu - - - def checkDirty(self, editor): - """ - Private method to check dirty status and open a message window. - - @param editor editor window to check - @return flag indicating successful reset of the dirty flag (boolean) - """ - - if (editor.modified) and (editor in self.doubles.keys()) : - res = QMessageBox.warning( - None, - self.trUtf8("Fichier Duplique"), - self.trUtf8("Le fichier ne sera pas sauvegarde."), - self.trUtf8("&Quitter"), - self.trUtf8("&Annuler")) - if res == 0 : return 1 - return 0 - if editor.modified: - fn = editor.getFileName() - if fn is None: - fn = self.trUtf8('Noname') - res = QMessageBox.warning(self.parent(), - self.trUtf8("Fichier Modifie"), - self.trUtf8("Le fichier %1 n a pas ete sauvegarde.") - .arg(fn), - self.trUtf8("&Sauvegarder"), self.trUtf8("&Quitter "), - self.trUtf8("&Annuler"), 0, 2) - if res == 0: - (ok, newName) = editor.saveFile() - if ok: - self.setEditorName(editor, newName) - return ok - elif res == 2: - return 0 - return 1 - - def checkAllDirty(self): - """ - Public method to check the dirty status of all editors. - - @return flag indicating successful reset of all dirty flags (boolean) - """ - for editor in self.editors: - if not self.checkDirty(editor): - return 0 - - return 1 - - def closeEditor(self, editor): - """ - Private method to close an editor window. - - @param editor editor window to be closed - @return flag indicating success (boolean) - """ - # save file if necessary - if not self.checkDirty(editor): - return 0 - - # remove the window - self.removeView(editor) - self.editors.remove(editor) - if not len(self.editors): - self.handleLastEditorClosed() - self.emit(PYSIGNAL('lastEditorClosed'), ()) #CS_pbruno connecter signal avec l'appli - return 1 - - def handleClose(self): - """ - Public method to close the current window. - - @return flag indicating success (boolean) - """ - aw = self.activeWindow() - if aw is None: - return 0 - - res = self.closeEditor(aw) - if res and aw == self.currentEditor: - self.currentEditor = None - - return res - - def handleNewView(self): - """ - Public method to close the current window. - - @return flag indicating success (boolean) - """ - aw = self.activeWindow() - if aw is None: - return 0 - - aw.handleNewView() - - - def handleCloseAll(self): - """ - Private method to close all editor windows via file menu. - """ - savedEditors = self.editors[:] - retour=1 - for editor in savedEditors: - retour=retour*self.closeEditor(editor) - return retour - - def handleCloseWindow(self, fn): - """ - Public method to close an arbitrary source editor. - - @param fn filename of editor to be closed - @return flag indicating success (boolean) - """ - for editor in self.editors: - if samepath(fn, editor.getFileName()): - break - else: - return 1 - - res = self.closeEditor(editor) - if res and editor == self.currentEditor: - self.currentEditor = None - - return res - - def handleExit(self): - """ - Public method to handle the debugged program terminating. - """ - if self.currentEditor is not None: - self.currentEditor.highlight() - self.currentEditor = None - - self.setSbFile() - - def handlePythonFile(self,pyfn,lineno=None): - """ - Public method to handle the user selecting a file for display. - - @param pyfn name of file to be opened - @param lineno line number to place the cursor at - """ - try: - self.displayPythonFile(pyfn,lineno) - except IOError: - pass - - - def displayJDC(self,jdc,fn=None): - """ - Public slot to display a file in an editor. - - @param fn name of file to be opened - @param lineno line number to place the cursor at - """ - titre=None - if fn != None : titre=fn.split("/")[-1] - newWin, editor = self.getEditor(None, jdc, title = titre ) - - if newWin: - editor.fileName=fn - self.handleModificationStatusChanged(editor.modified, editor) - self.checkActions(editor) - - # insert filename into list of recently opened files - self.addToRecentList(editor.getFileName()) - - - - def newEditorView(self, fn, caller): - """ - Public method to create a new editor displaying the given document. - - @param fn filename of this view - @param caller reference to the editor calling this method - """ - from editor import JDCEditor - editor = JDCEditor(fn, None, self, editor=caller) - self.editors.append(editor) - self.connect(editor, PYSIGNAL('modificationStatusChanged'), - self.handleModificationStatusChanged) - self.connect(editor, PYSIGNAL('cursorChanged'), self.handleCursorChanged) - self.connect(editor, PYSIGNAL('editorSaved'), self.handleEditorSaved) - self.connect(editor, PYSIGNAL('breakpointToggled'), self.handleBreakpointToggled) - self.connect(editor, PYSIGNAL('bookmarkToggled'), self.handleBookmarkToggled) - self.connect(editor, PYSIGNAL('syntaxerrorToggled'), self.handleSyntaxErrorToggled) - self.connect(editor, PYSIGNAL('autoCompletionAPIsAvailable'), - self.handleEditoracAPIsAvailable) - self.handleEditorOpened() - self.emit(PYSIGNAL('editorOpened'), (fn,)) - - self.connect(caller, PYSIGNAL('editorRenamed'), editor.handleRenamed) - self.connect(editor, PYSIGNAL('editorRenamed'), caller.handleRenamed) - - self.addView(editor, fn) - self.handleModificationStatusChanged(editor.modified, editor) - self.checkActions(editor) - - def addToRecentList(self, fn): - """ - Public slot to add a filename to the list of recently opened files. - - @param fn name of the file to be added - """ - self.recent.remove(fn) - self.recent.prepend(fn) - if len(self.recent) > 9: - self.recent = self.recent[:9] - - def toggleWindow(self,w): - """ - Private method to toggle a workspace window. - - @param w editor window to be toggled - """ - if w.isHidden(): - w.show() - else: - w.hide() - - def setFileLine(self,fn,line,error=0,syntaxError=0): - """ - Public method to update the user interface when the current program or line changes. - - @param fn filename of editor to update (string) - @param line line number to highlight (int) - @param error flag indicating an error highlight (boolean) - @param syntaxError flag indicating a syntax error - """ - self.setSbFile(fn,line) - - try: - newWin, self.currentEditor = self.getEditor(fn) - except IOError: - return - - # Change the highlighted line. - self.currentEditor.highlight(line,error,syntaxError) - - self.currentEditor.highlightVisible() - self.checkActions(self.currentEditor, 0) - - def setSbFile(self,fn=None,line=None,pos=None): - """ - Private method to set the file info in the status bar. - - @param fn filename to display (string) - @param line line number to display (int) - @param pos character position to display (int) - """ - if fn is None: - fn = '' - writ = ' ' - else: - if QFileInfo(fn).isWritable(): - writ = ' rw' - else: - writ = ' ro' - - self.sbWritable.setText(writ) - self.sbFile.setText(self.trUtf8('File: %1').arg(fn,-50)) - - if line is None: - line = '' - - self.sbLine.setText(self.trUtf8('Line: %1').arg(line,5)) - - if pos is None: - pos = '' - - self.sbPos.setText(self.trUtf8('Pos: %1').arg(pos, 5)) - - def unhighlight(self, current=0): - """ - Public method to switch off all highlights. - - @param current flag indicating only the current editor should be unhighlighted - (boolean) - """ - if current: - if self.currentEditor is not None: - self.currentEditor.highlight() - else: - for editor in self.editors: - editor.highlight() - - def getOpenFilenames(self): - """ - Public method returning a list of the filenames of all editors. - - @return list of all opened filenames (list of strings) - """ - filenames = [] - for editor in self.editors: - fn = editor.getFileName() - if fn is not None: - filenames.append(fn) - - return filenames - - def getEditor(self, fn, jdc = None, title = None, units = None): - """ - Private method to return the editor displaying the given file. - - If there is no editor with the given file, a new editor window is - created. - - @param fn filename to look for - @param isPythonFile flag indicating that this is a Python file - even if it doesn't have the .py extension (boolean) - @return tuple of two values giving a flag indicating a new window creation and - a reference to the editor displaying this file - """ - newWin = 0 - double=None - for editor in self.editors: - if samepath(fn, editor.getFileName()): - abort = QMessageBox.warning(self, - self.trUtf8("Fichier"), - self.trUtf8("Le fichier %1 est deja ouvert.Voulez-vous l ouvrir tel qu'il etait lors du dernier enregistrement") .arg(fn), - self.trUtf8("&Duplication"), - self.trUtf8("&Annuler"), None, 1) - if abort: - break - double=editor - else: - from editor import JDCEditor - editor = JDCEditor(fn, jdc, self,units=units) - if double != None : - self.doubles[editor]=double - #self.doubles[double]=editor - if editor.jdc: # le fichier est bien un jdc - self.editors.append(editor) - self.connect(editor, PYSIGNAL('modificationStatusChanged'), - self.handleModificationStatusChanged) - self.connect(editor, PYSIGNAL('cursorChanged'), self.handleCursorChanged) - self.connect(editor, PYSIGNAL('editorSaved'), self.handleEditorSaved) - self.connect(editor, PYSIGNAL('breakpointToggled'), self.handleBreakpointToggled) - self.connect(editor, PYSIGNAL('bookmarkToggled'), self.handleBookmarkToggled) - self.connect(editor, PYSIGNAL('syntaxerrorToggled'), self.handleSyntaxErrorToggled) - self.connect(editor, PYSIGNAL('autoCompletionAPIsAvailable'), - self.handleEditoracAPIsAvailable) - self.handleEditorOpened() - self.emit(PYSIGNAL('editorOpened'), (fn,)) - newWin = 1 - else: - editor.closeIt() - - if newWin: - self.addView(editor, fn , title) - elif editor.jdc: - self.showView(editor, fn) - - return (newWin, editor) - - - def getOpenEditor(self, fn): - """ - Public method to return the editor displaying the given file. - - @param fn filename to look for - @return a reference to the editor displaying this file or None, if - no editor was found - """ - for editor in self.editors: - if samepath(fn, editor.getFileName()): - return editor - - return None - - def getActiveName(self): - """ - Public method to retrieve the filename of the active window. - - @return filename of active window (string) - """ - aw = self.activeWindow() - if aw: - return aw.getFileName() - else: - return None - - def saveEditor(self, fn): - """ - Public method to save a named editor file. - - @param fn filename of editor to be saved (string) - @return flag indicating success (boolean) - """ - for editor in self.editors: - if samepath(fn, editor.getFileName()): - break - else: - return 1 - - if not editor.modified: - return 1 - else: - ok, dummy = editor.saveFile() - return ok - - def saveCurrentEditor(self): - """ - Public slot to save the contents of the current editor. - """ - aw = self.activeWindow() - if aw in self.doubles.keys() : - QMessageBox.warning( - None, - self.trUtf8("Fichier Duplique"), - self.trUtf8("Le fichier ne sera pas sauvegarde."), - self.trUtf8("&Annuler")) - return - if aw: - ok, newName = aw.saveFile() - if ok: - self.setEditorName(aw, newName) - else: - return - - def saveAsCurrentEditor(self): - """ - Public slot to save the contents of the current editor to a new file. - """ - aw = self.activeWindow() - if aw: - ok, newName = aw.saveFileAs() - if ok: - self.setEditorName(aw, newName) - else: - return - - def saveAllEditors(self): - """ - Public slot to save the contents of all editors. - """ - for editor in self.editors: - ok, newName = editor.saveFile() - if ok: - self.setEditorName(editor, newName) - - # restart autosave timer - if self.autosaveInterval > 0: - self.autosaveTimer.start(self.autosaveInterval * 60000, 1) - - def saveCurrentEditorToProject(self): - """ - Public slot to save the contents of the current editor to the current project. - """ - pro = self.ui.getProject() - path = pro.ppath - aw = self.activeWindow() - if aw: - ok, newName = aw.saveFileAs(path) - if ok: - self.setEditorName(aw, newName) - pro.appendFile(newName) - else: - return - - def newIncludeEditor(self) : - self.newEditor(include=1) - - def newEditor(self,include=0): - """ - Public slot to generate a new empty editor. - """ - from editor import JDCEditor - editor = JDCEditor(None,None,self,include=include) - - self.editors.append(editor) - self.connect(editor, PYSIGNAL('modificationStatusChanged'), - self.handleModificationStatusChanged) - self.connect(editor, PYSIGNAL('cursorChanged'), self.handleCursorChanged) - self.connect(editor, PYSIGNAL('editorSaved'), self.handleEditorSaved) - self.connect(editor, PYSIGNAL('breakpointToggled'), self.handleBreakpointToggled) - self.connect(editor, PYSIGNAL('bookmarkToggled'), self.handleBookmarkToggled) - self.connect(editor, PYSIGNAL('syntaxerrorToggled'), self.handleSyntaxErrorToggled) - self.connect(editor, PYSIGNAL('autoCompletionAPIsAvailable'), - self.handleEditoracAPIsAvailable) - self.addView(editor, None) - self.handleEditorOpened() - self.checkActions(editor) - self.emit(PYSIGNAL('editorOpened'), (None,)) - - def printCurrentEditor(self): - """ - Public slot to print the contents of the current editor. - """ - aw = self.activeWindow() - if aw: - aw.printFile() - else: - return - - def printCurrentEditorSel(self): - """ - Public slot to print the selection of the current editor. - """ - aw = self.activeWindow() - if aw: - aw.printSelection() - else: - return - - def handlevisuJdcPy(self): - if self.activeWindow()== None : return - self.activeWindow().viewJdcPy() - - def handleViewJdcFichierSource(self): - if self.activeWindow()== None : return - self.activeWindow().viewJdcSource() - - def handleViewJdcRapport(self): - if self.activeWindow()== None : return - self.activeWindow().viewJdcRapport() - - def handleNewProject(self): - """ - Public slot to handle the NewProject signal. - """ - self.saveToProjectAct.setEnabled(1) - - def handleProjectOpened(self): - """ - Public slot to handle the projectOpened signal. - """ - self.saveToProjectAct.setEnabled(1) - - def handleProjectClosed(self): - """ - Public slot to handle the projectClosed signal. - """ - self.saveToProjectAct.setEnabled(0) - - def handleProjectFileRenamed(self, oldfn, newfn): - """ - Public slot to handle the projectFileRenamed signal. - - @param oldfn old filename of the file (string) - @param newfn new filename of the file (string) - """ - editor = self.getOpenEditor(oldfn) - if editor: - editor.fileRenamed(newfn) - - def enableEditorsCheckFocusIn(self, enabled): - """ - Public method to set a flag enabling the editors to perform focus in checks. - - @param enabled flag indicating focus in checks should be performed (boolean) - """ - self.editorsCheckFocusIn = enabled - - def editorsCheckFocusInEnabled(self): - """ - Public method returning the flag indicating editors should perform focus in checks. - - @return flag indicating focus in checks should be performed (boolean) - """ - return self.editorsCheckFocusIn - - def handleFindFileName(self): - """ - Private method to handle the search for file action. - """ - self.ui.findFileNameDialog.show() - self.ui.findFileNameDialog.raiseW() - self.ui.findFileNameDialog.setActiveWindow() - - ################################################################## - ## Below are the action methods for the edit menu - ################################################################## - - def handleEditUndo(self): - """ - Private method to handle the undo action. - """ - self.activeWindow().undo() - - def handleEditRedo(self): - """ - Private method to handle the redo action. - """ - self.activeWindow().redo() - - def handleEditRevert(self): - """ - Private method to handle the revert action. - """ - self.activeWindow().revertToUnmodified() - - def handleEditCut(self): - """ - Private method to handle the cut action. - """ - self.activeWindow().cut() - - def handleEditCopy(self): - """ - Private method to handle the copy action. - """ - self.activeWindow().copy() - - def handleEditPaste(self): - """ - Private method to handle the paste action. - """ - self.activeWindow().paste() - - def handleEditDelete(self): - """ - Private method to handle the delete action. - """ - self.activeWindow().clear() - - def handleEditIndent(self): - """ - Private method to handle the indent action. - """ - self.activeWindow().indentLineOrSelection() - - def handleEditUnindent(self): - """ - Private method to handle the unindent action. - """ - self.activeWindow().unindentLineOrSelection() - - def handleEditComment(self): - """ - Private method to handle the comment action. - """ - self.activeWindow().commentLineOrSelection() - - def handleEditUncomment(self): - """ - Private method to handle the uncomment action. - """ - self.activeWindow().uncommentLineOrSelection() - - def handleEditStreamComment(self): - """ - Private method to handle the stream comment action. - """ - self.activeWindow().streamCommentLineOrSelection() - - def handleEditBoxComment(self): - """ - Private method to handle the box comment action. - """ - self.activeWindow().boxCommentLineOrSelection() - - def handleEditSelectBrace(self): - """ - Private method to handle the select to brace action. - """ - self.activeWindow().selectToMatchingBrace() - - def handleEditSelectAll(self): - """ - Private method to handle the select all action. - """ - self.activeWindow().selectAll(1) - - def handleEditDeselectAll(self): - """ - Private method to handle the select all action. - """ - self.activeWindow().selectAll(0) - - def handleConvertEOL(self): - """ - Private method to handle the convert line end characters action. - """ - aw = self.activeWindow() - aw.convertEols(aw.eolMode()) - - def handleShortenEmptyLines(self): - """ - Private method to handle the shorten empty lines action. - """ - self.activeWindow().handleShortenEmptyLines() - - def handleEditAutoComplete(self): - """ - Private method to handle the autocomplete action. - """ - aw = self.activeWindow() - aw.autoComplete() - - def handleEditAutoCompleteFromDoc(self): - """ - Private method to handle the autocomplete from document action. - """ - aw = self.activeWindow() - aw.autoCompleteFromDocument() - - def handleEditAutoCompleteFromAPIs(self): - """ - Private method to handle the autocomplete from APIs action. - """ - aw = self.activeWindow() - aw.autoCompleteFromAPIs() - - def handleEditoracAPIsAvailable(self, available): - """ - Private method to handle the availability of API autocompletion signal. - """ - self.autoCompleteFromAPIsAct.setEnabled(available) - - ################################################################## - ## Below are the action and utility methods for the search menu - ################################################################## - - def getWord(self, text, index): - """ - Private method to get the word at a position. - - @param text text to look at (string or QString) - @param index position to look at (int) - @return the word at that position - """ - re = QRegExp('[^\w_]') - start = text.findRev(re, index) + 1 - end = text.find(re, index) - if end > start: - word = text.mid(start, end-start) - else: - word = QString('') - return word - - def textForFind(self): - """ - Private method to determine the selection or the current word for the next find operation. - - @return selection or current word (QString) - """ - aw = self.activeWindow() - if aw is None: - return '' - - if aw.hasSelectedText(): - text = aw.selectedText() - if text.contains('\r') or text.contains('\n'): - # the selection contains at least a newline, it is - # unlikely to be the expression to search for - return '' - - return text - - # no selected text, determine the word at the current position - line, index = aw.getCursorPosition() - return self.getWord(aw.text(line), index) - - def getSRHistory(self, key): - """ - Private method to get the search or replace history list. - - @param key list to return (must be 'search' or 'replace') - @return the requested history list (QStringList) - """ - return self.srHistory[key] - - def handleSearch(self): - """ - Private method to handle the search action. - """ - self.searchDlg.showFind(self.textForFind()) - - def handleReplace(self): - """ - Private method to handle the replace action. - """ - self.replaceDlg.showReplace(self.textForFind()) - - def handleGoto(self): - """ - Private method to handle the goto action. - """ - aw = self.activeWindow() - dlg = GotoDialog(self.ui, None, 1) - dlg.selectAll() - if dlg.exec_loop() == QDialog.Accepted: - aw.gotoLine(min(dlg.getLinenumber(), aw.lines())) - - def handleGotoBrace(self): - """ - Private method to handle the goto brace action. - """ - self.activeWindow().moveToMatchingBrace() - - def handleSearchFiles(self): - """ - Private method to handle the search in files action. - """ - self.ui.findFilesDialog.show(self.textForFind()) - self.ui.findFilesDialog.raiseW() - self.ui.findFilesDialog.setActiveWindow() - - ################################################################## - ## Below are the action methods for the view menu - ################################################################## - - def handleZoomIn(self): - """ - Private method to handle the zoom in action. - """ - self.activeWindow().zoomIn() - - def handleZoomOut(self): - """ - Private method to handle the zoom out action. - """ - self.activeWindow().zoomOut() - - def handleZoom(self): - """ - Private method to handle the zoom action. - """ - aw = self.activeWindow() - dlg = ZoomDialog(aw.getZoom(), self.ui, None, 1) - if dlg.exec_loop() == QDialog.Accepted: - aw.zoomTo(dlg.getZoomSize()) - - def handleToggleAll(self): - """ - Private method to handle the toggle all folds action. - """ - self.activeWindow().foldAll() - - def handleToggleCurrent(self): - """ - Private method to handle the toggle current fold action. - """ - aw = self.activeWindow() - line, index = aw.getCursorPosition() - aw.foldLine(line) - - def handleSplitView(self): - """ - Private method to handle the split view action. - """ - self.addSplit() - - def handleSplitOrientation(self): - """ - Private method to handle the split orientation action. - """ - if self.splitOrientationAct.isOn(): - self.setSplitOrientation(QSplitter.Horizontal) - self.splitViewAct.setIconSet(\ - QIconSet(utilIcons.getPixmap("splitHorizontal.png"))) - self.splitRemoveAct.setIconSet(\ - QIconSet(utilIcons.getPixmap("remsplitHorizontal.png"))) - else: - self.setSplitOrientation(QSplitter.Vertical) - self.splitViewAct.setIconSet(\ - QIconSet(utilIcons.getPixmap("splitVertical.png"))) - self.splitRemoveAct.setIconSet(\ - QIconSet(utilIcons.getPixmap("remsplitVertical.png"))) - - ################################################################## - ## Below are the action methods for the macro menu - ################################################################## - - def handleMacroStartRecording(self): - """ - Private method to handle the start macro recording action. - """ - self.activeWindow().handleStartMacroRecording() - - def handleMacroStopRecording(self): - """ - Private method to handle the stop macro recording action. - """ - self.activeWindow().handleStopMacroRecording() - - def handleMacroRun(self): - """ - Private method to handle the run macro action. - """ - self.activeWindow().handleRunMacro() - - def handleMacroDelete(self): - """ - Private method to handle the delete macro action. - """ - self.activeWindow().handleDeleteMacro() - - def handleMacroLoad(self): - """ - Private method to handle the load macro action. - """ - self.activeWindow().handleLoadMacro() - - def handleMacroSave(self): - """ - Private method to handle the save macro action. - """ - self.activeWindow().handleSaveMacro() - - ################################################################## - ## Below are the action methods for the bookmarks menu - ################################################################## - - def handleToggleBookmark(self): - """ - Private method to handle the toggle bookmark action. - """ - self.activeWindow().handleToggleBookmark() - - def handleNextBookmark(self): - """ - Private method to handle the next bookmark action. - """ - self.activeWindow().handleNextBookmark() - - def handlePreviousBookmark(self): - """ - Private method to handle the previous bookmark action. - """ - self.activeWindow().handlePreviousBookmark() - - def handleClearAllBookmarks(self): - """ - Private method to handle the clear all bookmarks action. - """ - for editor in self.editors: - editor.handleClearBookmarks() - - self.bookmarkNextAct.setEnabled(0) - self.bookmarkPreviousAct.setEnabled(0) - self.bookmarkClearAct.setEnabled(0) - - def handleShowBookmarksMenu(self): - """ - Private method to handle the show bookmarks menu signal. - """ - self.bookmarks = {} - self.bookmarksMenu.clear() - - filenames = self.getOpenFilenames() - filenames.sort() - for filename in filenames: - editor = self.getOpenEditor(filename) - for bookmark in editor.getBookmarks(): - if len(filename) > 50: - dots = "..." - else: - dots = "" - id = self.bookmarksMenu.insertItem(\ - "%s%s : %d" % (dots, filename[-50:], bookmark)) - self.bookmarks[id] = (filename, bookmark) - - def handleBookmarkSelected(self, id): - """ - Private method to handle the bookmark selected signal. - - @param id index of the selected menu entry - This acts as an index into the list of bookmarks - that was created, when the bookmarks menu was built. - """ - self.displayPythonFile(self.bookmarks[id][0], self.bookmarks[id][1]) - - def handleBookmarkToggled(self, editor): - """ - Private slot to handle the bookmarkToggled signal. - - It checks some bookmark actions and reemits the signal. - - @param editor editor that sent the signal - """ - if editor.hasBookmarks(): - self.bookmarkNextAct.setEnabled(1) - self.bookmarkPreviousAct.setEnabled(1) - self.bookmarkClearAct.setEnabled(1) - else: - self.bookmarkNextAct.setEnabled(0) - self.bookmarkPreviousAct.setEnabled(0) - self.bookmarkClearAct.setEnabled(0) - self.emit(PYSIGNAL('bookmarkToggled'), (editor,)) - - def handleGotoSyntaxError(self): - """ - Private method to handle the goto syntax error action. - """ - self.activeWindow().handleGotoSyntaxError() - - def handleClearAllSyntaxErrors(self): - """ - Private method to handle the clear all syntax errors action. - """ - for editor in self.editors: - editor.handleClearSyntaxError() - - def handleSyntaxErrorToggled(self, editor): - """ - Private slot to handle the syntaxerrorToggled signal. - - It checks some syntax error actions and reemits the signal. - - @param editor editor that sent the signal - """ - if editor.hasSyntaxErrors(): - self.syntaxErrorGotoAct.setEnabled(1) - self.syntaxErrorClearAct.setEnabled(1) - else: - self.syntaxErrorGotoAct.setEnabled(0) - self.syntaxErrorClearAct.setEnabled(0) - self.emit(PYSIGNAL('syntaxerrorToggled'), (editor,)) - - ################################################################## - ## Below are general utility methods - ################################################################## - - def handleResetUI(self): - """ - Public slot to handle the resetUI signal. - """ - editor = self.activeWindow() - if editor is None: - self.setSbFile() - else: - line, pos = editor.getCursorPosition() - self.setSbFile(editor.getFileName(), line+1, pos) - - def closeViewManager(self): - """ - Public method to shutdown the viewmanager. - - If it cannot close all editor windows, it aborts the shutdown process. - - @return flag indicating success (boolean) - """ - self.handleCloseAll() - if len(self.editors): - return 0 - else: - return 1 - - def handleLastEditorClosed(self): - """ - Private slot to handle the lastEditorClosed signal. - """ - self.SauveRecents() - - - def handleEditorOpened(self): - """ - Private slot to handle the editorOpened signal. - """ - self.closeActGrp.setEnabled(1) - self.saveActGrp.setEnabled(1) - self.printAct.setEnabled(1) - self.printSelAct.setEnabled(1) - self.editActGrp.setEnabled(1) - self.searchActGrp.setEnabled(1) - self.viewActGrp.setEnabled(1) - self.viewFoldActGrp.setEnabled(1) - self.unhighlightAct.setEnabled(1) - self.splitViewAct.setEnabled(1) - self.splitOrientationAct.setEnabled(1) - self.macroActGrp.setEnabled(1) - self.bookmarkActGrp.setEnabled(1) - - # activate the autosave timer - if not self.autosaveTimer.isActive() and \ - self.autosaveInterval > 0: - self.autosaveTimer.start(self.autosaveInterval * 60000, 1) - - - def checkActions(self, editor, setSb=1): - """ - Private slot to check some actions for their enable/disable status and set the statusbar info. - - @param editor editor window - @param setSb flag indicating an update of the status bar is wanted (boolean) - """ - if editor is not None: - self.saveAct.setEnabled(editor.modified) - self.revertAct.setEnabled(editor.modified) - - lex = editor.getLexer() - if lex is not None: - self.commentAct.setEnabled(lex.canBlockComment()) - self.uncommentAct.setEnabled(lex.canBlockComment()) - self.streamCommentAct.setEnabled(lex.canStreamComment()) - self.boxCommentAct.setEnabled(lex.canBoxComment()) - else: - self.commentAct.setEnabled(0) - self.uncommentAct.setEnabled(0) - self.streamCommentAct.setEnabled(0) - self.boxCommentAct.setEnabled(0) - - if editor.hasBookmarks(): - self.bookmarkNextAct.setEnabled(1) - self.bookmarkPreviousAct.setEnabled(1) - self.bookmarkClearAct.setEnabled(1) - else: - self.bookmarkNextAct.setEnabled(0) - self.bookmarkPreviousAct.setEnabled(0) - self.bookmarkClearAct.setEnabled(0) - - if editor.hasSyntaxErrors(): - self.syntaxErrorGotoAct.setEnabled(1) - self.syntaxErrorClearAct.setEnabled(1) - else: - self.syntaxErrorGotoAct.setEnabled(0) - self.syntaxErrorClearAct.setEnabled(0) - - if editor.canAutoCompleteFromAPIs(): - self.autoCompleteFromAPIsAct.setEnabled(1) - else: - self.autoCompleteFromAPIsAct.setEnabled(0) - - if setSb: - line, pos = editor.getCursorPosition() - self.setSbFile(editor.getFileName(), line+1, pos) - - self.emit(PYSIGNAL('checkActions'), (editor,)) - - def handlePreferencesChanged(self): - """ - Public slot to handle the preferencesChanged signal. - - This method performs the following actions -
    -
  • reread the colours for the syntax highlighting
  • -
  • reloads the already created API objetcs
  • -
  • starts or stops the autosave timer
  • -
  • Note: changes in viewmanager type are activated - on an application restart.
  • -
- """ - # reload api information - for language, api in self.apis.items(): - if api is not None: - apifiles = Preferences.getEditorAPI(language) - if len(apifiles): - api.clear() - for apifile in apifiles: - api.load(apifile) - else: - self.apis[language] = None - - # reload editor settings - for editor in self.editors: - editor.readSettings() - - # reload the autosave timer setting - self.autosaveInterval = Preferences.getEditor("AutosaveInterval") - if len(self.editors): - if self.autosaveTimer.isActive() and \ - self.autosaveInterval == 0: - self.autosaveTimer.stop() - elif not self.autosaveTimer.isActive() and \ - self.autosaveInterval > 0: - self.autosaveTimer.start(self.autosaveInterval * 60000, 1) - - def handleEditorSaved(self, fn): - """ - Public slot to handle the editorSaved signal. - - It simply reemits the signal. - - @param fn filename of the saved editor - """ - self.emit(PYSIGNAL('editorSaved'), (fn,)) - - def handleCursorChanged(self, fn, line, pos): - """ - Private slot to handle the cursorChanged signal. - - It emits the signal cursorChanged with parameter editor. - - @param fn filename (string) - @param line line number of the cursor (int) - @param pos position in line of the cursor (int) - """ - self.setSbFile(fn, line, pos) - self.emit(PYSIGNAL('cursorChanged'), (self.getOpenEditor(fn),)) - - def handleBreakpointToggled(self, editor): - """ - Private slot to handle the breakpointToggled signal. - - It simply reemits the signal. - - @param editor editor that sent the signal - """ - self.emit(PYSIGNAL('breakpointToggled'), (editor,)) - - - def getProject(self): - """ - Public method to get a reference to the Project object. - - @return Reference to the Project object (Project.Project) - """ - return self.ui.getProject() - - def getActions(self, type): - """ - Public method to get a list of all actions. - - @param type string denoting the action set to get. - It must be one of "edit", "file", "search", - "view" or "window" - @return list of all actions (list of QAction) - """ - try: - exec 'actionList = self.%sActions[:]' % type - except: - actionList = [] - - return actionList - - def editorCommand(self, cmd): - """ - Private method to send an editor command to the active window. - - @param cmd the scintilla command to be sent - """ - aw = self.activeWindow() - if aw: - aw.SendScintilla(cmd) - - ################################################################## - ## Below are protected utility methods - ################################################################## - - def _getOpenStartDir(self): - """ - Protected method to return the starting directory for a file open dialog. - - The appropriate starting directory is calculated - using the following search order, until a match is found:
- 1: Directory of currently active editor
- 2: Directory of currently active Project
- 3: CWD - - @return String name of directory to start or None - """ - # if we have an active source, return its path - if self.activeWindow() is not None and \ - self.activeWindow().getFileName(): - return os.path.dirname(self.activeWindow().getFileName()) - - # ok, try if there is an active project and return its path - elif self.getProject().isOpen(): - return self.getProject().ppath - - else: - try : - userDir=os.path.expanduser("~/Eficas_install/") - return userDir - except : - return "" - - - def _getOpenFileFilter(self): - """ - Protected method to return the active filename filter for a file open dialog. - - The appropriate filename filter is determined by file extension of - the currently active editor. - - @return name of the filename filter (QString) or None - """ - if self.activeWindow() is not None and \ - self.activeWindow().getFileName(): - ext = os.path.splitext(self.activeWindow().getFileName())[1] - try: - return QString(self.ext2Filter[ext]) - except KeyError: - return None - - else: - return None - - - - -""" -Module implementing a tabbed viewmanager class. -""" - - - -class TabWidget(QTabWidget): - """ - Class implementing a custimized TabWidget. - """ - def __init__(self, parent): - """ - Constructor - - @param parent parent widget (QWidget) - """ - QTabWidget.__init__(self, parent) - - self.editors = [] - self.curIndex = 0 - - self.connect(self, SIGNAL("currentChanged(QWidget *)"), self.handleCurrentChanged) - - def handleCurrentChanged(self): - """ - Private slot called by the currentChanged signal. - """ - self.curIndex = self.currentPageIndex() - - def addTab(self, editor, title): - """ - Overwritten method to add a new tab. - - @param editor the editor object to be added (QScintilla.Editor.Editor) - @param title title for the new tab (string, QString or QTab) - """ - QTabWidget.addTab(self, editor, title) - - if not editor in self.editors: - self.editors.append(editor) - self.connect(editor, PYSIGNAL('captionChanged'), - self.handleCaptionChange) - - def showPage(self, editor): - """ - Overridden method to show a tab. - - @param editor the editor object to be shown (QScintilla.Editor.Editor) - """ - QTabWidget.showPage(self, editor) - self.curIndex = self.indexOf(editor) - - def nextTab(self): - """ - Public slot used to show the next tab. - """ - if self.count(): - self.curIndex += 1 - if self.curIndex == self.count(): - self.curIndex = 0 - - QTabWidget.showPage(self, self.page(self.curIndex)) - - def prevTab(self): - """ - Public slot used to show the previous tab. - """ - if self.count(): - self.curIndex -= 1 - if self.curIndex == -1: - self.curIndex = self.count() - 1 - - QTabWidget.showPage(self, self.page(self.curIndex)) - - def handleCaptionChange(self, cap, editor): - """ - Private method to handle Caption change signals from the editor. - - Updates the listview text to reflect the new caption information. - - @param cap Caption for the editor - @param editor Editor to update the caption for - """ - fn = editor.getFileName() - if fn: - txt = os.path.basename(fn) - if editor.isReadOnly(): - txt = '%s (ro)' % txt - self.changeTab(editor, txt) - - def removePage(self, object): - """ - Overwritten method to remove a page. - - @param object object to be removed (QObject) - """ - QTabWidget.removePage(self, object) - - self.disconnect( object, PYSIGNAL('captionChanged'), - self.handleCaptionChange ) - self.editors.remove(object) - - def hasEditor(self, editor): - """ - Public method to check for an editor. - - @param editor editor object to check for - @return flag indicating, whether the editor to be checked belongs - to the list of editors managed by this tab widget. - """ - return editor in self.editors - - def hasEditors(self): - """ - Public method to test, if any editor is managed. - - @return flag indicating editors are managed - """ - return len(self.editors) and 1 or 0 - -class Tabview(QSplitter, ViewManager): - """ - Class implementing a tabbed viewmanager class embedded in a splitter. - - @signal lastEditorClosed emitted after the last editor window was closed - @signal editorOpened emitted after an editor window was opened - @signal editorSaved emitted after an editor window was saved - """ - def __init__(self,parent, ui): - """ - Constructor - - @param parent parent widget (QWidget) - @param ui reference to the main user interface - @param dbs reference to the debug server object - """ - self.tabWidgets = [] - - QSplitter.__init__(self,parent) - ViewManager.__init__(self, ui) - tw = TabWidget(self) - self.tabWidgets.append(tw) - self.currentTabWidget = tw - self.connect(tw, SIGNAL('currentChanged(QWidget*)'), - self.handleCurrentChanged) - tw.installEventFilter(self) - tw.tabBar().installEventFilter(self) - self.setOrientation(QSplitter.Vertical) - - def initViewActions(self): - """ - Protected method defining the user interface actions for the view commands. - """ - ViewManager.initViewActions(self) - - self.nextTabAct = QAction(self.trUtf8('Show next tab'), - self.trUtf8('Show next tab'), - QKeySequence(self.trUtf8('Ctrl+Alt+Tab')), self) - self.connect(self.nextTabAct, SIGNAL('activated()'), self.nextTab) - self.viewActions.append(self.nextTabAct) - - self.prevTabAct = QAction(self.trUtf8('Show previous tab'), - self.trUtf8('Show previous tab'), - QKeySequence(self.trUtf8('Shift+Ctrl+Alt+Tab')), self) - self.connect(self.prevTabAct, SIGNAL('activated()'), self.prevTab) - self.viewActions.append(self.prevTabAct) - - def nextTab(self): - """ - Private slot used to show the next tab of the current tabwidget. - """ - self.currentTabWidget.nextTab() - - def prevTab(self): - """ - Private slot used to show the previous tab of the current tabwidget. - """ - self.currentTabWidget.prevTab() - - def canCascade(self): - """ - Public method to signal if cascading of managed windows is available. - - @return flag indicating cascading of windows is available - """ - return 0 - - def canTile(self): - """ - Public method to signal if tiling of managed windows is available. - - @return flag indicating tiling of windows is available - """ - return 0 - - def canSplit(self): - """ - public method to signal if splitting of the view is available. - - @return flag indicating splitting of the view is available. - """ - return 1 - - def tile(self): - """ - Public method to tile the managed windows. - """ - pass - - def cascade(self): - """ - Public method to cascade the managed windows. - """ - pass - - def removeAllViews(self): - """ - Private method to remove all views (i.e. windows) - """ - for win in self.editors: - self.removeView(win) - - def removeView(self, win): - """ - Private method to remove a view (i.e. window) - - @param win editor window to be removed - """ - for tw in self.tabWidgets: - if tw.hasEditor(win): - tw.removePage(win) - break - win.closeIt() - - # if this was the last editor in this view, switch to the next, that - # still has open editors - for i in range(self.tabWidgets.index(tw), -1, -1) + \ - range(self.tabWidgets.index(tw) + 1, len(self.tabWidgets)): - if self.tabWidgets[i].hasEditors(): - self.currentTabWidget = self.tabWidgets[i] - self.activeWindow().setFocus() - break - - def addView(self, win, fn=None, title=None): - """ - Private method to add a view (i.e. window) - - @param win editor window to be added - @param fn filename of this editor - """ - win.show() - if fn is None: - if title== None : - self.untitledCount += 1 - self.currentTabWidget.addTab(win, self.trUtf8("Untitled %1").arg(self.untitledCount)) - else : - self.currentTabWidget.addTab(win, title) - else: - txt = os.path.basename(fn) - if not QFileInfo(fn).isWritable(): - txt = '%s (ro)' % txt - self.currentTabWidget.addTab(win, txt) - self.currentTabWidget.setTabToolTip(win, os.path.dirname(fn)) - self.currentTabWidget.showPage(win) - win.setFocus() - - def showView(self, win, fn=None): - """ - Private method to show a view (i.e. window) - - @param win editor window to be shown - @param fn filename of this editor - """ - win.show() - for tw in self.tabWidgets: - if tw.hasEditor(win): - tw.showPage(win) - self.currentTabWidget = tw - break - win.setFocus() - - def activeWindow(self): - """ - Private method to return the active (i.e. current) window. - - @return reference to the active editor - """ - return self.currentTabWidget.currentPage() - - def handleShowWindowMenu(self, windowMenu): - """ - Private method to set up the viewmanager part of the Window menu. - - @param windowMenu reference to the window menu - """ - pass - - def initWindowActions(self): - """ - Define the user interface actions for window handling. - """ - pass - - def setEditorName(self, editor, newName): - """ - Change the displayed name of the editor. - - @param editor editor window to be changed - @param newName new name to be shown (string or QString) - """ - self.currentTabWidget.changeTab(editor, - os.path.basename(unicode(newName))) - self.currentTabWidget.setTabToolTip(editor, - os.path.dirname(unicode(newName))) - - def handleModificationStatusChanged(self, m, editor): - """ - Private slot to handle the modificationStatusChanged signal. - - @param m flag indicating the modification status (boolean) - @param editor editor window changed - """ - for tw in self.tabWidgets: - if tw.hasEditor(editor): - break - if m: - tw.setTabIconSet(editor, - QIconSet(utilIcons.getPixmap("fileModified.png"))) - elif editor.hasSyntaxErrors(): - tw.setTabIconSet(editor, - QIconSet(utilIcons.getPixmap("syntaxError.png"))) - else: - tw.setTabIconSet(editor, - QIconSet(utilIcons.getPixmap("empty.png"))) - self.checkActions(editor) - - def handleSyntaxErrorToggled(self, editor): - """ - Private slot to handle the syntaxerrorToggled signal. - - @param editor editor that sent the signal - """ - for tw in self.tabWidgets: - if tw.hasEditor(editor): - break - if editor.hasSyntaxErrors(): - tw.setTabIconSet(editor, - QIconSet(utilIcons.getPixmap("syntaxError.png"))) - else: - tw.setTabIconSet(editor, - QIconSet(utilIcons.getPixmap("empty.png"))) - - ViewManager.handleSyntaxErrorToggled(self, editor) - - def addSplit(self): - """ - Public method used to split the current view. - """ - tw = TabWidget(self) - tw.show() - self.tabWidgets.append(tw) - self.currentTabWidget = self.tabWidgets[-1] - self.connect(tw, SIGNAL('currentChanged(QWidget*)'), - self.handleCurrentChanged) - tw.installEventFilter(self) - tw.tabBar().installEventFilter(self) - self.setSizes([int(100/len(self.tabWidgets))] * len(self.tabWidgets)) - self.splitRemoveAct.setEnabled(1) - - def removeSplit(self): - """ - Public method used to remove the current split view. - - @return flag indicating successfull removal - """ - if len(self.tabWidgets) > 1: - tw = self.currentTabWidget - res = 1 - savedEditors = tw.editors[:] - for editor in savedEditors: - res &= self.closeEditor(editor) - if res: - i = self.tabWidgets.index(tw) - if i == len(self.tabWidgets)-1: - i -= 1 - self.tabWidgets.remove(tw) - tw.close(1) - self.currentTabWidget = self.tabWidgets[i] - if len(self.tabWidgets) == 1: - self.splitRemoveAct.setEnabled(0) - return 1 - - return 0 - - def setSplitOrientation(self, orientation): - """ - Public method used to set the orientation of the split view. - - @param orientation orientation of the split - (QSplitter.Horizontal or QSplitter.Vertical) - """ - self.setOrientation(orientation) - - def handleCurrentChanged(self, editor): - """ - Private slot to handle the currentChanged signal. - - @param editor selected editor window - """ - self.checkActions(editor) - editor.setFocus() - - def eventFilter(self, watched, event): - """ - Method called to filter the event queue. - - @param watched the QObject being watched - @param event the event that occurred - @return always 0 - """ - if event.type() == QEvent.MouseButtonPress and \ - not event.button() == Qt.RightButton: - if isinstance(watched, QTabWidget): - self.currentTabWidget = watched - elif isinstance(watched, QTabBar): - self.currentTabWidget = watched.parent() - elif isinstance(watched, QScintilla.Editor.Editor): - for tw in self.tabWidgets: - if tw.hasEditor(watched): - self.currentTabWidget = tw - break - - aw = self.activeWindow() - if aw is not None: - self.checkActions(aw) - aw.setFocus() - - return 0 - - -class MyTabview(Tabview): - """ - Base class inherited by all specific viewmanager classes. - - It defines the interface to be implemented by specific - viewmanager classes and all common methods. - - @signal lastEditorClosed emitted after the last editor window was closed - @signal editorOpened(string) emitted after an editor window was opened - @signal editorSaved(string) emitted after an editor window was saved - @signal checkActions(editor) emitted when some actions should be checked - for their status - @signal cursorChanged(editor) emitted after the cursor position of the active - window has changed - @signal breakpointToggled(editor) emitted when a breakpoint is toggled. - @signal bookmarkToggled(editor) emitted when a bookmark is toggled. - """ - def __init__(self, parent, ui): - Tabview.__init__(self, parent, ui) - self.appli=parent - self.code =self.appli.code - self.salome=self.appli.salome - self.initRecent() - - def initRecent(self) : - rep=self.appli.CONFIGURATION.rep_user - monFichier=rep+"/listefichiers_"+self.code - index=0 - try : - f=open(monFichier) - while ( index < 9) : - ligne=f.readline() - if ligne != "" : - l=(ligne.split("\n"))[0] - self.recent.append(l) - index=index+1 - except : pass - - try : f.close() - except : pass - - def SauveRecents(self) : - rep=self.appli.CONFIGURATION.rep_user - monFichier=rep+"/listefichiers_"+self.code - try : - f=open(monFichier,'w') - if len(self.recent) == 0 : return - index=0 - while ( index < len(self.recent)): - ligne=str(self.recent[index])+"\n" - f.write(ligne) - index=index+1 - except : - pass - try : - f.close() - except : - pass - - - def checkActions(self, editor, setSb=1): - """ - Private slot to check some actions for their enable/disable status and set the statusbar info. - - @param editor editor window - @param setSb flag indicating an update of the status bar is wanted (boolean) - """ - self.emit(PYSIGNAL('checkActions'), (editor,)) - - - def addToRecentList(self, fn): - """ - Public slot to add a filename to the list of recently opened files. - - @param fn name of the file to be added - """ - self.recent.remove(fn) - self.recent.prepend(fn) - if len(self.recent) > 9: - self.recent = self.recent[:9] - - def handleOpen(self,fn=None,patron=0,units=None): - """ - Public slot to open a Python JDC file. - - @param prog name of file to be opened (string or QString) - patron booleen pour indiquer si le fichier doit etre - ajoute a la liste des fichiers ouverts recemment - """ - # Get the file name if one wasn't specified. - if fn is None: - - fn = QFileDialog.getOpenFileName(self._getOpenStartDir(), - self.trUtf8('JDC Files (*.comm);;''All Files (*)'), self.ui) - - if fn.isNull(): - return - - fn = normabspath(unicode(fn)) - - newWin, editor = self.getEditor(fn,units=units) - - if newWin: - self.handleModificationStatusChanged(editor.modified, editor) - self.checkActions(editor) - - # insert filename into list of recently opened files - if patron == 0 : self.addToRecentList(fn) - - - ################################################################## - ## Below are protected utility methods - ################################################################# - - def _getOpenStartDir(self): - """ - Protected method to return the starting directory for a file open dialog. - - The appropriate starting directory is calculated - using the following search order, until a match is found:
- 1: Directory of currently active editor
- 2: Directory of currently active Project
- 3: CWD - - @return String name of directory to start or None - """ - # if we have an active source, return its path - if self.activeWindow() is not None and \ - self.activeWindow().getFileName(): - return os.path.dirname(self.activeWindow().getFileName()) - - - else: - # None will cause open dialog to start with cwd - try : - userDir=self.appli.CONFIGURATION.savedir - except : - try : - userDir=os.path.expanduser("~") - except : - userDir="" - return userDir - - - def handleEditorOpened(self): - """ - Private slot to handle the editorOpened signal. - """ - pass - - def handleModificationStatusChanged(self, m, editor): - """ - Private slot to handle the modificationStatusChanged signal. - - @param m flag indicating the modification status (boolean) - @param editor editor window changed - """ - for tw in self.tabWidgets: - if tw.hasEditor(editor): - break - if m: - #tw.setTabIconSet(editor, - # QIconSet(utilIcons.getPixmap("fileModified.png"))) - pass - elif editor.hasSyntaxErrors(): - tw.setTabIconSet(editor, - QIconSet(utilIcons.getPixmap("syntaxError.png"))) - else: - tw.setTabIconSet(editor, - QIconSet(utilIcons.getPixmap("empty.png"))) - self.checkActions(editor) - - - - -if __name__=='__main__': - import sys - import prefs - if hasattr(prefs,'encoding'): - # Hack pour changer le codage par defaut des strings - import sys - reload(sys) - sys.setdefaultencoding(prefs.encoding) - del sys.setdefaultencoding - # Fin hack - - #CS_pbruno note: fait implicitement des trucs ces imports (grr) - #import styles - from Editeur import import_code - from Editeur import session - - # Analyse des arguments de la ligne de commande - options=session.parse(sys.argv) - code=options.code - app = QApplication(sys.argv) - - mw = MyTabview(None,None) - app.setMainWidget(mw) - app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()")) - mw.show() - mw.getEditor('azAster.comm') - mw.getEditor('azAster2.comm') - res = app.exec_loop() - sys.exit(res) diff --git a/InterfaceTK/CMakeLists.txt b/InterfaceTK/CMakeLists.txt deleted file mode 100644 index ebc018e5..00000000 --- a/InterfaceTK/CMakeLists.txt +++ /dev/null @@ -1,48 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== - -# Installation de tous les fichiers Python, texte et images du repertoire et des sous-repertoires (sauf CVS) -install ( - FILES - appli.py basestyle.py browser.py bureau.py catabrowser.py - cataediteur.py centerwindow.py change_comm.py compobase.py - compobloc.py compocommandecomm.py compocomm.py compoerror.py - compofact.py compoformule.py compojdc.py compomacro.py - compomclist.py componiveau.py componuplet.py compooper.py - compoparameval.py compoparam.py compoproc.py composimp.py - definition_cata.py eficas_go.py eficas.py eficas_test.py - faq.py fenetre_mc_inconnus.py fonctionpanel.py fontes.py - images.py __init__.py Interp.py jdcdisplay.py - listeFichiers.py listePatronsTK.py macrodisplay.py menubar.py - newsimppanel.py options.py panels.py panelsSalome.py - patches.py plusieursassdpanel.py plusieursbasepanel.py - plusieursintopanel.py plusieurspanel.py readercata.py - shellpanel.py splash.py statusbar.py styles.py - toolbar.py tooltip.py treeitemincanvas.py treewidget.py - TroisDPal.py uniqueassdpanel.py uniquebasepanel.py - uniquecomppanel.py uniqueintopanel.py - uniquepanel.py uniquesdcopanel.py widgets.py - DESTINATION ${CMAKE_INSTALL_PREFIX}/InterfaceTK - ) - -### Local Variables: -### mode: cmake -### End: diff --git a/InterfaceTK/Interp.py b/InterfaceTK/Interp.py deleted file mode 100644 index 8fb95820..00000000 --- a/InterfaceTK/Interp.py +++ /dev/null @@ -1,153 +0,0 @@ -# -*- 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 Tkinter,ScrolledText -import os, sys, string, traceback -import code - -sys.ps1 = ">>> " -sys.ps2 = "... " - -class PythonInterpreter( code.InteractiveConsole): - def __init__( self, text, namespace = None): - code.InteractiveConsole.__init__( self, namespace) - self.text = text - - def showtraceback( self): - start = self.text.pos + " - 1 lines" - code.InteractiveConsole.showtraceback( self) - end = self.text.pos - self.text.tag_add( "exception", start, end) - -class InterpWindow(Tkinter.Toplevel): - def __init__(self,namespace, parent=None): - Tkinter.Toplevel.__init__(self,parent) - self._initTkWidgets() - self.stdout = self.stderr = self - self.pos = '1.0' - self.history = [ '' ] - self.hpos = 0 - self.tabCount = 0 - self.shell = PythonInterpreter( self,namespace) - self.write("Python %s on %s\n%s\n(%s)\n" % - (sys.version, sys.platform, sys.copyright, - self.__class__.__name__)) - self.write( sys.ps1) - self.text.focus_set() - - def _initTkWidgets( self): - self.text = ScrolledText.ScrolledText( self, bg = "white",fg="black", wrap="word") - self.text.pack( fill='both', expand = 1) - self.text.bind( '', self.clearMsg) - self.text.bind( '', self.inputhandler) - self.text.bind( '', self.inputhandler) - self.text.bind( '', self.uphistory) - self.text.bind( '', self.downhistory) - self.text.bind( '', self.goto_sol) - self.text.bind( '', self.sendeof) - self.text.tag_config("exception", foreground = "red") - - def swapStdFiles(self): - sys.stdout,self.stdout = self.stdout,sys.stdout - sys.stderr,self.stderr = self.stderr,sys.stderr - - def write(self, data): - self.text.insert("end", data) - self.pos = self.text.index("end - 1 char") - self.text.yview_pickplace("end") - - def tag_add( self, tag, start, end): - self.text.tag_add( tag, start, end) - - def inputhandler(self, *args): - # Remove any extraneous stuff - self.text.delete( self.pos + " lineend", "end") - # Now get the line - line = self.text.get(self.pos, "end - 1 char") - self.text.insert("end", "\n") - self.pos = self.text.index("end") - self.addHistory( line) - self.swapStdFiles() - if self.shell.push( line): - self.write(sys.ps2) - else: - self.write(sys.ps1) - self.swapStdFiles() - self.text.mark_set("insert", "end") - return "break" - - def addHistory( self, line): - if line: - self.history.insert( len( self.history) - 1, line) - self.hpos = len( self.history) - 1 - - def sendeof(self, *args): - self.destroy() - return "break" - - def uphistory(self, event=None): - if not self.history: return "break" - - if self.hpos > 0: - self.hpos = self.hpos - 1 - - line = self.history[ self.hpos] - self.text.delete( self.pos, "end") - self.text.insert( self.pos, line) - - return "break" - - def downhistory( self, event=None): - if not self.history: return "break" - - if self.hpos < (len( self.history) - 1): - self.hpos = self.hpos + 1 - - line = self.history[ self.hpos] - self.text.delete( self.pos, "end") - self.text.insert( self.pos, line) - - return "break" - - def goto_sol( self, event=None): - """ - Met en mode edition la ligne courante - """ - self.text.mark_set( 'insert', 'insert linestart + 4 chars') - return "break" - - def clearMsg( self, event=None): - index = self.text.index( "insert") - self.text.delete( "insert lineend", "end") - self.tabCount = 0 - -if __name__ == "__main__": - app = Tkinter.Tk() - d={'a':1} - - def go(): - InterpWindow(d,parent=app) - - Tkinter.Button(app,text="Interp",command=go).pack() - Tkinter.Button(app,text="Quit",command=app.destroy).pack() - - app.mainloop() - diff --git a/InterfaceTK/TroisDPal.py b/InterfaceTK/TroisDPal.py deleted file mode 100644 index c0cc0d07..00000000 --- a/InterfaceTK/TroisDPal.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- 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/InterfaceTK/__init__.py b/InterfaceTK/__init__.py deleted file mode 100644 index 28da2d3d..00000000 --- a/InterfaceTK/__init__.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== diff --git a/InterfaceTK/appli.py b/InterfaceTK/appli.py deleted file mode 100644 index 7293863e..00000000 --- a/InterfaceTK/appli.py +++ /dev/null @@ -1,461 +0,0 @@ -# -*- 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 APPLI qui est la classe mère de - l'application EFICAS. Elle prend en charge l'organisation générale - des composants graphiques et l'initialisation Tk - L'aspect applicatif doit etre pris en charge par la classe dérivée -""" -# Modules Python -import os -import string -import sys -import types -import Pmw -import Tkinter -from widgets import showerror - -# Modules Eficas -import splash -import prefs -name='prefs_'+prefs.code -prefsCode=__import__(name) -import styles -from styles import style -import fontes -import tooltip -import properties -import convert,generator -from Editeur import comploader -from Editeur.utils import extension_fichier,stripPath - -from widgets import Fenetre -from Misc import MakeNomComplet -from Editeur import session - -import listeFichiers -import listePatronsTK - -REPTK=os.path.dirname(os.path.abspath(__file__)) -sys.path[:0]=[REPTK] - -VERSION="EFICAS v2.1" - -class APPLI: - def __init__ (self,master,code=prefs.code,fichier=None,test=0,ihm="TK",salome=0) : - self.ihm=ihm - self.code=code - self.salome=salome - self.top=master - self.top.protocol("WM_DELETE_WINDOW",self.exitEFICAS) - self.appliEficas=self - - #dimensionnement de la fenetre principale - #aspect ratio de l'ecran - aspect=float(self.top.winfo_screenwidth())/float(self.top.winfo_screenheight()) - #resolution (pixels par point). On utilise le fait qu'on a "normalement" 72 points par inch - resolution= self.top.winfo_screenwidth()/(self.top.winfo_screenmmwidth()/25.4*72) - DDY=max(20,resolution*(fontes.standard[1]+4)) #largeur d'un caractere fonte standard en pixel - x=int(45*DDY) #largeur d'ouverture de 45 caracteres de fonte standard - y=int(25*DDY) #hauteur d'ouverture de 25 caracteres de fonte standard - minx=x*8/10 #largeur min (80 pour cent de largeur) - miny=y*8/10 #hauteur min (80 pour cent de hauteur) - self.top.minsize(minx,miny) - self.top.geometry('%dx%d' % (x,y)) - - self.top.title(VERSION + ' pour '+self.code) - self.titre=VERSION + ' pour '+self.code - self.top.withdraw() - self.initializeTk(master) - Pmw.initialise(master) - - self.dict_reels={} - self.liste_simp_reel=[] - # L'attribut test permet d'activer les panneaux de splash et d'erreur (test=0) - # Si test est different de 0, les panneaux ne sont pas activés - self.test=test - - # Lecture des parametres de configuration (fichier global editeur.ini - # et utilisateur eficas.ini) - self.lecture_parametres() - - self.format_fichier = Tkinter.StringVar() - self.message='' - # Avant la creation du bureau qui lit le catalogue - self.version_code=session.d_env.cata - - # 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.listeFichiers=listeFichiers.listeFichiers(self) - self.listePatrons=listePatronsTK.listePatronsTK(self) - self.dir=None - - # Fermer le splash et deiconifier la fenetre principale si on n'est pas en test - if (self.test == 0): - splash.fini_splash() - #self.affiche_FAQ() - - # Ouverture des fichiers de commandes donnes sur la ligne de commande - cwd=os.getcwd() - self.dir=cwd - for study in session.d_env.studies: - os.chdir(cwd) - d=session.get_unit(study,self) - self.bureau.openJDC(file=study["comm"],units=d) - - - def send_message(self,message): - self.message=message - - def exitEFICAS(self): - self.quit() - - def quit(self): - if self.top: - self.top.quit() - - def lecture_parametres(self): - """ - Active la lecture des paramètres standards et utilisateur - """ - if (self.test == 0): - splash._splash.configure(text = "Chargement des paramètres utilisateur") - import configuration_ASTER - self.CONFIGURATION = configuration_ASTER.make_config(self,prefsCode.repIni) - self.CONFIGStyle = configuration_ASTER.make_config_style(self,prefsCode.repIni) - - def cree_composants_graphiques(self): - """ - Cree les constituants graphiques fixes de l'application : - - menubar - - toolbar - - statusbar - """ - if (self.test == 0): - splash._splash.configure(text = "Chargement de l'IHM") - splash._splash.configure(text = "Chargement de la menubar") - import menubar - self.menubar=menubar.MENUBAR(self,self.top) - if (self.test == 0): - splash._splash.configure(text = "Chargement de la toolbar") - import toolbar - self.toolbar=toolbar.TOOLBAR(self,self.top) - if (self.test == 0): - splash._splash.configure(text = "Chargement de la statusbar") - import statusbar - self.statusbar=statusbar.STATUSBAR(self.top,styles.style.statusfont) - - def load_appli_composants(self): - """ - Cree les autres constituants graphiques de l'application : - - bureau - - readercata - - ... - Cette creation est parametrable par fichier prefs.py - """ - if (self.test == 0): - splash._splash.configure(text = "Chargement des appli_composants") - for mname in self.appli_composants: - self.load_appli_composant(mname) - - def load_appli_composant(self,mname): - module=__import__(mname,globals(),locals()) - factory=getattr(module,mname.upper()) - appli_composant=factory(self,self.top) - setattr(self,mname,appli_composant) - self.fill_menus(appli_composant,appli_composant.menu_defs) - self.toolbar.creer_boutons_appli_composant(appli_composant.button_defs,appli_composant) - - def affiche_FAQ(self): - import faq - faq.affiche(self.top) - - def affiche_infos(self,message): - self.statusbar.affiche_infos(message) - return - - def initializeTk(self, root): - """ - Initialize platform specific options - """ - if sys.platform == 'mac': - self.initializeTk_mac(root) - elif sys.platform == 'win32': - self.initializeTk_win32(root) - else: - self.initializeTk_unix(root) - - def initializeTk_win32(self, root): - root.option_add('*Font', fontes.standard) - root.option_add('*EntryField.Entry.Font', fontes.standard) - root.option_add('*Listbox*Font',fontes.standard) - - def initializeTk_colors_common(self, root): - root.option_add('*background', 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('*Listbox*background', style.list_background) - root.option_add('*Listbox*selectBackground', style.list_select_background) - root.option_add('*Listbox*selectForeground', style.list_select_foreground) - - def initializeTk_mac(self, root): - self.initializeTk_colors_common(root) - - def initializeTk_unix(self, root): - root.option_add('*Font', fontes.standard) - root.option_add('*EntryField.Entry.Font',fontes.standard ) - root.option_add('*Listbox*Font', fontes.standard) - self.initializeTk_colors_common(root) - - def get_texte_infos(self): - """ - Retourne un texte d'informations sur la session courante d'EFICAS - """ - texte = VERSION + '\n\n' - texte = texte + 'EFICAS est un produit développé par \nEDF-R&D\n' - texte = texte + 'Equipe : SINETICS\n\n' - texte = texte + 'Code utilisé : %s version %s\n' % (self.code,properties.version) - return texte - - def efface_aide(self,event): - """ - Efface la bulle d'aide d'un panneau - """ - try: - self.aide.destroy() - except: - pass - return - - def affiche_aide(self,event,aide): - """ - Affiche l'aide concernant un panneau - """ - x=event.x - y=event.y - widget=event.widget - self.aide=tooltip.TOOLTIP(widget) - self.aide.xoffset = 10 - self.aide.yoffset = - widget.winfo_height()/2 - self.aide.setText(aide) - self.aide._showTip() - return - - def cree_menu(self,menu,itemlist,appli_composant): - """ - Ajoute les items du tuple itemlist - dans le menu menu - """ - number_item=0 - radio=None - for item in itemlist: - number_item=number_item + 1 - raccourci_label="" - if not item : - #menu.add_separator() - pass - else: - if len(item)==3: - raccourci=item[2] - raccourci_label=" "+raccourci - newitem=(item[0],item[1]) - else : - if len(item)==4: - raccourci=item[2] - raccourci_label=" "+item[3] - newitem=(item[0],item[1]) - else : - raccourci="" - newitem=item - item=newitem - label,method=item - if type(method) == types.TupleType: - # On a un tuple => on cree une cascade - menu_cascade=Tkinter.Menu(menu) - menu.add_cascade(label=label,menu=menu_cascade) - self.cree_menu(menu_cascade,method,appli_composant) - elif method[0] == '&': - # On a une chaine avec & en tete => on cree un radiobouton - command=getattr(appli_composant,method[1:]) - menu.add_radiobutton(label=label,command=command) - if radio == None:radio=number_item - else: - command=getattr(appli_composant,method) - menu.add_command(label=label,accelerator=raccourci_label,command=command) - if raccourci != "" : - self.top.bind(raccourci,command) - # Si au moins un radiobouton existe on invoke le premier - if radio:menu.invoke(radio) - - def fill_menus(self,appli_composant,defs): - menudict=self.menubar.menudict - for mname,itemlist in defs: - if mname in menudict.keys() : - menu=menudict[mname] - else : - continue - self.cree_menu(menu,itemlist,appli_composant) - - def update_jdc_courant(self): - self.bureau.update_jdc_courant() - - def affiche_alerte(self,titre,message): - f=Fenetre(self, titre="Compte-rendu d'erreur", texte = titre + "\n\n" + message) - f.wait() - - -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',ihm="TK") : - self.ihm=ihm - self.salome=0 - 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 - self.titre="STANDALONE POUR TEST" - - # 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/InterfaceTK/basestyle.py b/InterfaceTK/basestyle.py deleted file mode 100644 index e4287b75..00000000 --- a/InterfaceTK/basestyle.py +++ /dev/null @@ -1,27 +0,0 @@ -class STYLE: - 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') - - standardcourier10 = ("Courier",14) - statusfont = ("Helvetica",16) - -style=STYLE() diff --git a/InterfaceTK/browser.py b/InterfaceTK/browser.py deleted file mode 100644 index 51c4e3a4..00000000 --- a/InterfaceTK/browser.py +++ /dev/null @@ -1,65 +0,0 @@ -# -*- 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 -import os,string - -# Modules Eficas -import Interp -import catabrowser -import cataediteur - -class BROWSER: - - menu_defs=[ - ('Browsers',[ - ('Browser catalogue','browser_catalogue'), - ('Editeur catalogue','edite_catalogue'), - ('Shell','shell'), - ] - ) - ] - - button_defs=[] - - def __init__(self,appli,parent): - self.appli=appli - self.parent=parent - self.cataitem = catabrowser.CATAItem(self,"Catalogue "+self.appli.readercata.code, - self.appli.readercata.cata, - objet_cata_ordonne = self.appli.readercata.cata_ordonne_dico) - - def shell(self,event=None): - if not hasattr(self.appli.bureau.JDCDisplay_courant,'jdc'):return - d={'j':self.appli.bureau.JDCDisplay_courant.jdc} - Interp.InterpWindow(d,parent=self.parent) - - def browser_catalogue(self,event=None): - catabrowser.CataBrowser(parent=self.parent,appli=self.appli, - cata = self.appli.readercata.cata, - item = self.cataitem) - - def edite_catalogue(self,event=None): - cataediteur.CataEditeur(parent=self.parent,appli=self.appli,cata=self.appli.readercata.cata) - - - diff --git a/InterfaceTK/bureau.py b/InterfaceTK/bureau.py deleted file mode 100644 index 23e0b109..00000000 --- a/InterfaceTK/bureau.py +++ /dev/null @@ -1,830 +0,0 @@ -# -*- 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 BUREAU qui gere les JDC ouverts -""" -# Modules Python -import os,string,sys,re -import traceback -import Pmw -from widgets import askopenfilename,asksaveasfilename -from widgets import showinfo,askyesno,showerror - -# Modules Eficas -import splash -import prefs -name='prefs_'+prefs.code -prefsCode=__import__(name) -import convert -import generator -import AIDE -import os -from jdcdisplay import JDCDISPLAY -from Editeur.utils import extension_fichier,stripPath,save_in_file -from widgets import Fenetre,Ask_Format_Fichier,FenetreSurLigneWarning -from fenetre_mc_inconnus import fenetre_mc_inconnus -from Ihm import CONNECTOR -try : - from Traducteur import traduitV7V8 - from Traducteur import traduitV8V9 -except : - pass - -from Editeur import comploader - -dict_defext = {"ASTER":".comm","HOMARD":".py","OPENTURNS":".comm"} -dict_filtyp = {"ASTER":(("ASTER", ".comm"),),"HOMARD":(("HOMARD", ".py"),),"OPENTURNS":(("OPENTURNS", ".comm"),)} - -class BUREAU: - menu_defs=[ - ('Fichier',[ - ('Nouveau','newJDC',''), - ('Ouvrir','openJDC',''), - ('Enregistrer','saveJDC',''), - ('Enregistrer sous','saveasJDC',''), - None, - ('Fermer','closeJDC',''), - ('Quitter','exitEFICAS',''), - ] - ), - ('Edition',[ - ('Copier','copy',''), - ('Couper','cut',''), - ('Coller','paste',''), - ] - ), - ('Jeu de commandes',[ - ('Rapport de validation','visuCRJDC',''), - ('Fichier a plat','visu_a_plat',''), - ('Fichier .py','visuJDC_py'), - ('Fichier source','visu_txt_brut_JDC',''), - ('Parametres Eficas','affichage_fichier_ini'), - ('Mots-cles inconnus','mc_inconnus'), - ] - ), - ('Traduction',[ - ('Traduction v7 en v8','TraduitFichier','','Ctrl+T') - ] - ), - ('Aide',[ - ('Aide EFICAS','aideEFICAS','','Ctrl+A'), - ] - ), - ] - - button_defs = (('New24',"newJDC","Creation 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'), - ('Zoom24',"visuJDC","Visualisation du fichier de commandes",'always'), - None, - ('Copy24',"copy","Copie l'objet courant",'jdc'), - ('Cut24',"cut","Coupe l'objet courant",'jdc'), - ('Paste24',"paste","Colle l'objet copie apres l'objet courant",'jdc'), - None, - ('Delete24',"delete","Supprime l'objet courant",'jdc'), - ('Help24',"view_doc","Documentation de l'objet courant",'jdc') - ) - try: - menu_defs=prefsCode.menu_defs['bureau'] - except: - pass - try: - button_defs=prefsCode.button_defs['bureau'] - except: - pass - - def __init__(self,appli,parent): - self.parent=parent - self.appli=appli - if self.appli.test == 0 : - splash._splash.configure(text = "Creation du bureau") - self.nb = Pmw.NoteBook(self.parent,raisecommand=self.selectJDC) - self.nb.pack(fill='both',expand=1) - self.JDCDisplay_courant=None - self.fileName=None - self.liste_JDCDisplay=[] - self.charger_composants() - self.cree_cataitem() - self.text_reel="" - self.savedir = self.appli.CONFIGURATION.savedir - - def charger_composants(self): - comploader.charger_composants() - - def cree_cataitem(self): - """ - On recupere dans l'appli_composant readercata les variables - qui servent par la suite pour la creation des JDC - """ - self.cataitem=self.appli.readercata.cataitem - self.cata=self.appli.readercata.cata - self.cata_ordonne_dico=self.appli.readercata.cata_ordonne_dico - self.code=self.appli.readercata.code - self.version_code=self.appli.readercata.version_code - self.fic_cata=self.appli.readercata.fic_cata - - def selectJDC(self,event=None): - """ - Cette methode est appelee chaque fois que l'on selectionne - l'onglet d'un JDC dans le NoteBook des JDC. - Elle permet de stocker dans les variable self.JDC et - self.JDCDisplay_courant les valeurs concernant le JDC courant - """ - if len(self.liste_JDCDisplay) == 0 : return - #if self.JDCDisplay_courant : self.JDCDisplay_courant.jdc.unset_context() - numero_jdc = self.nb.index(self.nb.getcurselection()) - self.JDCDisplay_courant.unselect() - self.JDCDisplay_courant = self.liste_JDCDisplay[numero_jdc] - self.JDC = self.JDCDisplay_courant.jdc - self.JDCName = self.JDC.nom - self.JDCDisplay_courant.select() - #print "selectJDC",numero_jdc,self.JDCDisplay_courant,self.JDCName - - - def newJDC_include(self,event=None): - """ - Initialise un nouveau JDC include vierge - """ - import Extensions.jdc_include - JdC_aux=Extensions.jdc_include.JdC_include - - self.appli.statusbar.reset_affichage_infos() - - CONTEXT.unset_current_step() - jaux=self.cata[0].JdC(procedure="",appli=self.appli, - cata=self.cata,cata_ord_dico=self.cata_ordonne_dico, - rep_mat=self.appli.CONFIGURATION.rep_mat, - ) - jaux.analyse() - - J=JdC_aux(procedure="",appli=self.appli, - cata=self.cata,cata_ord_dico=self.cata_ordonne_dico, - jdc_pere=jaux, - rep_mat=self.appli.CONFIGURATION.rep_mat, - ) - J.analyse() - self.JDCName=J.nom - self.fileName=None - self.ShowJDC(J,self.JDCName) - self.appli.toolbar.active_boutons() - return J - - def newJDC(self,event=None): - """ - Initialise un nouveau JDC vierge - """ - self.appli.statusbar.reset_affichage_infos() - - CONTEXT.unset_current_step() - J=self.cata[0].JdC(procedure="",appli=self.appli, - cata=self.cata,cata_ord_dico=self.cata_ordonne_dico, - rep_mat=self.appli.CONFIGURATION.rep_mat, - ) - J.analyse() - self.JDCName=J.nom - 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"): - """ - Lance l'affichage du JDC cad creation du JDCDisplay - Rajoute le JDCDisplay a la liste des JDCDisplay si label_onglet == None cad si on cree - bien un nouveau JDCDisplay et non si on remplace (renommage de l'onglet) - """ - self.JDC=JDC - self.JDCName = self.JDC.nom = nom - if label_onglet == None : - # On veut un nouvel onglet - label_onglet = self.GetLabelJDC() - self.nb.add(label_onglet,tab_text = nom,tab_width=20) - new = 'oui' - else : - new = 'non' - self.JDCDisplay_courant=JDCDISPLAY(self.JDC,nom,appli=self.appli,parent=self.nb.page(label_onglet)) - if new == 'oui': - self.liste_JDCDisplay.append(self.JDCDisplay_courant) - self.JDCDisplay_courant.modified='n' - if enregistre != "non" : - self.JDCDisplay_courant.fichier=self.fileName - else : - self.savedir = self.appli.CONFIGURATION.rep_user - self.nb.selectpage(label_onglet) - self.nb.setnaturalsize() - self.nb.bind_all("",lambda e,s=self:s.selectArbreDown()) - self.nb.bind_all("",lambda e,s=self:s.selectArbreUp()) - self.nb.bind_all("",lambda e,s=self:s.deplieReplieNode()) - texte = "Jeu de commandes :" + self.JDCName+" ouvert" - CONNECTOR.Connect(JDC,"close",self.onClose,(self.JDCDisplay_courant,)) - self.appli.affiche_infos(texte) - - def onClose(self,jdcdisplay): - #print "onClose",jdcdisplay - self.closeJDCDISPLAY(jdcdisplay) - - def closeJDCDISPLAY(self,jdc): - """ - Ferme le jdcdisplay specifie par l'argument jdc - """ - if jdc is self.JDCDisplay_courant: - # on ferme le jdcdisplay courant - self.closeSelectedJDC() - else: - # on ferme un autre jdcdisplay que le courant - old_JDCDisplay=self.JDCDisplay_courant - old_page=self.nb.getcurselection() - - self.JDCDisplay_courant=jdc - self.JDC=jdc.jdc - numero_jdc=self.liste_JDCDisplay.index(jdc) - self.nb.selectpage(numero_jdc) - #print numero_jdc - - self.closeSelectedJDC() - self.JDCDisplay_courant=old_JDCDisplay - self.JDC=old_JDCDisplay.jdc - self.nb.selectpage(old_page) - - def closeJDC (self,event=None) : - """ - Ferme le JDC associe au JDCDISPLAY selectionne - """ - if self.JDCDisplay_courant : - self.JDCDisplay_courant.jdc.close() - - def closeSelectedJDC (self) : - """ - Ferme le JDC courant et detruit l'onglet associe dans le notebook self.nb - """ - if self.JDCDisplay_courant.modified == 'o' : - message = "Voulez-vous sauvegarder le jeu de commandes "+self.JDC.nom+" courant ?" - reponse = askyesno(title="Sauvegarde du jdc courant", - message=message) - if reponse : - test = self.saveJDC() - if test == 0 : - self.appli.affiche_infos("Sauvegarde impossible") - return - - CONNECTOR.Disconnect(self.JDCDisplay_courant.jdc,"close",self.onClose,(self.JDCDisplay_courant,)) - self.JDCDisplay_courant.supprime() - self.JDCDisplay_courant.jdc.supprime() - self.liste_JDCDisplay.remove(self.JDCDisplay_courant) - # Active le mecanisme de selection du notebook (selectJDC) - self.nb.delete(self.nb.getcurselection()) - - try: - index = self.nb.index(self.nb.getcurselection()) - self.JDCDisplay_courant = self.liste_JDCDisplay[index] - self.JDC = self.JDCDisplay_courant.jdc - except: - self.JDC = None - self.JDCDisplay_courant = None - self.appli.toolbar.inactive_boutons() - - def visuCRJDC(self,event=None): - return self.visuCR(mode='JDC') - - def visuCR(self,mode): - """ - Methode permettant l'affichage du rapport de validation - """ - if mode == 'JDC': - if not hasattr(self,'JDC') : return - if self.JDC == None : return - titre="rapport de validation du jeu de commandes courant" - cr = self.JDC.report() - #self.update_jdc_courant() - elif mode == 'CATA': - from Noyau.N_CR import CR - cr = CR() - cr.debut = "Debut rapport de validation du catalogue" - cr.fin = "Fin rapport de validation du catalogue" - titre="rapport de validation du catalogue" - if hasattr(self,'cata_ordonne_cr') : - cr.add(self.cata_ordonne_cr) - if hasattr(self,'cata_dev_ordonne_cr') : - cr.add(self.cata_dev_ordonne_cr) - for cata in self.cata: - if hasattr(cata,'JdC'): - cr.add(cata.JdC.report()) - texte_cr = str(cr) - self.visu_texte_cr = Fenetre(self.appli,titre=titre,texte=texte_cr) - - def openJDC(self,event=None,file=None,units=None,enregistre="oui"): - """ - Demande a l'utilisateur quel JDC existant il veut ouvrir - """ - if self.code == 'ASTER': - filetypes = ( ("format "+self.appli.format_fichier.get(), ".com*"),("Tous",'*')) - elif self.code == 'HOMARD' : - filetypes = ( ("format "+self.appli.format_fichier.get(), ".py"),("Tous",'*')) - elif self.code == 'OPENTURNS' : - filetypes = ( ("format "+self.appli.format_fichier.get(), ".com*"),("Tous",'*')) - else: - filetypes = ( ("format "+self.appli.format_fichier.get(), ".py"),) - if not hasattr(self,'savedir'): - self.savedir = self.appli.CONFIGURATION.savedir - - if not file : - file = askopenfilename(title="Ouverture d'un fichier de commandes Aster", - defaultextension=".comm", - filetypes = filetypes, - initialdir = self.savedir) - if file : - self.fileName = file - e=extension_fichier(file) - self.JDCName=stripPath(file) - self.savedir = os.path.dirname(os.path.abspath(file)) - else : - return - - # Il faut convertir le contenu du fichier en fonction du format - format=self.appli.format_fichier.get() - if convert.plugins.has_key(format): - # Le convertisseur existe on l'utilise - p=convert.plugins[format]() - p.readfile(file) - text=p.convert('exec',self.appli) - if not p.cr.estvide(): - self.appli.affiche_infos("Erreur a la conversion") - Fenetre(self.appli, - 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) - else: - # Il n'existe pas c'est une erreur - self.appli.affiche_infos("Type de fichier non reconnu") - showerror("Type de fichier non reconnu","EFICAS ne sait pas ouvrir ce type de fichier") - return - - # On se met dans le repertoire ou se trouve le fichier de commandes - # pour trouver les eventuels fichiers include ou autres - # localises a cote du fichier de commandes - os.chdir(self.savedir) - CONTEXT.unset_current_step() - J=self.cata[0].JdC(procedure=text,appli=self.appli, - cata=self.cata,cata_ord_dico=self.cata_ordonne_dico, - nom = self.JDCName, - rep_mat=self.appli.CONFIGURATION.rep_mat, - ) - if units is not None: - J.recorded_units=units - J.old_recorded_units=units - - J.analyse() - txt_exception = J.cr.get_mess_exception() - if txt_exception : - # des exceptions ont ete levees a la creation du JDC - # --> on affiche les erreurs mais pas le JDC - self.JDC=J - self.appli.affiche_infos("Erreur fatale au chargement de %s" %file) - if self.appli.test == 0 : - showerror("Erreur fatale au chargement d'un fichier",txt_exception) - 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 ou le JDC est invalide, on affiche son CR - if not self.JDC.isvalid(): - self.appli.top.update() - self.visuCR(mode='JDC') - return J - - def deplieReplieNode(self): - self.JDCDisplay_courant.tree.tree.deplieReplieNode() - - def selectArbreDown(self): - self.JDCDisplay_courant.tree.tree.canvas.focus_set() - self.JDCDisplay_courant.tree.tree.mot_down_force() - - def selectArbreUp(self): - self.JDCDisplay_courant.tree.tree.canvas.focus_set() - self.JDCDisplay_courant.tree.tree.mot_up_force() - - def GetLabelJDC(self,nb_jdc = 'absent'): - """ - Retourne le label de l'onglet du NoteBook associe au JDC a afficher - """ - if nb_jdc == 'absent': - nb_jdc = len(self.nb.pagenames()) - nb_jdc = nb_jdc+1 - label_onglet = 'JDC'+`nb_jdc` - if label_onglet not in self.nb.pagenames() : - return label_onglet - else : - return self.GetLabelJDC(nb_jdc) - - def saveasJDC(self,event=None): - """ - Sauvegarde le JDC courant en demandant imperativement a l'utilisateur de - donner le nom du fichier de sauvegarde - """ - self.saveJDC(echo='oui') - - def saveJDC(self,echo='non'): - """ - Sauvegarde le JDC courant. - Retourne 1 si la sauvegarde s'est bien faite, 0 sinon. - - - Si echo = 'oui' : interactif (l'utilisateur donne le nom sous lequel il - veut sauver le JDC - - Si echo = 'non' : muet (sauvegarde le JDC dans JDC.procedure) - """ - ok = 0 - if not hasattr(self,'JDC') : return 0 - format=self.appli.format_fichier.get() - if generator.plugins.has_key(format): - # Le generateur existe on l'utilise - g=generator.plugins[format]() - jdc_formate=g.gener(self.JDC,format='beautifie') - if format == 'homard': - self.jdc_homard=g.get_homard() - #print "hhhhhhhh" - elif format == 'openturns' : - self.jdc_openturn_xml=g.getOpenturnsXML() - self.jdc_openturn_std=g.getOpenturnsSTD() - if not g.cr.estvide(): - self.appli.affiche_infos("Erreur a la generation") - showerror("Erreur a la generation","EFICAS ne sait pas convertir ce JDC") - return - else: - # Il n'existe pas c'est une erreur - self.appli.affiche_infos("Format %s non reconnu" % format) - showerror("Format %s non reconnu" % format,"EFICAS ne sait pas convertir le JDC") - return - self.jdc_fini = string.replace(jdc_formate,'\r\n','\n') - - if echo =='oui' or self.JDCDisplay_courant.fichier == None: - ok = self.asknomsauvegardeJDC() - elif self.JDCDisplay_courant.fichier != None : - # le JDC a deja un nom : on sauvegarde directement sans demander - # un autre nom au developpeur - if not save_in_file(self.JDCDisplay_courant.fichier,self.jdc_fini,self.appli.dir) : - showinfo("Erreur","Probleme a la sauvegarde du fichier :" + `self.JDCDisplay_courant.fichier`) - #return 0 - ok = 0 - else : - if self.appli.format_fichier.get() == 'homard': - self.save_homard(self.JDCDisplay_courant.fichier,self.jdc_homard) - elif self.appli.format_fichier.get() == 'openturns': - self.save_openturns(self.JDCDisplay_courant.fichier[0:-3], - self.jdc_openturn_xml, - self.jdc_openturn_std) - self.JDCDisplay_courant.stop_modif() - self.appli.affiche_infos("sauvegarde de "+`self.JDCDisplay_courant.fichier`+" effectuee") - ok = 1 - - if ok and self.appli.salome: - # eficas a ete lance a partir deSalome - #1)ajout dans l'arbre d'etude du nom du jdc - if self.appli.salome==0 : return 0 - 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.savedir, SALOME_UNIQUE_BASE_Panel.dict_fichier_unite ) - - #3)creation/mise a jours d'un maillage dans Salome - if self.code == 'ASTER': - self.appli.createOrUpdateMesh() - return ok - - def asknomsauvegardeJDC(self): - """ Demande a l'utilsateur le nom sous lequel il veut sauvegarder le JDC courant """ - titre = "Sauvegarde d'un fichier de commandes "+self.code - if dict_defext.has_key(self.code) : - defext = dict_defext[self.code] - filtyp = dict_filtyp[self.code] - else : - defext = ".py" - filtyp = ( (self.code, ".py"),) - sauvegarde = asksaveasfilename(title=titre, - defaultextension=defext, - filetypes = filtyp, - initialdir = self.savedir) - if sauvegarde : - if not save_in_file(sauvegarde,self.jdc_fini,None) : - showinfo("Erreur","Probleme a la sauvegarde du fichier "+`sauvegarde`) - return 0 - else : - if self.appli.format_fichier.get() == 'homard': - self.save_homard(sauvegarde,self.jdc_homard) - elif self.appli.format_fichier.get() == 'openturns': - self.save_openturns(sauvegarde, - self.jdc_openturn_xml, - self.jdc_openturn_std) - self.JDCDisplay_courant.stop_modif() - self.appli.affiche_infos("Sauvegarde effectuee") - if sauvegarde != self.JDCDisplay_courant.fichier : - # l'utilisateur a sauvegarde le JDC sous un autre nom - self.JDCDisplay_courant.fichier = sauvegarde - self.JDCName = self.JDC.nom = stripPath(sauvegarde) - self.JDC.changefichier(sauvegarde) - self.changeNomPage() - return 1 - else : - return 0 - - def changeNomPage(self): - """ Change le nom de l'onglet contenant le JDC courant : en fait detruit l'actuel - et recree un autre onglet a la même place avec le bon nom - """ - nom = self.JDCName - self.JDCDisplay_courant.jdc.nom = nom - nom_page = self.nb.getcurselection() - num_page = self.nb.index(nom_page) - tab = self.nb.tab(num_page) - tab.configure(text = nom) - - def exitEFICAS(self,event=None): - """ - Permet de sortir d'EFICAS en demandant a l'utilisateur - s'il veut sauvegarder les modifications en cours - """ - liste = self.GetListeJDCaSauvegarder() - if liste != [] : - # Certains fichiers n'ont pas ete sauvegardes ... - if askyesno("Enregistrer modifications","Enregistrer les modifications ?") : - test = self.saveall(liste) - if test != 1 : - return - if askyesno ("Quitter","Voulez-vous vraiment quitter l'application ?") : - for JDCDisplay in self.liste_JDCDisplay: - JDCDisplay.jdc.supprime() - self.appli.quit() - return - - def GetListeJDCaSauvegarder(self) : - """ Retourne parmi la liste de tous les JDC ouverts la liste de ceux qui ont ete modifies """ - if not self.JDCDisplay_courant : return [] - if len(self.liste_JDCDisplay) == 0 : return l - l = [] - for JDCDisplay in self.liste_JDCDisplay: - if JDCDisplay.modified == 'o' : - l.append(JDCDisplay) - return l - - def copy(self,event=None): - """ - Lance la copie sur le JDC courant - """ - if self.JDCDisplay_courant : self.JDCDisplay_courant.doCopy() - - def paste(self,event=None): - """ - Lance le collage sur le JDC courant - """ - if self.JDCDisplay_courant : self.JDCDisplay_courant.doPaste() - - def cut(self,event=None): - """ - Lance le cut sur le JDC courant - """ - if self.JDCDisplay_courant: self.JDCDisplay_courant.doCut() - - def delete(self): - """ - Lance la suppression du noeud courant - """ - if not self.JDCDisplay_courant : return - self.JDCDisplay_courant.init_modif() - self.JDCDisplay_courant.node_selected.delete() - - def visuJDC_py(self,event=None): - """ - Methode permettant d'afficher dans une fenêtre a part l'echo au - format python du jdc courant - """ - if not hasattr(self,'JDC') : return - jdc_fini = self.get_text_JDC('python') - if jdc_fini == None : return - Fenetre(self.appli, - titre = 'fichier '+ self.JDCName + ' a la syntaxe Python', - texte = jdc_fini) - - def visuJDC(self): - """ - Methode permettant d'afficher dans une fenêtre a part l'echo au - format .comm ou .py du jdc courant - """ - if not hasattr(self,'JDC') : return - titre = 'fichier '+ self.JDCName + ' a la syntaxe '+ self.code - format=self.appli.format_fichier.get() - self.jdc_fini = self.get_text_JDC(format) - if self.jdc_fini == None : return - self.visu_fichier_cmd = Fenetre(self.appli,titre=titre,texte = self.jdc_fini) - - def get_text_JDC(self,format): - if generator.plugins.has_key(format): - # Le generateur existe on l'utilise - g=generator.plugins[format]() - jdc_formate=g.gener(self.JDC,format='beautifie') - if not g.cr.estvide(): - self.appli.affiche_infos("Erreur a la generation") - showerror("Erreur a la generation","EFICAS ne sait pas convertir ce JDC") - return - else: - return jdc_formate - else: - # Il n'existe pas c'est une erreur - self.appli.affiche_infos("Format %s non reconnu" % format) - showerror("Format %s non reconnu" % format,"EFICAS ne sait pas convertir le JDC en format %s "% format) - return - - def view_doc(self): - """ - Permet d'ouvrir le fichier doc U de la commande au format pdf avec Acrobat Reader - - Ne fonctionne pas sous UNIX (chemin d'acces Acrobat Reader) - - indication du chemin d'acces aux fichiers pdf a revoir : trop statique - """ - if not self.JDCDisplay_courant : return - try: - cle_doc = self.JDCDisplay_courant.node_selected.item.get_docu() - if cle_doc == None : return - commande = self.appli.CONFIGURATION.exec_acrobat - fichier = os.path.abspath(os.path.join(self.appli.CONFIGURATION.path_doc,cle_doc)) - if os.path.isfile(fichier) == 0: - showerror("Pas de Documentation", "Eficas ne trouve pas de fichier documentation associe a cette commande") - return - if os.name == 'nt': - os.spawnv(os.P_NOWAIT,commande,(commande,fichier,)) - elif os.name == 'posix': - script ="#!/usr/bin/sh \n%s %s&" %(commande,fichier) - pid = os.system(script) - except AttributeError: - traceback.print_exc() - pass - - def visu_a_plat(self,event=None): - """ - Methode permettant d'afficher dans une fenêtre a part l'echo 'a plat' du jdc courant - """ - if not hasattr(self,'JDC') : return - titre = 'fichier '+ self.JDCName + ' a plat ' - self.jdc_fini = self.get_text_JDC('aplat') - if self.jdc_fini == None : return - self.visu_fichier_cmd = Fenetre(self.appli,titre=titre,texte = self.jdc_fini) - - def visu_txt_brut_JDC(self,event=None): - """ - Methode permettant d'afficher le jeu de commandes tel qu'il a ete passe au JDC - """ - if not hasattr(self,'JDC') : return - titre = "fichier de commandes utilisateur" - #texte = self.JDC.procedure - #if texte == None: - if self.JDCDisplay_courant.fichier == None: - self.appli.affiche_infos("Pas de fichier initial") - showerror("Impossible de visualiser le fichier initial", - "EFICAS ne peut visualiser le fichier initial.\nIl s'agit d'un nouveau JDC") - return - os.chdir(self.appli.dir) - f=open(self.JDCDisplay_courant.fichier,'r') - texte=f.read() - f.close() - self.visu_texte_JDC = Fenetre(self.appli,titre=titre,texte=texte) - - def affichage_fichier_ini(self): - """ - Affichage des valeurs des parametres relus par Eficas - """ - self.appli.CONFIGURATION.affichage_fichier_ini() - - def saveall(self,liste): - """ - Sauvegarde tous les JDC contenus dans liste - """ - test = 1 - for JDCDisplay in liste : - self.JDCDisplay_courant=JDCDisplay - self.JDC = JDCDisplay.jdc - test = test * self.saveJDC(echo = 'non') - return test - - def save_homard(self,nom,texte): - file_homard=nom+'.conf_homard' - try: - f=open(file_homard,'w') - for ligne in texte: - f.write(ligne) - f.write('\n') - f.close() - except: - print "Pb a la sauvegarde sous le format homard" - if self.appli.salome: - import eficasEtude - self.appli.salome.rangeInStudy(file_homard,"_CONF") - - def save_openturns(self,nom,texteXML,texteSTD): - nomSansSuf=nom[:nom.rfind(".")] - fileXML=nomSansSuf + '.xml' - fileSTD=nomSansSuf + '_Std.py' - try: - f=open(fileXML,'w') - f.write(texteXML) - f.close() - except: - print "Pb sauvegarde openturns pour le format xml" - try: - #print texteSTD - if nomSansSuf.rfind("/") > 0 : - nomSansSuf=nomSansSuf[nomSansSuf.rfind("/")+1:] - texteSTD=re.sub('XXXXXX',nomSansSuf,texteSTD) - #print texteSTD - f=open(fileSTD,'w') - f.write(texteSTD) - f.close() - except: - print "Pb sauvegarde openturns pour le format STD" - if self.appli.salome == 1: - ok, msg = self.appli.addJdcInSalome( fileSTD ) - ok, msg = self.appli.addJdcInSalome( fileXML ) - -# --------------------------------------------------------------------------- -# Methodes liees aux mots-cles inconnus -# --------------------------------------------------------------------------- - - def mc_inconnus(self): - l_mc = self.JDCDisplay_courant.jdc.get_liste_mc_inconnus() - o = fenetre_mc_inconnus(l_mc) - l = o.wait_new_list() - #print "mc_inconnus_new_list: ",l - #CCAR: Il n' y a pas de retour vers le JDC - - def aideEFICAS(self,event=None): - AIDE.go(master=self.parent) - - def update_jdc_courant(self): - self.JDCDisplay_courant.update() - - def TraduitFichier7(self,event=None): - self.TraduitFichier(7) - - def TraduitFichier8(self,event=None): - self.TraduitFichier(8) - - def TraduitFichier(self,version): - FichieraTraduire = askopenfilename(title="Nom du Fichier a Traduire", - defaultextension=".comm", - initialdir = self.savedir - ) - if (FichieraTraduire == "" or FichieraTraduire == () ) : return - i=FichieraTraduire.rfind(".") - Feuille=FichieraTraduire[0:i] - log=self.savedir+"/convert.log" - Pmw.showbusycursor() - FichierTraduit="" - os.system("rm -rf "+log) - if version == 7 : - FichierTraduit=Feuille+"v8.comm" - os.system("rm -rf "+FichierTraduit) - traduitV7V8.traduc(FichieraTraduire,FichierTraduit,log) - else : - FichierTraduit=Feuille+"v9.comm" - os.system("rm -rf "+FichierTraduit) - traduitV8V9.traduc(FichieraTraduire,FichierTraduit,log) - Pmw.hidebusycursor() - Entete="Fichier Traduit : "+FichierTraduit +"\n\n" - titre = "conversion de "+ FichieraTraduire - - if os.stat(log)[6] != 0L : - f=open(log) - texte_cr= f.read() - f.close() - else : - texte_cr = Entete - commande="diff "+FichieraTraduire+" "+FichierTraduit+" >/dev/null" - try : - if os.system(commande) == 0 : - texte_cr = texte_cr + "Pas de difference entre le fichier initial et le fichier traduit" - except : - pass - - cptrendu = FenetreSurLigneWarning(self.appli,titre=titre,texte=texte_cr) - diff --git a/InterfaceTK/catabrowser.py b/InterfaceTK/catabrowser.py deleted file mode 100644 index 7c2c40b6..00000000 --- a/InterfaceTK/catabrowser.py +++ /dev/null @@ -1,398 +0,0 @@ -# -*- 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 -import os -import sys -import types -import string -import Pmw -from Tkinter import * - -# Modules Eficas -import fontes -from treewidget import Tree -from Editeur.Objecttreeitem import TreeItem -from Accas import AsException -from Noyau.N_CR import justify_text -from Accas import OPER,PROC,MACRO,FORM -from Accas import FACT,BLOC,SIMP - -# -__version__="$Name: V6_main $" -__Id__="$Id: catabrowser.py,v 1.4 2009-06-19 08:36:50 pnoyret Exp $" -# -class Tableau: - incr = 10 - def __init__(self,parent,colonnes): - self.parent = parent - self.colonnes = colonnes - self.init() - - def init(self): - # recherche du nombre maxi de lignes et de colonnes.... - for col in self.colonnes : - nb_l = 0 - if len(col) > nb_l : nb_l = len(col) - self.nb_lignes = nb_l - self.nb_colonnes = len(self.colonnes) - # initialisation des coordonnées dans le canvas - self.x0 = self.incr - self.y0 = self.incr - self.x = self.x0 + self.incr - self.y = self.y0 + self.incr - - def affiche(self): - self.scrolledcanvas=Pmw.ScrolledCanvas(self.parent, - hull_width=1., - hull_height=1., - borderframe=1) - Pmw.Color.changecolor(self.scrolledcanvas.component('canvas'),background='gray95') - self.scrolledcanvas.pack(padx=10,pady=10,expand=1, fill="both") - self.canvas = self.scrolledcanvas.component('canvas') - self.affiche_colonnes() - - def affiche_colonnes(self): - for i in range(self.nb_lignes): - self.affiche_ligne(i) - self.aligne_colonnes() - self.trace_traits() - self.scrolledcanvas.resizescrollregion() - - def get_xy_max(self): - try: - x0,y0,xmax,ymax = self.canvas.bbox(ALL) - return xmax,ymax - except: - return None,None - - def trace_traits(self): - xmax,ymax = self.get_xy_max() - if not xmax : return - xmax = xmax+self.incr - ymax = ymax+self.incr - # trace les traits horizontaux - for i in range(self.nb_lignes): - tag_lig = 'ligne_'+`i` - l_id = self.canvas.find_withtag(tag_lig) - x0,y0,x1,y1 = self.bbox(l_id) - self.canvas.create_line(x0-self.incr,y0-self.incr,xmax,y0-self.incr) - self.canvas.create_line(self.x0,ymax,xmax,ymax) - # trace les traits verticaux - for j in range(self.nb_colonnes): - tag_col = 'colonne_'+`j` - l_id = self.canvas.find_withtag(tag_col) - x0,y0,x1,y1 = self.bbox(l_id) - self.canvas.create_line(x0-self.incr,y0-self.incr,x0-self.incr,ymax) - self.canvas.create_line(xmax,self.y0,xmax,ymax) - - def bbox(self,l_id): - x0,y0,x1,y1 = self.canvas.bbox(l_id[0]) - for id in l_id[1:]: - x2,y2,x3,y3 = self.canvas.bbox(id) - x0 = min(x2,x0) - y0 = min(y2,y0) - x1 = max(x3,x1) - y1 = max(y3,y1) - return x0,y0,x1,y1 - - def affiche_ligne(self,num_lig): - tag_lig = 'ligne_'+`num_lig` - num_col = 0 - for col in self.colonnes: - tag_col = 'colonne_'+`num_col` - x = 100*num_col+self.x - id = self.canvas.create_text(x,self.y, - text = justify_text(col[num_lig],cesure=60), - tag=(tag_lig,tag_col), - anchor='nw', - font = fontes.canvas) - x0,y0,x1,y1 = self.canvas.bbox(id) - num_col = num_col+1 - l_id = self.canvas.find_withtag(tag_lig) - x0,y0,x1,y1 = self.bbox(l_id) - self.y = y1 + 2*self.incr - - def aligne_colonnes(self): - num_col = 0 - for col in self.colonnes: - tag_col = 'colonne_'+`num_col` - l_id = self.canvas.find_withtag(tag_col) - if not l_id : continue - x0,y0,x1,y1 = self.bbox(l_id) - self.move(x1+self.incr,self.colonnes[num_col+1:],num_col+1) - num_col = num_col+1 - - def move(self,x,colonnes,num): - num_col = num - for col in colonnes: - tag_col = 'colonne_'+`num_col` - l_id = self.canvas.find_withtag(tag_col) - if not l_id : continue - x0,y0,x1,y1 = self.canvas.bbox(l_id[0]) - self.canvas.move(tag_col,x+self.incr-x0,0) - num_col = num_col+1 - -class CATAPanel(Frame) : - """ Classe servant à créer le panneau représentant l'objet sélectionné dans l'arbre""" - def __init__(self,parent,panneau,node) : - self.parent=parent - self.panneau = panneau - self.node=node - Frame.__init__(self,self.panneau) - self.place(x=0,y=0,relheight=1,relwidth=1) - self.init() - - def init(self): - # création du label initial - label = Label(self, - text = 'Attributs de '+self.node.item.labeltext, - font = fontes.standard_gras_souligne) - label.pack(side='top',pady=10) - # création des listes correspondant aux colonnes du tableau à afficher - colonne1,colonne2 = self.get_listes() - # affichage du tableau - self.tableau = Tableau(self,(colonne1,colonne2)) - self.tableau.affiche() - - def get_listes(self): - self.node.item.get_dico_attributs() - l_cles_attributs = self.node.item.d_attributs.keys() - l_cles_attributs.sort() - ind=0 - liste1 = [] - liste2=[] - for nom_attr in l_cles_attributs : - valeur = self.node.item.d_attributs[nom_attr] - if type(valeur) == types.TupleType: - texte ='' - for elem in valeur: - if type(elem) == types.ClassType: - texte = texte + elem.__name__ - else: - texte = texte + str(elem) - elif type(valeur) == types.ClassType : - texte = valeur.__name__ - else: - texte = str(valeur) - liste1.append(nom_attr) - liste2.append(texte) - return liste1,liste2 - -class CATAItem(TreeItem): - panel = CATAPanel - def __init__(self,appli,labeltext,object,setfunction=None,objet_cata_ordonne = None): - self.appli = appli - self.labeltext = labeltext - self.object=object - self.setfunction = setfunction - self.objet_cata_ordonne = objet_cata_ordonne - - def get_dico_fils(self): - d_fils = {} - if type(self.object) != types.TupleType: - for e in dir(self.object): - cmd = getattr(self.object,e) - if isCMD(cmd) : - d_fils[string.strip(cmd.nom)] = cmd - else: - for obj in self.object : - for e in dir(obj): - cmd = getattr(obj,e) - if isCMD(cmd) : - d_fils[string.strip(cmd.nom)] = cmd - self.d_fils = d_fils - - def get_dico_attributs(self): - d_attributs ={} - if type(self.object) == types.TupleType : - self.d_attributs = d_attributs - return - l_noms_attributs = ['nom','op','sd_prod','reentrant','repetable','fr','docu','into','valide_vide','actif', - 'regles','op_init','niveau','definition','code','niveaux','statut', - 'defaut','min','max','homo','position','val_min','val_max','condition'] - for nom_attribut in l_noms_attributs : - if hasattr(self.object,nom_attribut): - attr = getattr(self.object,nom_attribut) - d_attributs[nom_attribut] = attr - self.d_attributs = d_attributs - - def get_liste_mc_ordonnee(self): - """ Retourne la liste ordonnée (suivant le catalogue) brute des fils - de l'entite courante """ - if hasattr(self.objet_cata_ordonne,'ordre_mc'): - return self.objet_cata_ordonne.ordre_mc - else : - l=self.objet_cata_ordonne.keys() - l.sort() - return l - - def GetLabelText(self): - return self.labeltext,None,None - - def get_fr(self): - return '' - - def isMCList(self): - return 0 - - def GetSubList(self): - sublist=[] - if not hasattr(self,'d_fils'): - self.get_dico_fils() - # on classe les fils dans l'odre du catalogue ... - l_cles_fils = self.get_liste_mc_ordonnee() - for k in l_cles_fils : - if type(self.objet_cata_ordonne) == types.InstanceType : - objet_cata = self.objet_cata_ordonne.entites[k] - else : - objet_cata = self.objet_cata_ordonne.get(k,None) - item = make_objecttreeitem(self.appli,k + " : ",self.d_fils[k], - objet_cata_ordonne = objet_cata) - sublist.append(item) - return sublist - - def GetIconName(self): - return 'ast-green-square' - - def isactif(self): - return 1 - -class CMDItem(CATAItem): - - def get_dico_fils(self): - self.d_fils = self.object.entites - -class SIMPItem(CATAItem): - d_fils={} - d_attributs={} - - def GetIconName(self): - return 'ast-green-ball' - - def IsExpandable(self): - return 0 - -class FACTItem(CMDItem): - def GetIconName(self): - return 'ast-green-los' - -class BLOCItem(FACTItem): pass - -class ATTRIBUTItem(SIMPItem): - def get_dico_attributs(self): - self.d_attributs = {} - - def GetSubList(self): - return [] - - def IsExpandable(self): - return 0 - - def GetText(self): - return self.object - - def GetIconName(self): - return 'aucune' - -class CataBrowser: - def __init__(self,parent,appli,cata,item = None): - self.parent = parent - self.cata = cata - self.appli = appli - self.item = item - self.init() - - def close(self): - self.top.destroy() - - def init(self): - self.nodes={} - self.top = Pmw.Dialog(self.parent, - title = "Visualisation d'un catalogue", - buttons=('OK',), - command = self.quit) - self.pane = Pmw.PanedWidget(self.top.component('dialogchildsite'), - hull_width = 800, - hull_height = 500, - orient = 'horizontal') - self.pane.add('canvas',min = 0.4, max = 0.6, size = 0.5) - self.pane.add('panel',min = 0.4, max = 0.6, size = 0.5) - self.pane.pack(expand =1, fill = 'both') - self.scrolledcanvas = Pmw.ScrolledCanvas(self.pane.pane('canvas'), - hull_width=1., - hull_height=1., - borderframe=1) - Pmw.Color.changecolor(self.scrolledcanvas.component('canvas'),background='gray95') - self.scrolledcanvas.pack(padx=10,pady=10,expand=1, fill="both") - if self.item == None : - self.item = CATAItem(self.appli,"Catalogue",self.cata) - self.tree = Tree(self.appli,self.item,self.scrolledcanvas,command = self.select_node) - self.tree.draw() - self.node = self.tree.node_selected - - def select_node(self,node): - self.nodes[node]=self.create_panel(node) - - def create_panel(self,node): - if hasattr(node.item,"panel"): - return getattr(node.item,"panel")(self,self.pane.pane('panel'),node) - - def quit(self,nom_bouton) : - self.top.destroy() - - def settitle(self): - self.top.wm_title("Browser de catalogue " ) - self.top.wm_iconname("CataBrowser") - - -dispatch = { - OPER : CMDItem, - PROC : CMDItem, - MACRO : CMDItem, - SIMP : SIMPItem, - FACT : FACTItem, - BLOC : BLOCItem, -} - -def TYPE(o): - if isinstance(o,OPER):return OPER - elif isinstance(o,PROC):return PROC - elif isinstance(o,MACRO):return MACRO - elif isinstance(o,FORM):return MACRO - elif isinstance(o,SIMP):return SIMP - elif isinstance(o,FACT):return FACT - elif isinstance(o,BLOC):return BLOC - else:return type(o) - -def make_objecttreeitem(appli,labeltext, object, setfunction=None,objet_cata_ordonne=None): - t = TYPE(object) - if dispatch.has_key(t): - c = dispatch[t] - else: - #print 'on a un objet de type :',t,' ',object - c = ATTRIBUTItem - return c(appli,labeltext, object, setfunction = setfunction,objet_cata_ordonne=objet_cata_ordonne) - -def isCMD(cmd): - return isinstance(cmd,OPER) or isinstance(cmd,PROC) or isinstance(cmd,MACRO) or isinstance(cmd,FORM) - - - diff --git a/InterfaceTK/cataediteur.py b/InterfaceTK/cataediteur.py deleted file mode 100644 index 30fa479b..00000000 --- a/InterfaceTK/cataediteur.py +++ /dev/null @@ -1,975 +0,0 @@ -# -*- 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 -import os -import sys -import types -import string -import Pmw -from widgets import showinfo -from Tkinter import * - -# Modules Eficas -import fontes -from widgets import * -from treewidget import Tree -from Editeur.Objecttreeitem import TreeItem -from Accas import AsException -from Noyau.N_CR import justify_text - -from Accas import ASSD,GEOM -import definition_cata - -# -__version__="$Name: V6_main $" -__Id__="$Id: cataediteur.py,v 1.4 2009-06-19 08:36:50 pnoyret Exp $" -# - -Fonte_Niveau = fontes.canvas_gras_italique - -class Panel(Frame) : - """ Classe servant de classe mère à toutes celles représentant les - panneaux à afficher en fonction de la nature de l'objet en cours - Elle est toujours dérivée.""" - def __init__(self,parent,panneau,node) : - self.parent=parent - self.panneau = panneau - self.node=node - Frame.__init__(self,self.panneau) - self.place(x=0,y=0,relheight=1,relwidth=1) - #self.creer_boutons() - self.init() - - def creer_boutons(self): - """ Méthode créant les boutons se trouvant dans la partie contextuelle d'EFICAS - (à droite sous les onglets ) """ - self.fr_but = Frame(self,height=30) - self.fr_but.pack(side='bottom',fill='x') - self.bouton_com = Button(self.fr_but, - text = 'Commentaire', - command = self.ajout_commentaire, - width=14) - self.bouton_sup = Button(self.fr_but, - text = "Supprimer", - command=self.supprimer, - width=14) - self.bouton_doc = Button(self.fr_but, - text="Documentation", - command=self.visu_doc, - width=14) - self.bouton_cata = Button(self.fr_but, - text = "Catalogue", - command = self.show_catalogue, - width=14) - if self.parent.appli.CONFIGURATION.isdeveloppeur == 'OUI': - self.bouton_sup.place(relx=0.25,rely = 0.5,relheight = 0.8,anchor='w') - self.bouton_cata.place(relx=0.5,rely = 0.5,relheight = 0.8,anchor='w') - self.bouton_doc.place(relx=0.75,rely = 0.5,relheight = 0.8,anchor='w') - else: - self.bouton_sup.place(relx=0.3,rely = 0.5,relheight = 0.8,anchor='w') - self.bouton_doc.place(relx=0.7,rely = 0.5,relheight = 0.8,anchor='w') - - def show_catalogue(self): - try: - genea = self.node.item.get_genealogie() - self.parent.appli.browser_catalogue_objet(genea) - except Exception,e: - traceback.print_exc() - - def efface(self): - self.node.efface() - - def ajout_commentaire(self,ind='after'): - """ Ajoute un commentaire à l'intérieur du JDC, par défaut après le noeud en cours""" - if self.parent.modified == 'n' : self.parent.init_modif() - return self.node.append_brother("COMMENTAIRE",ind) - - def ajout_commentaire_first(self): - """ Ajoute un commentaire en début de JDC""" - if self.parent.modified == 'n' : self.parent.init_modif() - return self.node.append_child("COMMENTAIRE",'first') - - def visu_doc(self): - """ Permet d'ouvrir le fichier doc U de la commande au format pdf avec Acrobat Reader - - Ne fonctionne pas sous UNIX (chemin d'accès Acrobat Reader) - - indication du chemin d'accès aux fichiers pdf à revoir : trop statique""" - cle_doc = self.parent.appli.get_docu(self.node) - if cle_doc == None : return - cle_doc = string.replace(cle_doc,'.','') - commande = self.parent.appli.CONFIGURATION.exec_acrobat - nom_fichier = cle_doc+".doc" - rep_fichier = cle_doc[0:2] - fichier = os.path.abspath(os.path.join(self.parent.appli.CONFIGURATION.path_doc,rep_fichier,nom_fichier)) - print 'commande =',commande - print 'fichier =',fichier - print 'existe =',os.path.isfile(fichier) - if os.name == 'nt': - os.spawnv(os.P_NOWAIT,commande,(commande,fichier)) - elif os.name == 'posix': - script ="#!/usr/bin/sh \n%s %s" %(commande,nom_fichier) - pid = os.system(script) - - def supprimer(self): - """ Suppression du noeud courant """ - if self.parent.modified == 'n' : self.parent.init_modif() - pere = self.node.parent - self.node.delete() - pere.select() - - def affiche(self): - """ Force l'affichage des fenêtres en cours """ - self.tkraise() - - def selectMC(self,name): - """ On retrouve le mot-clé sous le curseur pour affichage du fr """ - cmd=self.node.item.get_definition() - texte_infos = '' - for e in cmd.entites.keys() : - if e == name : - texte_infos=getattr(cmd.entites[e],'fr') - break - if texte_infos == '' : texte_infos="Pas d'infos disponibles" - self.parent.appli.affiche_infos(texte_infos) - - def defMC(self,name): - """ On ajoute un mot-clé à la commande : subnode """ - if name == SEPARATEUR:return - if self.parent.modified == 'n' : self.parent.init_modif() - if name != "COMMENTAIRE": - self.node.append_child(name) - else : - self.ajout_commentaire() - - def selectFilsCmd(self,name): - pass - - def defFilsCmd(self,name): - pass - - def defCmdFirst(self,name): - """ On ajoute une commande ou un commentaire au début du fichier de commandes """ - if name == SEPARATEUR:return - if self.parent.modified == 'n' : self.parent.init_modif() - if name != "COMMENTAIRE": - new_node = self.node.append_child(name,'first') - else : - new_node = self.ajout_commentaire_first() - - def add_commande_avant(self,event=None): - pass - - def add_commande_apres(self,event=None): - pass - -class OngletPanel(Panel) : - """ Cette classe est virtuelle et doit être dérivée - Elle contient les principales méthodes d'affichage des différents onglets""" - - def raisecmd(self,page): - self.nb.page(page).focus_set() - if page == 'Concept': self._any.focus() - - def affiche(self): - page=self.nb.getcurselection() - self.nb.page(page).focus_set() - if page == 'Concept':self._any.component('entry').focus_set() - self.tkraise() - - def makeConceptPage(self,page): - """ Crée la page de saisie du nom du concept """ - self.label = Label(page,text='Nom du concept :') - self.label.place(relx=0.1,rely=0.4) - self._any = Entry(page,relief='sunken') - self._any.place(relx=0.35,rely=0.4,relwidth=0.5) - self._any.bind("",lambda e,s=self:s.execConcept()) - self._any.bind("",lambda e,s=self:s.execConcept()) - self._any.insert(0,self.node.item.GetText()) - type_sd = self.node.item.object.get_type_sd_prod() - if type_sd : - txt = "L'opérateur courant retourne un objet de type %s" %type_sd - self.label = Label(page, text = txt) - self.label.place(relx=0.5,rely=0.55,anchor='n') - self._any.focus() - - def makeCommandePage(self,page): - """ Affiche la page d'ajout d'une commande relativement à l'objet commande sélectionné """ - titre = "Où voulez-vous insérer une commande par rapport à %s" %self.node.item.object.nom - Label(page,text=titre).place(relx=0.5,rely=0.2,anchor='w') - b_avant = Button(page,text='AVANT', - command = self.node.item.add_commande_avant) - b_apres = Button(page,text='APRES', - command = self.node.item.add_commande_apres) - b_avant.place(relx=0.35,rely=0.5,anchor='w') - b_apres.place(relx=0.65,rely=0.5,anchor='w') - - def deselectMC(self,name): - self.parent.appli.affiche_infos('') - - def get_liste_cmd(self): - listeCmd = self.node.item.object.niveau.definition.get_liste_cmd() - return listeCmd - - def get_liste_fils_cmd(self): - return ['Mot-clé simple','Mot-clé facteur','Bloc'] - - def makeMoclesPage(self,page): - frame1 = Frame(page,height = 20) - frame1.pack(side='top',fill='x') - label = Label(frame1,text ="Le mot-clé choisi sera ajouté à la fin du catalogue") - label.pack(side='top') - frame2 = Frame(page) - frame2.pack(side='top',fill='both',expand=1) - liste_cmd = self.get_liste_fils_cmd() - liste_commandes = (("",self.selectFilsCmd), - ("",self.deselectFilsCmd), - ("",self.defFilsCmd)) - Liste = ListeChoix(self,frame2,liste_cmd,liste_commandes = liste_commandes,titre = "Mots-clés") - Liste.affiche_liste() - - def deselectFilsCmd(self,name): - pass - - def makeJDCPage(self,page): - liste_cmd = self.get_liste_cmd() - liste_commandes = (("",self.selectCmd), - ("",self.deselectCmd), - ("",self.defCmdFirst)) - Liste = ListeChoix(self,page,liste_cmd,liste_commandes = liste_commandes,filtre='oui',titre = "Commandes") - Liste.affiche_liste() - - def makeReglesPage(self,page) : - regles = [] - regles = self.node.item.get_regles() - dictionnaire = self.node.item.get_mc_presents() - texte_regles = [] - l_regles_en_defaut=[] - if len(regles) > 0: - i = 0 - for regle in regles : - texte_regles.append(regle.gettext()) - texte,test = regle.verif(dictionnaire) - if test == 0 : l_regles_en_defaut.append(i) - i = i+1 - Liste = ListeChoix(self,page,texte_regles,liste_marques=l_regles_en_defaut,active='non',titre="Règles") - Liste.affiche_liste() - #self.afficheListe(page,texte_regles,self.selectRegle,self.execRegle) - - def execConcept(self): - """ Nomme le concept SD retourné par l'étape """ - if self.parent.modified == 'n' : self.parent.init_modif() - nom = self._any.get() - # Pourquoi node.etape ??? - #test,mess = self.node.etape.item.nomme_sd(nom) - test,mess = self.node.item.nomme_sd(nom) - self.parent.appli.affiche_infos(mess) - self.node.racine.update() - - def changed(self): - pass - - def makeAttributsPage(self,page): - l_attributs=self.node.item.object.attributs - d_defauts = self.node.item.object.attributs_defauts - for attribut in l_attributs : - attr = self.node.item.object.entites_attributs.get(attribut,None) - if attr.valeur is d_defauts[attribut] : - texte = attribut+' = '+repr(attr.valeur)+' (defaut)' - else: - texte = attribut+' = '+repr(attr.valeur) - Label(page,text=texte).pack(side='top') - - def makeSimpPage(self,page): - texte = "Où voulez-vous ajouter un mot-clé simple ?" - Label(page,text=texte).place(relx=0.5,rely=0.3,anchor='center') - b1 = Button(page,text='AVANT '+self.node.item.object.nom,command=self.add_simp_avant) - b2 = Button(page,text='APRES '+self.node.item.object.nom,command=self.add_simp_apres) - b1.place(relx=0.5,rely=0.5,anchor='center') - b2.place(relx=0.5,rely=0.6,anchor='center') - - def add_simp_avant(self,event=None): - """ - Ajoute un mot-clé simple avant celui courant - """ - self.node.append_brother('new_simp','before') - self.node.update() - - def add_simp_apres(self,event=None): - """ - Ajoute un mot-clé simple après celui courant - """ - self.node.append_brother('new_simp','after') - self.node.update() - -class TYPEPanel(Frame): - def __init__(self,parent,panneau,node) : - self.parent=parent - self.panneau = panneau - self.node=node - Frame.__init__(self,self.panneau) - self.place(x=0,y=0,relheight=1,relwidth=1) - self.creer_texte() - - def creer_texte(self): - texte = "Le noeud sélectionné correspond à un type\n" - self.label = Label(self,text=texte) - self.label.place(relx=0.5,rely=0.4,relwidth=0.8,anchor='center') - -class OPERPanel(OngletPanel): - def init(self): - nb = Pmw.NoteBook(self,raisecommand=self.raisecmd) - - nb.pack(fill = 'both', expand = 1) - self.nb=nb - nb.add('Mocles', tab_text='Ajouter mots-clés') - nb.add('Commandes',tab_text='Ajouter une commande') - self.makeMoclesPage(nb.page("Mocles")) - self.makeCommandePage(nb.page("Commandes")) - nb.tab('Mocles').focus_set() - nb.setnaturalsize() - self.affiche() - -class SIMPPanel(OngletPanel): - def init(self): - nb = Pmw.NoteBook(self,raisecommand=self.raisecmd) - nb.pack(fill = 'both', expand = 1) - self.nb=nb - nb.add('generaux', tab_text='Données générales') - nb.add('ihm',tab_text='Données IHM') - nb.add('mocle',tab_text='Ajouter un mot-cle simple') - self.makeAttributsGenerauxPage(nb.page("generaux")) - self.makeAttributsIHMPage(nb.page("ihm")) - self.makeSimpPage(nb.page('mocle')) - nb.tab('generaux').focus_set() - nb.setnaturalsize() - self.affiche() - - def makeAttributsGenerauxPage(self,page): - fr1 = Frame(page,bd=1,relief='raised') - fr2 = Frame(page,bd=1,relief='raised') - fr3 = Frame(page,bd=1,relief='raised') - fr4 = Frame(page,bd=1,relief='raised') - fr5 = Frame(page,bd=1,relief='raised') - fr1.place(relheight=0.14,relwidth=1,rely=0) - fr2.place(relheight=0.14,relwidth=1,rely=0.14) - fr3.place(relheight=0.29,relwidth=1,rely=0.28) - fr4.place(relheight=0.14,relwidth=1,rely=0.57) - fr5.place(relheight=0.28,relwidth=1,rely=0.71) - # nom du mot-clé - Label(fr1,text = 'Nom :').place(relx=0.05,rely=0.3,anchor='w') - self.e_nom = Entry(fr1) - self.e_nom.place(relx=0.35,rely=0.3,relwidth=0.3,anchor='w') - self.e_nom.bind("",lambda e,s=self : s.set_valeur_attribut('nom',None)) - self.e_nom.bind("",lambda e,s=self : s.set_valeur_attribut('nom',None)) - self.e_nom.insert(0,self.get_valeur_attribut('nom')) - # Statut - Label(fr1,text='Statut : ').place(relx=0.05,rely=0.7,anchor='w') - self.statut=StringVar() - valeurs_statut=[('obligatoire','o'), - ('facultatif','f'), - ('caché','c') - ] - self.statut.set(self.node.item.object.get_valeur_attribut('statut')) - i=0 - for text,mode in valeurs_statut: - b=Radiobutton(fr1,text=text,variable=self.statut,value=mode, - command = lambda s=self,m=mode : s.set_valeur_attribut('statut',m)) - b.place(relx=0.25+i*0.25,rely=0.7,anchor='w') - i=i+1 - # Type ... - Label(fr2,text='Type de la valeur : ').place(relx=0.05,rely=0.5,anchor='w') - self.e_type = Entry(fr2) - self.e_type.place(relx=0.35,rely=0.5,relwidth=0.5,anchor='w') - self.e_type.insert(0,self.node.item.object.get_valeur_attribut('type')) - # Domaine de validité - Label(fr3,text='Domaine de validité : ').place(relx=0.05,rely=0.2,anchor='w') - self.domaine = StringVar() - self.domaine.set(self.node.item.object.get_valeur_attribut('domaine_validité')) - b1=Radiobutton(fr3,text='continu',variable=self.domaine,value='continu', - command=lambda s=self,f=fr3 :s.change_domaine(f)) - b2=Radiobutton(fr3,text='discret',variable=self.domaine,value='discret', - command=lambda s=self,f=fr3 :s.change_domaine(f)) - b1.place(relx=0.35,rely=0.2,anchor='w') - b2.place(relx=0.65,rely=0.2,anchor='w') - self.change_domaine(fr3) - # Défaut ... - if self.domaine.get() == 'continu': - # le développeur peut donner la valeur qu'il souhaite, moyennant la vérification de type... - Label(fr4,text='Valeur par défaut : ').place(relx=0.05,rely=0.5,anchor='w') - self.e_defaut = Entry(fr4) - self.e_defaut.place(relx=0.35,rely=0.5,relwidth=0.5,anchor='w') - if self.node.item.object.get_valeur_attribut('defaut') : - self.e_defaut.insert(0,self.node.item.object.get_valeur_attribut('defaut')) - self.e_defaut.bind("",lambda e,s=self : s.set_valeur_attribut('defaut',None)) - self.e_defaut.bind("",lambda e,s=self : s.set_valeur_attribut('defaut',None)) - else : - # dans le cas discret, la valeur par défaut doit être dans l'ensemble des valeurs possibles (into) - liste = self.node.item.object.get_valeur_attribut('into') - if self.node.item.object.get_valeur_attribut('defaut') : - self.set_valeur_attribut('defaut',self.node.item.object.get_valeur_attribut('defaut')) - if liste == None : liste = [] - self.e_defaut = Pmw.OptionMenu(fr4,labelpos='w',label_text = "Valeur par défaut : ", - items = self.node.item.object.get_valeur_attribut('into'), - menubutton_width=30) - self.e_defaut.configure(command = lambda e,s=self : s.set_valeur_attribut('defaut',None)) - self.e_defaut.place(relx=0.05,rely=0.5,anchor='w') - # Liste de valeurs ? - Label(fr5,text='Liste de valeurs : ').place(relx=0.05,rely=0.2,anchor='w') - self.liste_valeurs = BooleanVar() - liste_valeurs = [('OUI',1),('NON',0)] - self.liste_valeurs.set(0) - i=0 - for text,mode in liste_valeurs: - b=Radiobutton(fr5,text=text,variable=self.liste_valeurs,value=mode, - command=lambda s=self,f=fr5 :s.change_liste_valeurs(f)) - b.place(relx=0.35+i*0.2,rely=0.2,anchor='w') - i=i+1 - self.change_liste_valeurs(fr5) - - def makeAttributsIHMPage(self,page): - fr1 = Frame(page,height=100,bd=1,relief='raised') - fr2 = Frame(page,height=50,bd=1,relief='raised') - fr1.pack(side='top',fill='x') - fr2.pack(side='top',fill='x') - # Champ fr ... - Label(fr1,text='Champ fr : ').place(relx=0.05,rely=0.35,anchor='w') - self.e_fr = Entry(fr1) - self.e_fr.place(relx=0.35,rely=0.35,relwidth=0.6,anchor='w') - self.e_fr.insert(0,self.node.item.object.get_valeur_attribut('fr')) - # Champ ang ... - Label(fr1,text='Champ ang : ').place(relx=0.05,rely=0.70,anchor='w') - self.e_ang = Entry(fr1) - self.e_ang.place(relx=0.35,rely=0.70,relwidth=0.6,anchor='w') - self.e_ang.insert(0,self.node.item.object.get_valeur_attribut('ang')) - # Clé documentaire ... - Label(fr2,text='Clé documentaire : ').place(relx=0.05,rely=0.50,anchor='w') - self.e_docu = Entry(fr2) - self.e_docu.place(relx=0.35,rely=0.50,relwidth=0.6,anchor='w') - self.e_docu.insert(0,self.node.item.object.get_valeur_attribut('docu')) - - def detruit_widgets(self,l_widgets): - for nom_widg in l_widgets : - try: - widg = getattr(self,nom_widg) - widg.place_forget() - delattr(self,nom_widg) - except: - pass - - def change_liste_valeurs(self,fr5): - valeur = self.liste_valeurs.get() - if valeur == 0 : - # pas de liste de valeurs - l_widgets=['l_homo','b1_homo','b2_homo','l_min','e_min','l_max','e_max'] - self.detruit_widgets(l_widgets) - elif valeur == 1: - # pas de widgets à détruire ... - if hasattr(self,'l_homo') : - # on est déjà en mode 'liste' --> rien à faire - return - # homo - self.l_homo = Label(fr5,text='Liste homogène : ') - self.l_homo.place(relx=0.05,rely=0.4,anchor='w') - self.homo = BooleanVar() - self.homo.set(self.node.item.object.get_valeur_attribut('homo')) - self.b1_homo=Radiobutton(fr5,text='OUI',variable=self.homo,value=1) - self.b2_homo=Radiobutton(fr5,text='NON',variable=self.homo,value=0) - self.b1_homo.place(relx=0.35,rely=0.4,anchor='w') - self.b2_homo.place(relx=0.65,rely=0.4,anchor='w') - # min ... - self.l_min = Label(fr5,text='Longueur minimale : ') - self.l_min.place(relx=0.05,rely=0.6,anchor='w') - self.e_min = Entry(fr5) - self.e_min.place(relx=0.4,rely=0.6,relwidth=0.3,anchor='w') - self.e_min.insert(0,self.node.item.object.get_valeur_attribut('min')) - # max ... - self.l_max = Label(fr5,text='Longueur maximale : ') - self.l_max.place(relx=0.05,rely=0.8,anchor='w') - self.e_max = Entry(fr5) - self.e_max.place(relx=0.4,rely=0.8,relwidth=0.3,anchor='w') - self.e_max.insert(0,self.node.item.object.get_valeur_attribut('max')) - - def change_domaine(self,fr3): - valeur = self.domaine.get() - if valeur == 'discret' : - l_widgets = ['l_val_min','l_val_max','e_val_min','e_val_max'] - self.detruit_widgets(l_widgets) - # into - #self.l_into = Label(fr3,text='Ensemble de valeurs : ') - #self.l_into.place(relx=0.2,rely=0.5,anchor='w') - self.e_into = Pmw.ScrolledListBox(fr3, - items=self.node.item.object.get_valeur_attribut('into'), - labelpos='w', - label_text= 'Ensemble de valeurs : ', - listbox_height = 3, - dblclickcommand = self.change_into) - self.e_into.place(relx=0.05,rely=0.6,relwidth=0.9,anchor='w') - #self.e_into.insert(0,self.node.item.object.get_valeur_attribut('into')) - elif valeur == 'continu': - l_widgets = ['l_into','e_into'] - self.detruit_widgets(l_widgets) - if hasattr(self,'l_val_min'): - # on est déjà en mode 'continu' --> rien à faire - return - # val_min - self.l_val_min = Label(fr3,text='Valeur minimale : ') - self.l_val_min.place(relx=0.05,rely=0.5,anchor='w') - self.e_val_min = Entry(fr3) - self.e_val_min.place(relx=0.35,rely=0.5,relwidth=0.5,anchor='w') - self.e_val_min.bind("",lambda e,s=self : s.set_valeur_attribut('val_min',None)) - self.e_val_min.bind("",lambda e,s=self : s.set_valeur_attribut('val_min',None)) - self.set_valeur_attribut('val_min',self.get_valeur_attribut('val_min')) - # val_max - self.l_val_max = Label(fr3,text='Valeur maximale : ') - self.l_val_max.place(relx=0.05,rely=0.8,anchor='w') - self.e_val_max = Entry(fr3) - self.e_val_max.place(relx=0.35,rely=0.8,relwidth=0.5,anchor='w') - self.e_val_max.bind("",lambda e,s=self : s.set_valeur_attribut('val_max',None)) - self.e_val_max.bind("",lambda e,s=self : s.set_valeur_attribut('val_max',None)) - self.set_valeur_attribut('val_max',self.get_valeur_attribut('val_max')) - -# ------------------------------------------------------------------ -# Méthodes de validation des entrées faites par l'utilisateur -# ------------------------------------------------------------------ - - def get_valeur_attribut(self,nom_attr): - """ - Demande à l'item de retourner la valeur de l'attribut nom_attr - """ - return self.node.item.get_valeur_attribut(nom_attr) - - def set_valeur_attribut(self,nom_attr,new_valeur): - """ - Affecte la valeur new_valeur à l'attribut nom_attr - Vérifie si celle-ci est valide, sinon restaure l'ancienne - """ - if new_valeur is None : - widget = getattr(self,'e_'+nom_attr) - if hasattr(widget,'getcurselection'): - new_valeur = widget.getcurselection() - else: - new_valeur = widget.get() - print "on affecte %s a %s" %(str(new_valeur),nom_attr) - self.node.item.set_valeur_attribut(nom_attr,new_valeur) - self.node.update() - - def change_into(self): - """ - Méthode activée par double clic sur la ListBox d'affichage des valeurs discrètes possibles : - permet de changer la liste de ces valeurs - """ - showinfo("Fonction non encore disponible", - "Vous ne pouvez pas encore modifier la liste into par cette IHM") - -class OBJECTItem(TreeItem): - def __init__(self,appli,labeltext,object,setfunction=None,objet_cata_ordonne = None): - self.appli = appli - self.labeltext = labeltext - self.object=object - self.setfunction = setfunction - self.objet_cata_ordonne = objet_cata_ordonne - - def GetLabelText(self): - return self.labeltext,None,None - - def get_fr(self): - return '' - - def isMCList(self): - return 0 - - def isactif(self): - return 1 - - def add_commande_avant(self): - pass - - def add_commande_apres(self): - pass - - def set_valeur_attribut(self,nom_attr,new_valeur): - """ - Affecte la valeur new_valeur à l'attribut nom_attr - Vérifie si celle-ci est valide, sinon restaure l'ancienne - """ - old_valeur = self.object.get_valeur_attribut(nom_attr) - self.object.set_valeur_attribut(nom_attr,new_valeur) - verificateur = 'verif_'+nom_attr - if hasattr(self.object,verificateur): - if not getattr(self.object,verificateur)(): - # la nouvelle valeur de nom_attr n'est pas valide : on restaure l'ancienne (sans vérification) - self.object.set_valeur_attribut(nom_attr,old_valeur) - print 'changement de valeur refuse' - return - print 'changement de valeur accepte' - self.object.init_modif() - - def get_valeur_attribut(self,nom_attr): - """ - Retourne la valeur de l'attribut nom_attr - """ - return self.object.get_valeur_attribut(nom_attr) - -class CATAItem(OBJECTItem): - def GetSubList(self): - sublist=[] - for fils in self.object.entites_fils: - item = make_objecttreeitem(self.appli,fils.objet.label + " : ",fils,objet_cata_ordonne=self.objet_cata_ordonne) - sublist.append(item) - return sublist - - def GetIconName(self): - if self.object.isvalid(): - return 'ast-green-square' - else: - return 'ast-red-square' - - def GetText(self): - return "Catalogue %s" %self.appli.code - - def add_commande_avant(self): - pass - - def add_commande_apres(self): - pass - - -def transforme_liste_dico(liste): - d={} - for item in liste : - d[item.nom]=item - return d - -class OPERItem(OBJECTItem): - panel = OPERPanel - def GetSubList(self): - sublist=[] - # on classe les fils dans l'ordre du catalogue ... - l_cles_fils = self.get_liste_mc_ordonnee() - # on crée les items fils ... - dico_fils = transforme_liste_dico(self.object.entites_fils) - for k in l_cles_fils : - typ = TYPE_COMPLET(dico_fils[k]) - if type(self.objet_cata_ordonne) == types.InstanceType : - objet_cata = self.objet_cata_ordonne.entites[k] - else : - objet_cata = self.objet_cata_ordonne.get(k,None) - item = make_objecttreeitem(self.appli,typ + " : ",dico_fils[k],objet_cata_ordonne = objet_cata) - sublist.append(item) - return sublist - - def GetText(self): - #return self.object.nom - return self.object.get_valeur_attribut('nom') - - def get_liste_mc_ordonnee(self): - return self.objet_cata_ordonne.ordre_mc - - def GetIconName(self): - if self.object.isvalid(): - return 'ast-green-square' - else: - return 'ast-red-square' - - def additem(self,name,pos): - if isinstance(name,TreeItem) : - cmd=self.object.addentite(name.getObject(),pos) - else : - cmd = self.object.addentite(name,pos) - typ = TYPE_COMPLET(cmd) - item = make_objecttreeitem(self.appli,typ + " : ", cmd) - return item - - def get_attribut(self,nom): - if nom == 'nature': return 'OPERATEUR' - - def get_liste_mc_presents(self): - return [] - - def verif_condition_regles(self,liste): - return [] - -class PROCItem(OPERItem): - panel = OPERPanel - -class MACROItem(OPERItem): - panel = OPERPanel - -class SIMPItem(OPERItem): - panel = SIMPPanel - - def GetIconName(self): - if self.object.isvalid(): - return 'ast-green-ball' - else: - return 'ast-red-ball' - - def IsExpandable(self): - return 0 - - def GetSubList(self): - return [] - -class FACTItem(OPERItem): - def GetIconName(self): - if self.object.isvalid(): - return 'ast-green-los' - else: - return 'ast-red-los' - -class BLOCItem(FACTItem): pass - -class TYPEItem(SIMPItem): - panel = TYPEPanel - def get_dico_attributs(self): - self.d_attributs = {} - - def GetSubList(self): - return [] - - def IsExpandable(self): - return 0 - - def GetText(self): - return self.object.nom - -class NIVEAUItem(OPERItem): - def IsExpandable(self): - return 1 - - def get_liste_mc_ordonnee(self): - l=[] - for fils in self.object.entites_fils: - l.append(fils.nom) - return l - - def GetSubList(self): - sublist=[] - # on classe les fils dans l'ordre du catalogue ... - l_cles_fils = self.get_liste_mc_ordonnee() - # on crꥠles items fils ... - dico_fils = transforme_liste_dico(self.object.entites_fils) - for k in l_cles_fils : - typ = TYPE_COMPLET(dico_fils[k]) - if type(self.objet_cata_ordonne) == types.InstanceType : - objet_cata = self.objet_cata_ordonne.entites[k] - else : - objet_cata = self.objet_cata_ordonne.get(k,None) - item = make_objecttreeitem(self.appli,typ + " : ",dico_fils[k],objet_cata_ordonne = objet_cata) - sublist.append(item) - return sublist - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - return self.labeltext,Fonte_Niveau,'#00008b' - - def GetIconName(self): - if self.object.isvalid(): - return "ast-green-text" - else: - return 'ast-red-text' - - def additem(self,name,pos): - if isinstance(name,TreeItem) : - cmd=self.object.addentite(name.getObject(),pos) - else : - cmd = self.object.addentite(name,pos) - typ = TYPE_COMPLET(obj) - item = make_objecttreeitem(self.appli,typ+ " : ", cmd) - return item - - def suppitem(self,item) : - # item = item de l'ETAPE à supprimer du JDC - # item.getObject() = ETAPE ou _C - # self.object = JDC - itemobject=item.getObject() - if self.object.suppentite(itemobject): - if isinstance(itemobject,_C): - message = "Commentaire supprimé" - else : - message = "Commande " + itemobject.nom + " supprimée" - self.appli.affiche_infos(message) - return 1 - else: - self.appli.affiche_infos("Pb interne : impossible de supprimer cet objet") - return 0 - - def GetText(self): - return '' - -class ATTRIBUTItem(SIMPItem): - def get_dico_attributs(self): - self.d_attributs = {} - - def GetSubList(self): - return [] - - def IsExpandable(self): - return 0 - - def GetText(self): - return self.object - - def GetIconName(self): - return 'aucune' - -class CataEditeur: - def __init__(self,parent,appli,cata): - self.parent = parent - self.cata = definition_cata.CATALOGUE(cata) - self.appli = appli - self.top = Toplevel() - self.top.geometry("800x500") - self.top.title("Edition d'un catalogue") - self.init() - - def close(self): - self.top.destroy() - - def init(self): - self.nodes={} - self.creerbarremenus() - self.pane = Pmw.PanedWidget(self.top, - hull_width = 800, - hull_height = 500, - orient = 'horizontal') - self.pane.add('canvas',min = 0.4, max = 0.6, size = 0.45) - self.pane.add('panel',min = 0.4, max = 0.6, size = 0.55) - self.pane.pack(expand =1, fill = 'both') - self.scrolledcanvas = Pmw.ScrolledCanvas(self.pane.pane('canvas'), - hull_width=1., - hull_height=1., - borderframe=1) - Pmw.Color.changecolor(self.scrolledcanvas.component('canvas'),background='gray95') - self.scrolledcanvas.pack(padx=10,pady=10,expand=1, fill="both") - self.item = CATAItem(self.appli,"Catalogue", - self.cata, - objet_cata_ordonne = self.appli.readercata.cata_ordonne_dico) - - self.tree = Tree(self.appli,self.item,self.scrolledcanvas,command = self.select_node) - self.tree.draw() - self.node = self.tree.node_selected - - def creerbarremenus(self) : - self.menubar=Menu(self.top) - self.filemenu=Menu(self.menubar,tearoff=0) - self.filemenu.add_command(label='Quitter',command=self.quit) - - self.editmenu=Menu(self.menubar,tearoff=0) - #self.editmenu.add_command(label='Copier',command=self.copy) - #self.editmenu.add_command(label='Couper',command=self.cut) - #self.editmenu.add_command(label='Coller',command=self.paste) - - self.affichagemenu=Menu(self.menubar,tearoff=0) - self.affichagemenu.add_command(label='Rapport de validation', - command = self.visuCR) - self.affichagemenu.add_command(label='shell',command = self.shell) - #self.affichagemenu.add_command(label='Fichier à¡°lat',command=self.visu_a_plat) - #self.affichagemenu.add_command(label='Fichier .py',command =self.visuJDC_py) - #self.affichagemenu.add_command(label='Fichier source',command = self.visu_txt_brut_JDC) - #self.affichagemenu.add_command(label='Paraméµ²es Eficas',command=self.affichage_fichier_ini) - - #self.optionmenu=Menu(self.menubar,tearoff=0) - #self.optionmenu.add_command(label='Catalogue dê·¥loppeur',command=self.choix_cata_developpeur) - - self.menubar.add_cascade(label='Fichier',menu=self.filemenu) - self.menubar.add_cascade(label='Edition',menu=self.editmenu) - self.menubar.add_cascade(label='Jeu de commandes',menu=self.affichagemenu) - #self.menubar.add_cascade(label='Browsers',menu=self.browsermenu) - #self.menubar.add_cascade(label='Catalogue',menu=self.cataloguemenu) - #self.menubar.add_cascade(label='Options',menu=self.optionmenu) - self.top.configure(menu=self.menubar) - self.top.protocol("WM_DELETE_WINDOW",self.quit) - self.top.minsize(900,500) - self.top.geometry("900x500") - - def shell(self,event=None): - import Interp - d={'j':self.tree.item.getObject()} - Interp.InterpWindow(d,parent=self.parent) - - def visuCR(self,mode='Cata'): - txt = str(self.cata.report()) - titre="Rapport de validation du catalogue" - Fenetre(self.appli,titre=titre,texte=txt) - - def select_node(self,node): - self.nodes[node]=self.create_panel(node) - - def create_panel(self,node): - if hasattr(node.item,"panel"): - return getattr(node.item,"panel")(self,self.pane.pane('panel'),node) - - def quit(self) : - self.top.destroy() - - def settitle(self): - self.top.wm_title("Browser de catalogue " ) - self.top.wm_iconname("CataBrowser") - - -dispatch = { - 'OPER' : OPERItem, - 'PROC' : PROCItem, - 'MACRO' : MACROItem, - 'SIMP' : SIMPItem, - 'FACT' : FACTItem, - 'BLOC' : BLOCItem, - 'TYPE' : TYPEItem, - 'NIVEAU' : NIVEAUItem -} - -def TYPE(o): - if isinstance(o,definition_cata.OPER_CATA):return 'OPER' - elif isinstance(o,definition_cata.PROC_CATA):return 'PROC' - elif isinstance(o,definition_cata.MACRO_CATA):return 'MACRO' - elif isinstance(o,definition_cata.SIMP_CATA):return 'SIMP' - elif isinstance(o,definition_cata.FACT_CATA):return 'FACT' - elif isinstance(o,definition_cata.BLOC_CATA):return 'BLOC' - elif isinstance(o,definition_cata.TYPE_CATA):return 'TYPE' - elif isinstance(o,definition_cata.NIVEAU_CATA) : return 'NIVEAU' - else:return type(o) - -def TYPE_COMPLET(o): - if isinstance(o,definition_cata.OPER_CATA):return "OPERATEUR" - elif isinstance(o,definition_cata.PROC_CATA):return "PROCEDURE" - elif isinstance(o,definition_cata.MACRO_CATA):return "MACRO" - elif isinstance(o,definition_cata.SIMP_CATA):return "Mot-clé SIMPLE" - elif isinstance(o,definition_cata.FACT_CATA):return "Mot-clé FACTEUR" - elif isinstance(o,definition_cata.BLOC_CATA):return "BLOC" - elif isinstance(o,definition_cata.TYPE_CATA):return "Type" - elif isinstance(o,definition_cata.NIVEAU_CATA):return "Niveau" - else: return "Inconnu ("+`type(o)`+")" - -def make_objecttreeitem(appli,labeltext, object, setfunction=None,objet_cata_ordonne=None): - t = TYPE(object) - if dispatch.has_key(t): - c = dispatch[t] - else: - print 'on a un objet de type :',type(object),' ',object - c = ATTRIBUTItem - return c(appli,labeltext, object, setfunction = setfunction,objet_cata_ordonne=objet_cata_ordonne) - - - diff --git a/InterfaceTK/centerwindow.py b/InterfaceTK/centerwindow.py deleted file mode 100644 index 4acca2e4..00000000 --- a/InterfaceTK/centerwindow.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- 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 fonction utilitaire centerwindow - qui sert à centrer une fenetre -""" -import types - -def centerwindow(window,parent = 'avec'): - if parent =='avec': - parent = window.winfo_parent() - if type(parent) == types.StringType: - parent = window._nametowidget(parent) - # Find size of window. - window.update_idletasks() - width = window.winfo_width() - height = window.winfo_height() - if width == 1 and height == 1: - # If the window has not yet been displayed, its size is - # reported as 1x1, so use requested size. - width = window.winfo_reqwidth() - height = window.winfo_reqheight() - # Place in centre of screen: - if parent =='avec' : - x = (window.winfo_screenwidth() - width) / 2 - parent.winfo_vrootx() - y = (window.winfo_screenheight() - height) / 3 - parent.winfo_vrooty() - else: - x = (window.winfo_screenwidth() - width) / 2 - y = (window.winfo_screenheight() - height) / 3 - if x < 0: - x = 0 - if y < 0: - y = 0 - window.geometry('+%d+%d' % (x, y)) - diff --git a/InterfaceTK/change_comm.py b/InterfaceTK/change_comm.py deleted file mode 100755 index c2f5d383..00000000 --- a/InterfaceTK/change_comm.py +++ /dev/null @@ -1,169 +0,0 @@ -# -*- 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 permet de lancer l'application EFICAS en affichant - un ecran Splash pour faire patentier l'utilisateur -""" -# Modules Python -import sys -import os - -# Modules Eficas -from Editeur import import_code -from Editeur import session -import prefs -name='prefs_'+prefs.code -prefsCode=__import__(name) -import convert -import generator -import string -from Editeur.utils import extension_fichier,stripPath, save_in_file - -class DUP : - - def __init__(self,code): - """ - """ - self.format_fichier="python" - self.version_code=None - self.code=code - - self.top=None - self.test=2 - import configuration_ASTER - - self.CONFIGURATION=configuration_ASTER.make_config(self,prefsCode.repIni) - - self.load_readercata() - self.cata=self.readercata.cata - - self.JDC=None - self.JDCName="" - self.J2=None - - def load_readercata(self): - mname='readercata' - module=__import__(mname,globals(),locals()) - factory=getattr(module,mname.upper()) - appli_composant=factory(self,self.top) - setattr(self,mname,appli_composant) - - - def openJDC(self,fichier): - if fichier : - self.fichier = fichier - e=extension_fichier(fichier) - self.JDCName=stripPath(fichier) - self.savedir = os.path.dirname(os.path.abspath(fichier)) - else : - return - - format=self.format_fichier - # 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(fichier) - text=p.convert('exec',self) - if not p.cr.estvide(): - print ("Erreur à la conversion") - print str(p.cr) - return - - # On se met dans le repertoire ou se trouve le fichier de commandes - # pour trouver les eventuels fichiers include ou autres - # localises a cote du fichier de commandes - os.chdir(self.savedir) - CONTEXT.unset_current_step() - J=self.cata[0].JdC(procedure=text,appli=self, - cata=self.cata,cata_ord_dico=self.readercata.cata_ordonne_dico, - nom = self.JDCName, - rep_mat=self.CONFIGURATION.rep_mat, - ) - - J.analyse() - - txt_exception = J.cr.get_mess_exception() - if txt_exception : - # des exceptions ont été levées à la création du JDC - # --> on affiche les erreurs mais pas le JDC - self.JDC=J - print("Erreur fatale au chargement de %s" %file) - else : - self.JDC=J - - 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' - if convert.plugins.has_key(format): - p=convert.plugins[format]() - p.settext(textedecoup) - text=p.convert('exec',self) - if not p.cr.estvide(): - 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, - nom = self.JDCName+"2", - rep_mat=self.CONFIGURATION.rep_mat, - ) - self.J2.definition.code = "MODIF" - self.J2.analyse() - - - def saveJDC(self,fichierSortie): - """ - Sauvegarde le JDC courant. - Retourne 1 si la sauvegarde s'est bien faite, 0 sinon. - """ - if not hasattr(self,'JDC') : return 0 - - format="Modif" - - if generator.plugins.has_key(format): - g=generator.plugins[format]() - jdc_formate=g.genermodifparam(self.JDC,self.J2) - if not g.cr.estvide(): - self.affiche_infos("Erreur à la generation") - return 0 - else: - self.affiche_infos("Format %s non reconnu" % format) - return 0 - - 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") - return 0 - else : - self.affiche_infos("sauvegarde effectuée") - return 1 - - - def affiche_infos(self,mess): - print mess - diff --git a/InterfaceTK/compobase.py b/InterfaceTK/compobase.py deleted file mode 100644 index a287b7d2..00000000 --- a/InterfaceTK/compobase.py +++ /dev/null @@ -1,3 +0,0 @@ -from Editeur import Objecttreeitem -treeitem = Objecttreeitem.ObjectTreeItem -objet = None diff --git a/InterfaceTK/compobloc.py b/InterfaceTK/compobloc.py deleted file mode 100644 index e92d5199..00000000 --- a/InterfaceTK/compobloc.py +++ /dev/null @@ -1,42 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== -from Tkinter import * -import Pmw - -from Editeur import Objecttreeitem -import compofact - - -class BLOCTreeItem(compofact.FACTTreeItem): - panel = compofact.FACTPanel - - def get_objet(self,name) : - for v in self.object.mc_liste: - if v.nom == name : return v - return None - - def iscopiable(self): - return 0 - - -import Accas -treeitem = BLOCTreeItem -objet = Accas.MCBLOC diff --git a/InterfaceTK/compocomm.py b/InterfaceTK/compocomm.py deleted file mode 100644 index 949014c6..00000000 --- a/InterfaceTK/compocomm.py +++ /dev/null @@ -1,170 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== -from Tkinter import * -import Pmw -import string - -from Editeur import Objecttreeitem -import panels -import fontes - -Fonte_Commentaire = fontes.standard_italique - -class COMMPanel(panels.OngletPanel): - - def init(self): - """ - Initialise les frame des panneaux contextuels relatifs à un COMMENTAIRE - """ - nb = Pmw.NoteBook(self,raisecommand=self.raisecmd) - nb.pack(fill = 'both', expand = 1) - self.nb=nb - nb.add('TexteComm', tab_text='Texte Commentaire') - nb.add('Commande', tab_text='Nouvelle Commande') - nb.add('Commentaire',tab_text='Paramètre/Commentaire') - self.makeCOMMPage(nb.page("TexteComm")) - self.makeCommandePage(nb.page("Commande")) - self.makeParamCommentPage_for_etape(nb.page("Commentaire")) - nb.tab('TexteComm').focus_set() - self.enlevebind() - self.creebind() - nb.setnaturalsize() - - def makeCOMMPage(self,page): - """ - Crée la page qui permet d'afficher et d'éditer le texte du commentaire - """ - self.frame_valeur = Frame(page) - self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw') - self.widget_text = Pmw.ScrolledText(self.frame_valeur, - borderframe=1, - labelpos='n', - label_text = 'Texte du commentaire\n ') - self.widget_text.pack(side='top',expand=1,fill='both') - self.widget_text.configure(hscrollmode='dynamic', - vscrollmode='dynamic') - self.widget_text.component('text').configure(background = 'white') - self.make_buttons() - self.display_valeur() - - def make_buttons(self): - """ - Crée les boutons du panneau - """ - #self.bouton_sup.place_forget() - #self.bouton_doc.place_forget() - #self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) - #self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) - - #self.bouton_val.place(relx=0.25,rely=0.5,relheight=0.8,anchor='center') - #self.bouton_ann.place(relx=0.50,rely=0.5,relheight=0.8,anchor='center') - #self.bouton_sup.place(relx=0.75,rely=0.5,relheight=0.8,anchor='center') - - self.bouton_sup.pack_forget() - self.bouton_doc.pack_forget() - self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur) - self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur) - - self.bouton_val.pack(side='left',padx=5, pady=5) - self.bouton_ann.pack(side='left',padx=5, pady=5) - self.bouton_sup.pack(side='right',padx=5, pady=5) - - def change_valeur(self): - """ - Stocke la nouvelle valeur donnée par l'utilisateur comme valeur du commentaire - """ - if self.parent.modified == 'n' : self.parent.init_modif() - new_valeur = self.widget_text.get() - self.node.item.set_valeur(new_valeur) - self.node.update() - - def display_valeur(self): - """ - Affiche dans self.widget_text la valeur de l'objet commentaire - (annule d'éventuelles modifications faite par l'utilisateur) - """ - t=self.node.item.get_valeur() - try: - self.widget_text.settext(unicode(t)) - except: - # Si probleme avec unicode - self.widget_text.settext(t) - -class COMMTreeItem(Objecttreeitem.ObjectTreeItem): - panel = COMMPanel - - def init(self): - self.setfunction = self.set_valeur - - def GetIconName(self): - """ - Retourne le nom de l'icône associée au noeud qui porte self, - dépendant de la validité de l'objet - NB : un commentaire est toujours valide ... - """ - return "ast-white-percent" - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - return 'commentaire',Fonte_Commentaire,None - - def get_valeur(self): - """ - Retourne la valeur de l'objet Commentaire cad son texte - """ - return self.object.get_valeur() or '' - - def GetText(self): - texte = self.object.valeur - texte = string.split(texte,'\n')[0] - if len(texte) < 25 : - return texte - else : - return texte[0:24] - - def set_valeur(self,valeur): - """ - Afefcte valeur à l'objet COMMENTAIRE - """ - self.object.set_valeur(valeur) - - def GetSubList(self): - """ - Retourne la liste des fils de self - """ - return [] - - - def get_objet_commentarise(self): - """ - La méthode get_objet_commentarise() de la classe compocomm.COMMTreeItem - surcharge la méthode get_objet_commentarise de la classe Objecttreeitem.ObjectTreeItem - elle a pour but d'empecher l'utilisateur final de commentariser un commentaire. - """ - raise Exception( 'Citoyen : tu peux "commentariser" une commande MAIS PAS UN COMMENTAIRE' ) - -import Extensions -treeitem =COMMTreeItem -objet = Extensions.commentaire.COMMENTAIRE diff --git a/InterfaceTK/compocommandecomm.py b/InterfaceTK/compocommandecomm.py deleted file mode 100644 index c7e55d78..00000000 --- a/InterfaceTK/compocommandecomm.py +++ /dev/null @@ -1,182 +0,0 @@ -# -*- 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 traceback -from Tkinter import * -import Pmw -import string -from widgets import showerror - -from Editeur import Objecttreeitem -import panels -import fontes - -Fonte_Commentaire = fontes.standard_italique - -class COMMANDE_COMMPanel(panels.OngletPanel): - """ - Classe servant à définir le panel associé à une commande commentarisée - """ - def init(self): - """ - Initialise les frame des panneaux contextuels relatifs à une commande commentarisée - """ - panneau=Frame(self) - panneau.pack(expand=1,fill='both') - self.make_buttons() - self.makeCOMMPage(panneau) - self.enlevebind() - - def makeCOMMPage(self,page): - """ - Crée la page qui permet d'afficher et d'éditer le texte de la commande commentarisée - """ - self.frame_valeur = Frame(page) - self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw') - self.widget_text = Pmw.ScrolledText(self.frame_valeur, - borderframe=1, - labelpos='n', - label_text = 'Texte de la commande\n ') - self.widget_text.pack(side='top',expand=1,fill='both') - self.widget_text.configure(hscrollmode='dynamic', - vscrollmode='dynamic') - self.display_valeur() - - def make_buttons(self): - """ - Crée les boutons du panneau - """ - #self.bouton_sup.place_forget() - #self.bouton_doc.place_forget() - #self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) - #self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) - #self.bouton_unc = Button(self.fr_but,text='Décommentariser',command=self.uncomment,width=14) - - #self.bouton_val.place(relx=0.1,rely=0.5,relheight=1,relwidth=0.20,anchor='center') - #self.bouton_ann.place(relx=0.30,rely=0.5,relheight=1,relwidth=0.20,anchor='center') - #self.bouton_sup.place(relx=0.50,rely=0.5,relheight=1,relwidth=0.20,anchor='center') - #self.bouton_unc.place(relx=0.75,rely=0.5,relheight=1,relwidth=0.25,anchor='center') - - self.bouton_sup.pack_forget() - self.bouton_doc.pack_forget() - self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur) - self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur) - self.bouton_unc = Button(self.fr_but,text='Décommentariser',command=self.uncomment) - self.bouton_val.pack(side='left',padx=5, pady=5) - self.bouton_ann.pack(side='left',padx=5, pady=5) - self.bouton_sup.pack(side='left',padx=5, pady=5) - self.bouton_unc.pack(side='right',padx=5, pady=5) - - def change_valeur(self): - """ - Stocke la nouvelle valeur donnée par l'utilisateur comme valeur de la commande commentarisée - """ - if self.parent.modified == 'n' : self.parent.init_modif() - new_valeur = self.widget_text.get() - self.node.item.set_valeur(new_valeur) - self.node.update() - - def display_valeur(self): - """ - Affiche dans self.widget_text la valeur de la commande commentarisée - (annule d'éventuelles modifications faite par l'utilisateur) - """ - self.widget_text.settext(self.node.item.get_valeur()) - - def uncomment(self): - """ - Réalise la décommentarisation de self - """ - try: - pos=self.node.parent.children.index(self.node) - commande,nom = self.node.item.uncomment() - self.node.parent.children[pos].select() - except Exception,e: - showerror("Erreur !",str(e)) - return - #self.parent.appli.bureau.JDCDisplay_courant.ReplaceObjectNode(self.node,commande,nom) - -class COMMANDE_COMMTreeItem(Objecttreeitem.ObjectTreeItem): - panel = COMMANDE_COMMPanel - - def init(self): - self.setfunction = self.set_valeur - - def GetIconName(self): - """ - Retourne le nom de l'icône associée au noeud qui porte self, - dépendant de la validité de l'objet - NB : une commande commentarisée est toujours valide ... - """ - if self.isvalid(): - return "ast-green-percent" - else: - return "ast-red-percent" - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - return 'commande commentarisée',Fonte_Commentaire,None - - def get_valeur(self): - """ - Retourne la valeur de la commande commentarisée cad son texte - """ - return self.object.get_valeur() or '' - - def GetText(self): - texte = self.object.valeur - texte = string.split(texte,'\n')[0] - if len(texte) < 25 : - return texte - else : - return texte[0:24] - - def set_valeur(self,valeur): - """ - Afefcte valeur à l'objet commande commentarisée - """ - self.object.set_valeur(valeur) - - def GetSubList(self): - """ - Retourne la liste des fils de self - """ - return [] - - def uncomment(self): - """ - Demande à l'objet commande commentarisée de se décommentariser. - Si l'opération s'effectue correctement, retourne l'objet commande - et éventuellement le nom de la sd produite, sinon lève une exception - """ - try: - commande,nom = self.object.uncomment() - except Exception,e: - traceback.print_exc() - raise e - return commande,nom - -import Accas -treeitem =COMMANDE_COMMTreeItem -objet = Accas.COMMANDE_COMM diff --git a/InterfaceTK/compoerror.py b/InterfaceTK/compoerror.py deleted file mode 100644 index 74e0c46c..00000000 --- a/InterfaceTK/compoerror.py +++ /dev/null @@ -1,45 +0,0 @@ -# -*- 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 -from Editeur 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/InterfaceTK/compofact.py b/InterfaceTK/compofact.py deleted file mode 100644 index 85ce7bc0..00000000 --- a/InterfaceTK/compofact.py +++ /dev/null @@ -1,150 +0,0 @@ -# -*- 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 Pmw -from Editeur import Objecttreeitem -import panels - -class FACTPanel(panels.OngletPanel) : - def init(self) : - nb = Pmw.NoteBook(self,raisecommand=self.raisecmd) - nb.pack(fill = 'both', expand = 1) - self.nb=nb - nb.add('Mocles', tab_text='Ajouter mots-clés') - panneau=Pmw.PanedWidget(nb.page("Mocles"), - orient='horizontal') - panneau.add('left',min=0.4,max=0.6,size=0.5) - panneau.add('right',min=0.4,max=0.6,size=0.5) - panneau.pack(expand=1,fill='both') - self.makeMoclesPage(panneau.pane('left')) - self.makeReglesPage(panneau.pane('right')) - nb.tab('Mocles').focus_set() - nb.setnaturalsize() - self.enlevebind() - self.creebind() - self.affiche() - -import treewidget -class Node(treewidget.Node): - def doPaste(self,node_selected): - objet_a_copier = self.item.get_copie_objet() - child=node_selected.doPaste_MCF(objet_a_copier) - return child - - def doPaste_MCF(self,objet_a_copier): - child = self.parent.append_child(objet_a_copier, - pos=self.item, - retour='oui') - return child - - -class FACTTreeItem(Objecttreeitem.ObjectTreeItem): - panel = FACTPanel - itemNode=Node - - def IsExpandable(self): - return 1 - - def GetText(self): - return '' - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - # None --> fonte et couleur par défaut - return self.object.getlabeltext(),None,None - - def isvalid(self): - return self.object.isvalid() - - def iscopiable(self): - return 1 - - def GetIconName(self): - if self.object.isvalid(): - return "ast-green-los" - elif self.object.isoblig(): - return "ast-red-los" - else: - return "ast-yel-los" - - def keys(self): - keys=self.object.mc_dict.keys() - return keys - - def GetSubList(self): - """ - Reactualise la liste des items fils stockes dans self.sublist - """ - liste=self.object.mc_liste - sublist=[None]*len(liste) - # suppression des items lies aux objets disparus - for item in self.sublist: - old_obj=item.getObject() - if old_obj in liste: - pos=liste.index(old_obj) - sublist[pos]=item - else: - pass # objets supprimes ignores - # ajout des items lies aux nouveaux objets - pos=0 - for obj in liste: - if sublist[pos] is None: - # nouvel objet : on cree un nouvel item - def setfunction(value, object=obj): - object.setval(value) - item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction) - sublist[pos]=item - pos=pos+1 - - self.sublist=sublist - return self.sublist - - def additem(self,name,pos): - #print "compofact.additem",name,pos - objet = self.object.addentite(name,pos) - return objet - - def suppitem(self,item) : - """ - Cette methode a pour fonction de supprimer l'item passé en argument - des fils de l'item FACT qui est son pere - - item = item du MOCLE à supprimer du MOCLE père - - item.getObject() = MCSIMP ou MCBLOC - """ - itemobject=item.getObject() - if itemobject.isoblig() : - self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ') - return 0 - - if self.object.suppentite(itemobject): - message = "Mot-clef " + itemobject.nom + " supprime" - self.appli.affiche_infos(message) - return 1 - else: - self.appli.affiche_infos('Pb interne : impossible de supprimer ce mot-clé') - return 0 - -import Accas -objet = Accas.MCFACT -treeitem = FACTTreeItem diff --git a/InterfaceTK/compoformule.py b/InterfaceTK/compoformule.py deleted file mode 100644 index e6f22793..00000000 --- a/InterfaceTK/compoformule.py +++ /dev/null @@ -1,410 +0,0 @@ -# -*- 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 les classes permettant de définir les objets graphiques -représentant un objet de type FORMULE, cad le panneau et l'item de l'arbre -d'EFICAS -""" - -# import modules Python -from Tkinter import * -import Pmw -import string - -# import modules EFICAS -import widgets -import panels -import fontes -import compooper - -Fonte_TITRE = fontes.standard_gras_souligne - - -class FORMULEPanel(panels.OngletPanel): - """ - Classe servant à construire le panneau associé à un paramètre. - C'est au moyen de ce panneau que l'utilisateur peut accéder - aux nom et valeur du paramètre en vue éventuellement de les - modifier. - """ - - def init(self): - nb = Pmw.NoteBook(self,raisecommand=self.raisecmd) - nb.pack(fill = 'both', expand = 1) - self.nb=nb - nb.add('Formule', tab_text='Définition Formule') - nb.add('Commande', tab_text='Nouvelle Commande') - nb.add('Commentaire',tab_text='Paramètre/Commentaire') - self.makeFormulePage(nb.page("Formule")) - self.makeCommandePage(nb.page("Commande")) - self.makeParamCommentPage_for_etape(nb.page("Commentaire")) - nb.tab('Formule').focus_set() - self.enlevebind() - self.creebind() - nb.setnaturalsize() - - def makeFormulePage(self,page): - """ - Crée la page qui permet d'afficher et d'éditer le texte de la FORMULE - """ - self.frame_valeur = Frame(page) - self.frame_valeur.pack(fill='both',expand=1) - #self.frame_valeur.place(relwidth=0.95,relheight=0.95,relx=0.05,rely=0.05,anchor='nw') - #self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw') - # affichage du titre du panneau - self.titre = StringVar() - self.titre.set("FORMULE "+self.node.item.get_nom()) - - self.entry_nom = Entry(self.frame_valeur) - #Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).place(relx=0.5,rely=0.,anchor='n') - Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).grid(row=0,columnspan=2,padx=5,pady=5) - # création des labels et entries associés aux nom, type retourné, arguments et corps de la FORMULE - - #Label(self.frame_valeur,text= 'Nom de la formule : ').place(relx=0.,rely=0.1) - Label(self.frame_valeur,text= 'Nom de la formule : ').grid(row=1,sticky=W,padx=5,pady=5) - #Label(self.frame_valeur,text= 'Arguments : ').place(relx=0.,rely=0.40) - Label(self.frame_valeur,text= 'Arguments : ').grid(row=2,sticky=W,padx=5,pady=5) - self.entry_arg = Entry(self.frame_valeur) - #Label(self.frame_valeur,text= 'Expression : ').place(relx=0.,rely=0.65) - Label(self.frame_valeur,text= 'Expression : ').grid(row=4,sticky=W,padx=5,pady=5) - self.entry_exp = Entry(self.frame_valeur) - - # binding sur les entries - self.entry_nom.bind("",self.verif_nom) - self.entry_nom.bind("",self.verif_nom) - self.entry_arg.bind("",self.verif_arguments) - self.entry_arg.bind("",self.verif_arguments) - self.entry_exp.bind("",self.verif_corps) - self.entry_exp.bind("",self.verif_corps) - # affichage des entries - #self.entry_nom.place(relx=0.35,rely=0.10,relwidth=0.2) - self.entry_nom.grid(row=1,column=1,sticky=W,padx=5,pady=5) - #self.entry_arg.place(relx=0.35,rely=0.40,relwidth=0.4) - self.entry_arg.grid(row=2,column=1,sticky=W,padx=5,pady=5) - - # affichage d'une phrase d'aide pour les arguments - aide = """Entrer les arguments sous la forme -de VARIABLES séparées par des virgules (,) -Exemple X,Y,Z """ - #Label(self.frame_valeur,text=aide, justify="l").place(relx=0.5,rely=0.47,anchor='n') - Label(self.frame_valeur,text=aide, justify="l").grid(row=3,columnspan=2,padx=5,pady=5) - - #self.entry_exp.place(relx=0.35,rely=0.65,relwidth=0.60) - self.entry_exp.grid(row=4,column=1,sticky=W,padx=5,pady=5) - # affichage d'une phrase d'aide pour l'expression - aide = """Un retour de chariot dans une zone de saisie vous permet de vérifier si -la valeur que vous avez entrée est valide. -Ce n'est qu'après avoir appuyé sur le bouton Valider que les nouvelles -valeurs seront effectivement prises en compte.""" - #Label(self.frame_valeur,text=aide).place(relx=0.5,rely=0.75,anchor='n') - Label(self.frame_valeur,text=aide).grid(row=5,columnspan=2,padx=5,pady=5) - self.frame_valeur.columnconfigure(1,weight=1) - - # affichage des nom, type retourné, arguments et corps de la FORMULE - self.display_valeur() - # affichage des boutons - self.make_buttons() - # entry_nom prend le focus - self.entry_nom.focus() - - def make_buttons(self): - """ - Crée les boutons du panneau - """ - #self.bouton_sup.place_forget() - #self.bouton_doc.place_forget() - #self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) - #self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) - - #self.bouton_val.place(relx=0.15,rely=0.5,relheight=0.8,anchor='center') - #self.bouton_ann.place(relx=0.40,rely=0.5,relheight=0.8,anchor='center') - #self.bouton_sup.place(relx=0.65,rely=0.5,relheight=0.8,anchor='center') - #self.bouton_doc.place(relx=0.90,rely=0.5,relheight=0.8,anchor='center') - - self.bouton_sup.pack_forget() - self.bouton_doc.pack_forget() - self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur) - self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur) - - self.bouton_val.pack(side='left',padx=5, pady=5) - self.bouton_ann.pack(side='left',padx=5, pady=5) - self.bouton_sup.pack(side='left',padx=5, pady=5) - self.bouton_doc.pack(side='right',padx=5, pady=5) - - def change_valeur(self): - """ - Stocke la nouvelle FORMULE décrite par l'utilisateur - """ - if self.parent.modified == 'n' : self.parent.init_modif() - # on récupère les nouveaux nom, type retourné, arguments et corps de la FORMULE - new_nom = self.entry_nom.get() - new_typ="REEL" - new_arg = self.entry_arg.get() - new_exp = self.entry_exp.get() - self.verif_arguments() - self.verif_corps() - # on essaie de les stocker - test,erreur = self.node.item.save_formule(new_nom,new_typ,new_arg,new_exp) - if test : - # on a pu stocker les nouveaux paramètres : il faut rafraîchir l'affichage - self.node.update() - self.display_valeur() - self.parent.appli.affiche_infos("FORMULE %s modifiée" %self.node.item.get_nom()) - else: - # la formule est incorrecte : on affiche les erreurs - widgets.showerror("Formule incorrecte",erreur) - self.parent.appli.affiche_infos("FORMULE %s non modifiée" %self.node.item.get_nom()) - - def display_valeur(self): - """ - Affiche dans self.widget_text de la valeur de l'objet FORMULE - (annule d'éventuelles modifications faite par l'utilisateur) - """ - # on efface tout texte affiché dans les entries - self.entry_nom.delete(0,END) - self.entry_arg.delete(0,END) - self.entry_exp.delete(0,END) - # on rafraîchit le titre du panneau - self.titre.set('FORMULE '+self.node.item.get_nom()) - # on insére les nouveaux nom, type retourné, arguments et corps de la FORMULE - nom = self.node.item.get_nom() - if nom != '': - self.entry_nom.insert(END,nom) - 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 - self.entry_arg.insert(END,texte_args) - corps = self.node.item.get_corps() - if corps : - self.entry_exp.insert(END,self.node.item.get_corps()) - - def verif_nom(self,event=None): - """ - Lance la vérification du nom présent dans entry_nom - """ - nom = self.entry_nom.get() - if nom == '': - test,erreur = 0,"Aucun nom fourni !" - else: - test,erreur = self.node.item.verif_nom(nom) - if not test: - widgets.showerror("Nom invalide",erreur) - self.entry_nom.focus() - self.entry_nom.selection_range(0,END) - self.parent.appli.affiche_infos("%s n'est pas un nom valide pour une FORMULE" %nom) - else: - self.parent.appli.affiche_infos("%s est un nom valide pour une FORMULE" %nom) - self.entry_arg.focus() - - def verif_arguments(self,event=None): - """ - Lance la vérification des arguments présents dans entry_arg - """ - arguments = self.entry_arg.get() - if arguments == '' : - test,erreur = 0,"Aucun argument fourni" - else: - test,erreur = self.node.item.verif_arguments(arguments) - if not test: - widgets.showerror("Argument(s) invalide(s)",erreur) - self.entry_arg.focus() - self.entry_arg.selection_range(0,END) - self.parent.appli.affiche_infos("Argument(s) invalide(s) pour une FORMULE") - else: - self.parent.appli.affiche_infos("Argument(s) valide(s) pour une FORMULE") - self.entry_exp.focus() - - def verif_corps(self,event=None): - """ - Lance la vérification du corps de formule présent dans entry_exp - """ - new_nom = self.entry_nom.get() - new_typ="REEL" - new_arg = self.entry_arg.get() - new_exp = self.entry_exp.get() - if new_exp == '': - test,erreur = 0,"Aucune expression fournie !" - else: - test,erreur = self.node.item.verif_formule_python((new_nom,new_typ,new_arg,new_exp)) - - if not test: - widgets.showerror("Corps de FORMULE invalide",erreur) - self.entry_exp.focus() - self.entry_exp.selection_range(0,END) - self.parent.appli.affiche_infos("Corps de FORMULE invalide") - else: - self.parent.appli.affiche_infos("Corps de FORMULE valide") - -class FORMULETreeItem(compooper.EtapeTreeItem): - """ - Classe servant à définir l'item porté par le noeud de l'arbre d'EFICAS - qui représente la FORMULE - """ - panel = FORMULEPanel - - def init(self): - self.setfunction = self.set_valeur - -# --------------------------------------------------------------------------- -# API de FORMULE pour l'arbre -# --------------------------------------------------------------------------- - def GetSubList(self): - """ - Retourne la liste des fils de self - On considère que FORMULE n'a pas de fils - --> modification par rapport à MACRO classique - """ - # dans EFICAS on ne souhaite pas afficher les mots-clés fils de FORMULE - # de façon traditionnelle - return [] - - def GetIconName(self): - """ - Retourne le nom de l'icône à afficher dans l'arbre - Ce nom dépend de la validité de l'objet - """ - if self.object.isactif(): - if self.object.isvalid(): - return "ast-green-square" - else: - return "ast-red-square" - else: - return "ast-white-text" - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - if self.object.isactif(): - # None --> fonte et couleur par défaut - return self.labeltext,None,None - else: - return self.labeltext,fontes.standard_italique,None - -# --------------------------------------------------------------------------- -# Méthodes permettant la modification et la lecture des attributs -# du paramètre = API graphique de la FORMULE pour Panel et EFICAS -# --------------------------------------------------------------------------- - - def get_nom(self): - """ - Retourne le nom de la FORMULE - """ - return self.object.get_nom() - - def get_type(self): - """ - Retourne le type de la valeur retournée par la FORMULE - """ - return self.object.type_retourne - - def get_args(self): - """ - Retourne les arguments de la FORMULE - """ - args="" - for mot in self.object.mc_liste: - 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 - return args - - def get_corps(self): - """ - Retourne le corps de la FORMULE - """ - corps="" - for mot in self.object.mc_liste: - if mot.nom == 'VALE': - corps=mot.valeur - break - return corps - - - def get_liste_types_autorises(self): - """ - Retourne la liste des types autorises pour les valeurs de sortie - d'une FORMULE - """ - return self.object.l_types_autorises - - def save_formule(self,new_nom,new_typ,new_arg,new_exp): - """ - Vérifie si (new_nom,new_typ,new_arg,new_exp) définit bien une FORMULE - licite : - - si oui, stocke ces paramètres comme nouveaux paramètres de la - FORMULE courante et retourne 1 - - si non, laisse les paramètres anciens de la FORMULE inchangés et - retourne 0 - """ - test,erreur = self.object.verif_formule_python(formule=(new_nom,new_typ,new_arg, - new_exp)) - if test : - # la formule est bien correcte : on sauve les nouveaux paramètres - test=self.object.update_formule_python(formule=(new_nom,new_typ,new_exp,new_arg)) - return test,erreur - -# --------------------------------------------------------------------------- -# Accès aux méthodes de vérification de l'objet FORM_ETAPE -# --------------------------------------------------------------------------- - - def verif_nom(self,nom): - """ - Lance la vérification du nom passé en argument - """ - return self.object.verif_nom(nom) - - def verif_arguments(self,arguments): - """ - Lance la vérification des arguments passés en argument - """ - return self.object.verif_arguments('('+arguments+')') - - def verif_formule(self,formule): - """ - Lance la vérification de FORMULE passée en argument - """ - return self.object.verif_formule(formule=formule) - - - def verif_formule_python(self,formule): - """ - Lance la vérification de FORMULE passée en argument - """ - return self.object.verif_formule_python(formule=formule) - -import Accas -treeitem =FORMULETreeItem -objet = Accas.FORM_ETAPE diff --git a/InterfaceTK/compojdc.py b/InterfaceTK/compojdc.py deleted file mode 100644 index fb9b7d76..00000000 --- a/InterfaceTK/compojdc.py +++ /dev/null @@ -1,168 +0,0 @@ -# -*- 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 Pmw -from Editeur import Objecttreeitem -import panels - -from widgets import ListeChoix - -class JDCPanel(panels.OngletPanel): - def init(self): - """ Initialise les frame des panneaux contextuels relatifs à un JDC """ - panneau=Pmw.PanedWidget(self,orient='horizontal') - panneau.add('left',min=0.4,max=0.6,size=0.5) - panneau.add('right',min=0.4,max=0.6,size=0.5) - panneau.pack(expand=1,fill='both') - self.bouton_com.pack_forget() - self.makeJDCPage(panneau.pane('left')) - self.makeReglesPage(panneau.pane('right')) - self.enlevebind() - - def makeReglesPage(self,page) : - regles = [] - regles = self.node.item.get_regles() - texte_regles = [] - l_regles_en_defaut=[] - if len(regles) > 0: - l_noms_etapes = self.node.item.get_l_noms_etapes() - i = 0 - for regle in regles : - texte_regles.append(regle.gettext()) - texte,test = regle.verif(l_noms_etapes) - if test == 0 : l_regles_en_defaut.append(i) - i = i+1 - Liste = ListeChoix(self,page,texte_regles,liste_marques=l_regles_en_defaut,active='non',titre="Règles") - Liste.affiche_liste() - # aide associée au panneau - bulle_aide="""Ce panneau contient la liste des règles qui s'appliquent à l'objet - en cours d'édition. - - en noir : règles valides - - en rouge : règles violées""" - Liste.MCbox.bind("", lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) - Liste.MCbox.bind("",self.parent.appli.efface_aide) - -import treewidget -class Node(treewidget.Node): - def doPaste_Commande(self,objet_a_copier): - """ - Réalise la copie de l'objet passé en argument qui est nécessairement - une commande - """ - #child = self.item.append_child(objet_a_copier,pos='first') - child = self.append_child(objet_a_copier,pos='first',retour='oui') - #if child is None : return 0 - return child - - -class JDCTreeItem(Objecttreeitem.ObjectTreeItem): - panel = JDCPanel - itemNode=Node - - def IsExpandable(self): - return 1 - - def GetText(self): - return " " - - def GetLabelText(self): - # None --> fonte et couleur par défaut - return self.object.nom,None,None - - def get_jdc(self): - """ - Retourne l'objet pointé par self - """ - return self.object - - def GetIconName(self): - if self.object.isvalid(): - return "ast-green-square" - else: - return "ast-red-square" - - def keys(self): - if self.object.etapes_niveaux != []: - return range(len(self.object.etapes_niveaux)) - else: - return range(len(self.object.etapes)) - - def additem(self,name,pos): - cmd = self._object.addentite(name,pos) - return cmd - - def suppitem(self,item) : - # item = item de l'ETAPE à supprimer du JDC - # item.getObject() = ETAPE ou COMMENTAIRE - # self.object = JDC - itemobject=item.getObject() - if self.object.suppentite(itemobject): - if itemobject.nature == "COMMENTAIRE" : - message = "Commentaire supprimé" - else : - message = "Commande " + itemobject.nom + " supprimée" - self.appli.affiche_infos(message) - return 1 - else: - self.appli.affiche_infos("Pb interne : impossible de supprimer cet objet") - return 0 - - def GetSubList(self): - """ - Retourne la liste des items fils de l'item jdc. - Cette liste est conservee et mise a jour a chaque appel - """ - if self.object.etapes_niveaux != []: - liste = self.object.etapes_niveaux - else: - liste = self.object.etapes - sublist=[None]*len(liste) - # suppression des items lies aux objets disparus - for item in self.sublist: - old_obj=item.getObject() - if old_obj in liste: - pos=liste.index(old_obj) - sublist[pos]=item - else: - pass # objets supprimes ignores - # ajout des items lies aux nouveaux objets - pos=0 - for obj in liste: - if sublist[pos] is None: - # nouvel objet : on cree un nouvel item - item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj) - sublist[pos]=item - pos=pos+1 - - self.sublist=sublist - return self.sublist - - def get_l_noms_etapes(self): - """ Retourne la liste des noms des étapes de self.object""" - return self.object.get_l_noms_etapes() - - def get_liste_cmd(self): - #print "get_liste_cmd",self.object.niveau.definition - listeCmd = self.object.niveau.definition.get_liste_cmd() - return listeCmd - -import Accas -treeitem =JDCTreeItem -objet = Accas.JDC diff --git a/InterfaceTK/compomacro.py b/InterfaceTK/compomacro.py deleted file mode 100644 index 99cfd0ea..00000000 --- a/InterfaceTK/compomacro.py +++ /dev/null @@ -1,311 +0,0 @@ -# -*- 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 -import os,sys,string -import types -import Tkinter -import Pmw -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import panels -import fontes -import compooper -import convert -from widgets import askopenfilename -from widgets import Fenetre,FenetreYesNo -from widgets import showinfo,showerror - -# -__version__="$Name: V6_main $" -__Id__="$Id: compomacro.py,v 1.4 2009-06-19 08:36:50 pnoyret Exp $" -# - -class MACROPanel(panels.OngletPanel): - def init(self): - nb = Pmw.NoteBook(self,raisecommand=self.raisecmd) - nb.pack(fill = 'both', expand = 1) - self.nb=nb - nb.add('Mocles', tab_text='Ajouter mots-clés') - typsd=self.node.item.object.get_type_produit() - ficini = self.node.item.wait_fichier_init() - if typsd != None: - nb.add('Concept', tab_text='Nommer concept') - if ficini == 1: - nb.add('Fichierinit',tab_text = 'Fichier %s' %self.node.item.get_nom()) - nb.add('Commande', tab_text='Nouvelle Commande') - nb.add('Commentaire',tab_text='Paramètre/Commentaire') - panneau=Pmw.PanedWidget(nb.page("Mocles"), - orient='horizontal') - panneau.add('left',min=0.4,max=0.6,size=0.5) - panneau.add('right',min=0.4,max=0.6,size=0.5) - panneau.pack(expand=1,fill='both') - self.makeCommandePage(nb.page("Commande")) - if typsd != None: - self.makeConceptPage(nb.page("Concept")) - if ficini == 1 : - self.makeFichierPage(nb.page('Fichierinit')) - self.makeMoclesPage(panneau.pane('left')) - self.makeReglesPage(panneau.pane('right')) - self.makeParamCommentPage_for_etape(nb.page("Commentaire")) - nb.tab('Mocles').focus_set() - nb.setnaturalsize() - self.enlevebind() - self.creebind() - self.affiche() - - def makeFichierPage(self,page): - """ - Affiche la page d'onglet correspondant au changement du fichier - dont a besoin la macro - """ - titre = Tkinter.Label(page,text="La commande %s requiert un fichier " %self.node.item.get_nom()) - titre.place(relx=0.5,rely=0.2,anchor='center') - frameMain=Tkinter.Frame(page) - frameMain.place(relx=0.5,rely=0.4,anchor='center',relwidth=1.) - Tkinter.Label(frameMain,text="Fichier :").pack(side='left',padx=5) - self.entry = Tkinter.Entry(frameMain,relief='sunken',bg='white') - self.entry.pack(side='left',padx=5,fill='x',expand=1) - frameButtons=Tkinter.Frame(page) - but1=Tkinter.Button(frameButtons,text='Valider',command = self.change_fichier_init) - but2=Tkinter.Button(frameButtons,text='Browse',command = self.browse_fichier_init) - but3=Tkinter.Button(frameButtons,text='Annuler',command = self.annule_fichier_init) - but1.grid(row=0,column=0,padx=5,pady=5) - but2.grid(row=0,column=1,padx=5,pady=5) - but3.grid(row=0,column=2,padx=5,pady=5) - frameButtons.place(relx=0.5,rely=0.6,anchor='center') - - if hasattr(self.node.item.object,'fichier_ini'): - if self.node.item.object.fichier_ini : - self.entry.insert(0,self.node.item.object.fichier_ini) - self.entry.focus() - - def convert_file(self,file): - """ - Methode pour convertir le fichier file dans le format courant - """ - format=self.parent.appli.format_fichier.get() - if convert.plugins.has_key(format): - # Le convertisseur existe on l'utilise - p=convert.plugins[format]() - p.readfile(file) - text=p.convert('execnoparseur') - if not p.cr.estvide(): - self.parent.appli.affiche_infos("Erreur à la conversion") - Fenetre(self, - titre="compte-rendu d'erreurs, EFICAS ne sait pas convertir ce fichier", - texte = str(p.cr)) - return None - return text - else: - # Il n'existe pas c'est une erreur - self.parent.appli.affiche_infos("Type de fichier non reconnu") - showerror("Type de fichier non reconnu","EFICAS ne sait pas ouvrir ce type de fichier") - return None - - def change_fichier_init(self,event=None): - """ - Effectue le changement de fichier d'initialisation s'il est valide - """ - new_fic = self.entry.get() - if not os.path.isfile(new_fic) : - showinfo("Fichier introuvable","Le fichier que vous avez saisi\n"+ - "n'est pas un nom de fichier valide !") - self.parent.appli.affiche_infos("Fichier introuvable") - return - # On convertit le fichier - text=self.convert_file(new_fic) - # Si probleme a la lecture-conversion on arrete le traitement - if not text: - return - - try: - self.node.item.object.change_fichier_init(new_fic,text) - self.parent.appli.affiche_infos("Fichier %s modifié" %self.node.item.get_nom()) - except: - # Erreurs lors de l'evaluation de text dans un JDC auxiliaire - self.parent.appli.affiche_infos("Fichier invalide") - l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1]) - f=FenetreYesNo(self.parent.appli,titre="Fichier invalide : voulez vous retablir l ancien fichier ?", - texte="Erreur dans l'interprétation du nouveau fichier ...\n\n"+string.join(l), - yes="Retablir",no="Changer") - f.wait() - reponse=f.result - if reponse: - # On retablit l'ancien fichier - self.entry.delete(0,Tkinter.END) - self.node.item.object.restore_fichier_init() - self.parent.appli.affiche_infos("Fichier invalide ... Ancien fichier restauré") - fic=self.node.item.object.fichier_ini - if fic: - self.entry.insert(0,fic) - else: - self.node.item.object.force_fichier_init() - self.parent.appli.affiche_infos("Fichier invalide ... Nouveau fichier mémorisé") - - def annule_fichier_init(self,event=None): - """ Restaure dans self.entry le nom de fichier_init""" - self.entry.delete(0,Tkinter.END) - if self.node.item.object.fichier_ini: - self.entry.insert(0,self.node.item.object.fichier_ini) - - def browse_fichier_init(self,event=None): - """ - Propose à l'utilisateur une Bsf et retourne le fichier - sélectionné dans self.entry - """ - file = askopenfilename(title="Choix du fichier %s" %self.node.item.get_nom()) - if file : - self.entry.delete(0,Tkinter.END) - self.entry.insert(0,file) - - def update_panel(self): - if hasattr(self,"entry"): - self.annule_fichier_init() - -class MACROTreeItem(compooper.EtapeTreeItem): - """ Cette classe hérite d'une grande partie des comportements - de la classe compooper.EtapeTreeItem - """ - panel=MACROPanel - -class INCLUDETreeItemBase(MACROTreeItem): - rmenu_specs=[("View","makeView"), - ("Edit","makeEdit"), - ] - - def __init__(self,appli, labeltext, object, setfunction): - MACROTreeItem.__init__(self,appli, labeltext, object, setfunction) - - def iscopiable(self): - """ - Retourne 1 si l'objet est copiable, 0 sinon - """ - return 0 - - def makeEdit(self,appli,node): - #print "makeEdit",self.object,self.object.nom - #print "makeEdit",self.object.jdc_aux,self.object.jdc_aux.nom - #print "makeEdit",self.object.jdc_aux.context_ini - if self.object.text_converted == 0: - # Le texte du fichier inclus n'a pas pu etre converti par le module convert - msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n" - msg=msg+self.object.text_error - Fenetre(self,titre="Include non editable",texte=msg,wrap='none') - return - - if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None: - #L'include n'est pas initialise - self.object.build_include(None,"") - - # On cree un nouvel onglet dans le bureau - appli.bureau.ShowJDC(self.object.jdc_aux,self.object.jdc_aux.nom, - label_onglet=None, - JDCDISPLAY=macrodisplay.MACRODISPLAY) - - def makeView(self,appli,node): - if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None: - showerror("Include vide", - "L'include doit etre correctement initialisé pour etre visualisé") - return - - nom=self.object.nom - if hasattr(self.object,'fichier_ini'): - if self.object.fichier_ini is None: - nom=nom+' '+"Fichier non défini" - else: - nom=nom+' '+self.object.fichier_ini - macdisp=macrodisplay.makeMacroDisplay(appli,self,nom) - -class INCLUDEPanel(MACROPanel): - def makeFichierPage(self,page): - """ - Affiche la page d'onglet correspondant au changement du fichier INCLUDE - """ - if not hasattr(self.node.item.object,'fichier_ini'): - titre = Tkinter.Label(page,text="L'INCLUDE n'a pas de fichier associé\nIl faut d'abord choisir un numero d'unité " ) - titre.place(relx=0.5,rely=0.5,anchor='center') - else: - MACROPanel.makeFichierPage(self,page) - -class INCLUDETreeItem(INCLUDETreeItemBase): - panel=INCLUDEPanel - -class POURSUITETreeItem(INCLUDETreeItemBase): - def makeEdit(self,appli,node): - if self.object.text_converted == 0: - # Le texte du fichier inclus n'a pas pu etre converti par le module convert - msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n" - msg=msg+self.object.text_error - Fenetre(self,titre="Poursuite non editable",texte=msg,wrap='none') - return - - if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None: - #La poursuite n'est pas initialisee - text="""DEBUT() -FIN()""" - self.object.build_poursuite(None,text) - - # On cree un nouvel onglet dans le bureau - appli.bureau.ShowJDC(self.object.jdc_aux,self.object.jdc_aux.nom, - label_onglet=None, - JDCDISPLAY=macrodisplay.MACRODISPLAY) - - def makeView(self,appli,node): - if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None: - showerror("Poursuite vide","Une POURSUITE doit etre correctement initialisée pour etre visualisée") - return - nom=self.object.nom - if hasattr(self.object,'fichier_ini'): - if self.object.fichier_ini is None: - nom=nom+' '+"Fichier non défini" - else: - nom=nom+' '+self.object.fichier_ini - macdisp=macrodisplay.makeMacroDisplay(appli,self,nom) - -class INCLUDE_MATERIAUTreeItem(INCLUDETreeItemBase): - rmenu_specs=[("View","makeView"), - ] - def iscopiable(self): - """ - Retourne 1 si l'objet est copiable, 0 sinon - """ - return 1 - - -def treeitem(appli, labeltext, object, setfunction=None): - """ Factory qui retourne l'item adapté au type de macro : - INCLUDE, POURSUITE, MACRO - """ - if object.nom == "INCLUDE_MATERIAU": - return INCLUDE_MATERIAUTreeItem(appli, labeltext, object, setfunction) - elif object.nom == "INCLUDE": - return INCLUDETreeItem(appli, labeltext, object, setfunction) - elif object.nom == "POURSUITE": - return POURSUITETreeItem(appli, labeltext, object, setfunction) - else: - return MACROTreeItem(appli, labeltext, object, setfunction) - -import Accas -objet=Accas.MACRO_ETAPE - -import macrodisplay diff --git a/InterfaceTK/compomclist.py b/InterfaceTK/compomclist.py deleted file mode 100644 index a05f6de8..00000000 --- a/InterfaceTK/compomclist.py +++ /dev/null @@ -1,225 +0,0 @@ -# -*- 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 types -from Tkinter import * -import Pmw - -from Noyau.N_OBJECT import ErrorObj -from Editeur import Objecttreeitem -import panels -import traceback - -class MCLISTPanel(panels.Panel): - def init(self): - test_ajout = self.node.item.ajout_possible() - nom_mcfact = self.node.item.get_nom() - if test_ajout: - texte = "Pour ajouter une autre occurrence du mot-clé facteur %s, cliquez ci-dessous" %nom_mcfact - else: - texte = "Vous ne pouvez pas ajouter une autre occurrence du mot-clé facteur %s ?" %nom_mcfact - self.label = Label(self,text = texte) - self.label.place(relx=0.5,rely=0.4,anchor='center') - if test_ajout: - self.but=Button(self,text="AJOUTER",command=self.ajout_occurrence) - self.but.place(relx=0.5,rely=0.6,anchor='center') - #Button(self,text="NON",command=None).place(relx=0.6,rely=0.6,anchor='center') - - def ajout_occurrence(self,event=None): - self.node.parent.append_child(self.node.item.get_nom()) - -import compofact -import compoerror -import treewidget - -class Node(treewidget.Node): - def doPaste(self,node_selected): - objet_a_copier = self.item.get_copie_objet() - child=node_selected.doPaste_MCF(objet_a_copier) - #print "doPaste",child - return child - - def doPaste_MCF(self,objet_a_copier): - if self.item.isMCList() : - # le noeud courant est une MCList - child = self.append_child(objet_a_copier,pos='first',retour='oui') - #child = self.parent.append_child(objet_a_copier,pos='first',retour='oui') - elif self.item.isMCFact() : - # le noeud courant est un MCFACT - if self.parent.item.isMCList(): - # le noeud selectionne est un MCFACT dans une MCList - child = self.parent.append_child(objet_a_copier, - pos=self.item, - retour='oui') - else: - # le noeud MCFACT selectionne n'est pas dans une MCList - child = self.parent.append_child(objet_a_copier,retour='oui') - else: - showinfo("Copie impossible", - "Vous ne pouvez coller le mot-clé facteur copié à ce niveau de l'arborescence !") - self.appli.affiche_infos("Copie refusée") - child=None - #print "doPaste_MCF",child - return child - -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). - """ - itemNode=Node - - def init(self): - # Si l'objet Accas (MCList) a moins d'un mot cle facteur - # on utilise directement ce mot cle facteur comme delegue - self.updateDelegate() - - def updateDelegate(self): - 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) - Si la liste ne contient qu'un mot clé facteur, on utilise le panneau - FACTPanel. - Si la liste est plus longue on utilise le panneau MCLISTPanel. - """ - if len(self._object) > 1: - return MCLISTPanel(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) - - def GetSubList(self): - self.updateDelegate() - if len(self._object) <= 1: - self._object.data[0].alt_parent=self._object - return compofact.FACTTreeItem.GetSubList(self) - - liste=self._object.data - sublist=[None]*len(liste) - # suppression des items lies aux objets disparus - for item in self.sublist: - old_obj=item.getObject() - if old_obj in liste: - pos=liste.index(old_obj) - sublist[pos]=item - else: - pass # objets supprimes ignores - # ajout des items lies aux nouveaux objets - pos=0 - for obj in liste: - if sublist[pos] is None: - # nouvel objet : on cree un nouvel item - def setfunction(value, object=obj): - object=value - item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction) - sublist[pos]=item - #Attention : on ajoute une information supplementaire pour l'actualisation de - # la validite. L'attribut parent d'un MCFACT pointe sur le parent de la MCLISTE - # et pas sur la MCLISTE elle meme ce qui rompt la chaine de remontee des - # informations de validite. alt_parent permet de remedier a ce defaut. - obj.alt_parent=self._object - pos=pos+1 - - self.sublist=sublist - return self.sublist - - def GetIconName(self): - if self._object.isvalid(): - return "ast-green-los" - elif self._object.isoblig(): - return "ast-red-los" - else: - return "ast-yel-los" - - def get_docu(self): - """ Retourne la clé de doc de l'objet pointé par self """ - return self.object.get_docu() - - def 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 - - def isMCList(self): - """ - Retourne 1 si l'objet pointé par self est une MCList, 0 sinon - """ - 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: - return compofact.FACTTreeItem.additem(self,obj,pos) - - o= self.object.addentite(obj,pos) - return o - - def suppitem(self,item): - """ - 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 self.object.suppentite(obj): - if len(self._object) == 1: self.updateDelegate() - message = "Mot-clef " + obj.nom + " supprime" - self.appli.affiche_infos(message) - return 1 - else: - self.appli.affiche_infos('Impossible de supprimer ce mot-clé') - return 0 - - -import Accas -objet = Accas.MCList - -def treeitem(appli,labeltext,object,setfunction): - """ Factory qui produit un objet treeitem adapte a un objet - Accas.MCList (attribut objet de ce module) - """ - return MCListTreeItem(appli,labeltext,object,setfunction) diff --git a/InterfaceTK/componiveau.py b/InterfaceTK/componiveau.py deleted file mode 100644 index 175a3e89..00000000 --- a/InterfaceTK/componiveau.py +++ /dev/null @@ -1,133 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== - -from Tkinter import * -import Pmw - -from Editeur import Objecttreeitem -import panels -import fontes -from Extensions import commentaire - -Fonte_Niveau = fontes.canvas_gras_italique -Fonte_Niveau_inactif = fontes.canvas_italique - -class NIVEAUPanel(panels.OngletPanel): - def init(self): - """ Initialise les frame des panneaux contextuels relatifs à un JDC """ - panneau=Pmw.PanedWidget(self,orient='horizontal') - panneau.add('left',min=0.4,max=0.6,size=0.5) - panneau.add('right',min=0.4,max=0.6,size=0.5) - panneau.pack(expand=1,fill='both') - self.bouton_com.pack_forget() - self.makeJDCPage(panneau.pane('left')) - self.enlevebind() - - -import treewidget -class Node(treewidget.Node):pass - - -class NIVEAUTreeItem(Objecttreeitem.ObjectTreeItem): - panel = NIVEAUPanel - itemNode=Node - - def isactif(self): - return self.object.isactif() - - def IsExpandable(self): - return 1 - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - if self.isactif(): - fonte = Fonte_Niveau - else : - fonte = Fonte_Niveau_inactif - return self.labeltext,fonte,'#00008b' - - def GetIconName(self): - if self.isactif(): - if self.object.isvalid(): - return "ast-green-text" - else: - return "ast-red-text" - else: - return "ast-white-text" - - def keys(self): - if self.object.etapes_niveaux != []: - return range(len(self.object.etapes_niveaux)) - else: - return range(len(self.object.etapes)) - - def GetSubList(self): - sublist=[] - for key in self.keys(): - if self.object.etapes_niveaux != []: - liste = self.object.etapes_niveaux - else: - liste = self.object.etapes - try: - value = liste[key] - except KeyError: - continue - def setfunction(value, key=key, object=liste): - object[key] = value - item =self.make_objecttreeitem(self.appli,value.ident() + " : ", value, setfunction) - sublist.append(item) - return sublist - - def additem(self,name,pos): - if isinstance(name,Objecttreeitem.TreeItem) : - cmd=self.object.addentite(name.getObject(),pos) - else : - cmd = self.object.addentite(name,pos) - item = self.make_objecttreeitem(self.appli,cmd.nom + " : ", cmd) - return item - - def suppitem(self,item) : - # item = item de l'ETAPE à supprimer du JDC - # item.getObject() = ETAPE ou COMMENTAIRE - # self.object = JDC - itemobject=item.getObject() - if self.object.suppentite(itemobject): - if isinstance(item.object,commentaire.COMMENTAIRE): - message = "Commentaire supprimé" - else : - message = "Commande " + itemobject.nom + " supprimée" - self.appli.affiche_infos(message) - return 1 - else: - self.appli.affiche_infos("Pb interne : impossible de supprimer cet objet") - return 0 - - def GetText(self): - return '' - - -import Accas -treeitem = NIVEAUTreeItem -objet = Accas.ETAPE_NIVEAU diff --git a/InterfaceTK/componuplet.py b/InterfaceTK/componuplet.py deleted file mode 100644 index 01c680e7..00000000 --- a/InterfaceTK/componuplet.py +++ /dev/null @@ -1,175 +0,0 @@ -# -*- 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 -import types -import Tkinter -import Pmw -from repr import Repr -from copy import copy,deepcopy - -# Modules Eficas -from Editeur import Objecttreeitem -import panels - -# -__version__="$Name: V6_main $" -__Id__="$Id: componuplet.py,v 1.4 2009-06-19 08:36:50 pnoyret Exp $" -# - -myrepr = Repr() -myrepr.maxstring = 100 -myrepr.maxother = 100 - -# Si Expandable vaut 1 les éléments du nuplet apparaissent dans l'arbre -# Si Expandable vaut 0 les éléments n'apparaissent pas -Expandable=1 - -class NUPLETPanel(panels.OngletPanel): - def init(self): - """ Initialise les frame des panneaux contextuels relatifs \340 un NUPLET """ - self.nb=Pmw.NoteBook(self,raisecommand=self.raisecmd) - self.nb.pack(fill = 'both', expand = 1) - self.nb.add("Valeurs",tab_text="Saisir valeurs") - self.makeValeurPage(self.nb.page('Valeurs')) - self.enlevebind() - self.creebind() - self.nb.setnaturalsize() - - def makeValeurPage(self,page): - label = Tkinter.Label(page,text='Valeurs :').pack(side=Tkinter.LEFT) - i=0 - for obj in self.node.item.object.mc_liste: - frame_valeur=Tkinter.Frame(page) - frame_valeur.pack(side=Tkinter.LEFT) - if hasattr(obj,'definition'): - objet_mc=obj.definition - else: - objet_mc=None - valeur=obj.valeur - if type(valeur) == types.InstanceType : - valeur=obj.getval() - aide=self.gen_aide(obj) - if objet_mc.into != None : - l_choix=list(objet_mc.into) - #obj.set_valeur(l_choix[0],evaluation='non') - obj.set_valeur(l_choix[0]) - option=Pmw.OptionMenu (frame_valeur, - items = l_choix, - menubutton_width = 10, - command = lambda e,obj=obj,s=self:s.record_valeur(val=e,obj=obj), - ) - option.pack(side=Tkinter.LEFT,padx=1) - else : - entry = Tkinter.Entry(frame_valeur,relief='sunken',width=10) - entry.pack(side=Tkinter.LEFT,padx=1) - entry.bind("", - lambda e,obj=obj,s=self:s.valid_valeur(e,obj=obj)) - entry.bind("", - lambda e,obj=obj,s=self:s.valid_valeur(e,obj=obj)) - if i==0:entry.focus_set() - #aide = Tkinter.Label(frame_valeur, text = aide) - #aide.place(relx=0.5,rely=0.55,anchor='n') - if valeur != None : - entry.delete(0,Tkinter.END) - entry.insert(0,obj.getval()) - i=i+1 - - def record_valeur(self,val=None,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'): - """ - Enregistre val comme valeur de self.node.item.object SANS faire de - test de validité - """ - #obj.set_valeur(val,evaluation='non') - obj.set_valeur(val) - self.parent.appli.affiche_infos(mess) - #self.node.parent.verif() - #self.node.update() - - def valid_valeur(self,e,obj=None,mess='Valeur du mot-cl\351 enregistr\351e'): - """ - Enregistre val comme valeur de self.node.item.object avec - test de validité - """ - valeur=e.widget.get() - e.widget.delete(0,Tkinter.END) - anc_val=obj.getval() - if anc_val == None:anc_val='' - test=obj.set_valeur(valeur) - if test: - if obj.isvalid(): - self.parent.appli.affiche_infos('Valeur du mot-cl\351 enregistr\351e') - e.widget.insert(0,obj.getval()) - else: - #obj.set_valeur(anc_val,evaluation='non') - obj.set_valeur(anc_val) - self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e") - e.widget.insert(0,anc_val) - else: - print "impossible d'\351valuer : %s " %valeur - print "test =",test - self.parent.appli.affiche_infos("valeur du mot-cl\351 non autoris\351e") - e.widget.delete(0,Tkinter.END) - e.widget.insert(0,anc_val) - - #self.node.parent.verif() - #self.node.update() - - def gen_aide(self,obj): - return "" - - -class NUPLETTreeItem(Objecttreeitem.ObjectTreeItem): - panel=NUPLETPanel - - def IsExpandable(self): - return Expandable - - def GetText(self): - return '' - - def isvalid(self): - return self.object.isvalid() - - def GetIconName(self): - if self.object.isvalid(): - return "ast-green-los" - elif self.object.isoblig(): - return "ast-red-los" - else: - return "ast-yel-los" - - def GetSubList(self): - if not Expandable:return [] - sublist=[] - for obj in self.object.mc_liste: - item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, None) - sublist.append(item) - return sublist - - def additem(self,name,pos): - raise "NUPLET" - - def suppitem(self,item) : - raise "NUPLET" - -import Accas -treeitem=NUPLETTreeItem -objet=Accas.MCNUPLET diff --git a/InterfaceTK/compooper.py b/InterfaceTK/compooper.py deleted file mode 100644 index 079cb980..00000000 --- a/InterfaceTK/compooper.py +++ /dev/null @@ -1,332 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== -from Tkinter import * -import Pmw -import traceback -from Editeur import Objecttreeitem -import panels -import fontes - -class OPERPanel(panels.OngletPanel): - - def init(self): - nb = Pmw.NoteBook(self,raisecommand=self.raisecmd) - nb.pack(fill = 'both', expand = 1) - self.nb=nb - nb.add('Mocles', tab_text='Nouveau mot-clé') - nb.add('Concept', tab_text='Nommer concept') - nb.add('Commande', tab_text='Nouvelle Commande') - nb.add('Commentaire',tab_text='Paramètre/Commentaire') - panneau=Pmw.PanedWidget(nb.page("Mocles"), - orient='horizontal') - panneau.add('left',min=0.4,max=0.60,size=0.50) - panneau.add('right',min=0.4,max=0.60,size=0.50) - panneau.pack(expand=1,fill='both') - panneau.setnaturalsize() - self.makeCommandePage(nb.page("Commande")) - self.makeConceptPage_oper(nb.page("Concept")) - self.makeMoclesPage(panneau.pane('left')) - self.makeReglesPage(panneau.pane('right')) - #self.makeCommentairePage(nb.page("Commentaire")) - self.makeParamCommentPage_for_etape(nb.page("Commentaire")) - nb.tab('Mocles').focus_set() - self.nb.setnaturalsize() - self.enlevebind() - self.creebind() - self.affiche() - - def makeConceptPage_oper(self,page): - """ Crée la page de saisie du nom du concept """ - if self.node.item.is_reentrant(): - # commande obligatoirement reentrante - self.makeConceptPage_reentrant(page) - else: - # commande non reentrante ou facultativement reentrante - self.makeConceptPage(page) - - def makeConceptPage_reentrant(self,page): - """ Crée la page de saisie du nom de concept pour un opérateur reentrant - cad propose dans la liste des SD utilisées dans la commande celle(s) dont le - type est compatible avec celui que retourne l'opérateur """ - liste_noms_sd = self.node.item.get_noms_sd_oper_reentrant() - self.listbox = Pmw.ScrolledListBox(page, - items=liste_noms_sd, - labelpos='n', - label_text="Structure(s) de données à enrichir par l'opérateur courant :", - listbox_height = 6, - selectioncommand=self.select_valeur_from_list, - dblclickcommand=lambda s=self,c=self.execConcept : s.choose_valeur_from_list(c)) - self.listbox.place(relx=0.5,rely=0.3,relheight=0.4,anchor='center') - Label(page,text='Structure de donnée choisie :').place(relx=0.05,rely=0.6) - self.valeur_choisie = StringVar() - self.label_valeur = Label(page,textvariable=self.valeur_choisie) - self.label_valeur.place(relx=0.45,rely=0.6) - if len(liste_noms_sd) == 1 : - self.valeur_choisie.set(liste_noms_sd[0]) - - def select_valeur_from_list(self): - try: - choix = self.listbox.getcurselection()[0] - self.valeur_choisie.set(choix) - except: - traceback.print_exc() - - - def choose_valeur_from_list(self,command): - try: - choix = self.listbox.getcurselection()[0] - self.valeur_choisie.set(choix) - apply(command,(),{}) - except: - traceback.print_exc() - -import treewidget -class Node(treewidget.Node): - def doPaste(self,node_selected): - """ - Déclenche la copie de l'objet item avec pour cible - l'objet passé en argument : node_selected - """ - objet_a_copier = self.item.get_copie_objet() - child=node_selected.doPaste_Commande(objet_a_copier) - return child - - def doPaste_Commande(self,objet_a_copier): - """ - Réalise la copie de l'objet passé en argument qui est nécessairement - une commande - """ - parent=self.parent - #child = parent.item.append_child(objet_a_copier,self.item.getObject()) - child = self.append_brother(objet_a_copier,retour='oui') - #if child is None:return 0 - return child - - def doPaste_MCF(self,objet_a_copier): - """ - Réalise la copie de l'objet passé en argument (objet_a_copier) - Il s'agit forcément d'un mot clé facteur - """ - child = self.append_child(objet_a_copier,pos='first',retour='oui') - return child - - -class EtapeTreeItem(Objecttreeitem.ObjectTreeItem): - """ La classe EtapeTreeItem est un adaptateur des objets ETAPE du noyau - Accas. Elle leur permet d'etre affichés comme des noeuds - d'un arbre graphique. - Cette classe a entre autres deux attributs importants : - - _object qui est un pointeur vers l'objet du noyau - - object qui pointe vers l'objet auquel sont délégués les - appels de méthode et les accès aux attributs - Dans le cas d'une ETAPE, _object et object pointent vers le - meme objet. - """ - panel = OPERPanel - itemNode=Node - - def IsExpandable(self): - return 1 - - def GetIconName(self): - """ - Retourne le nom de l'icône à afficher dans l'arbre - Ce nom dépend de la validité de l'objet - """ - if not self.object.isactif(): - return "ast-white-square" - elif self.object.isvalid(): - return "ast-green-square" - else: - valid=self.valid_child() - valid=valid * self.valid_regles("non") - if self.reste_val != {}: - valid=0 - if valid==0 : - return "ast-red-square" - else : - return "ast-yellow-square" - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - if self.object.isactif(): - # None --> fonte et couleur par défaut - return self.labeltext,None,None - else: - return self.labeltext,fontes.standard_italique,None - - def get_objet(self,name) : - for v in self.object.mc_liste: - if v.nom == name : return v - return None - - def get_type_sd_prod(self): - """ - Retourne le nom du type du concept résultat de l'étape - """ - sd_prod=self.object.get_type_produit() - if sd_prod: - return sd_prod.__name__ - else: - return "" - - def additem(self,name,pos): - #print "compooper.additem",name,pos - mcent = self._object.addentite(name,pos) - return mcent - - def suppitem(self,item) : - # item : item du MOCLE de l'ETAPE à supprimer - # item.getObject() = MCSIMP, MCFACT, MCBLOC ou MCList - itemobject=item.getObject() - if itemobject.isoblig() : - self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ') - return 0 - if self.object.suppentite(itemobject): - message = "Mot-clef " + itemobject.nom + " supprime" - self.appli.affiche_infos(message) - return 1 - else : - self.appli.affiche_infos('Pb interne : impossible de supprimer ce mot-clé') - return 0 - - def GetText(self): - try: - return self.object.get_sdname() - except: - return '' - - def keys(self): - keys=self.object.mc_dict.keys() - return keys - - def GetSubList(self): - """ - Reactualise la liste des items fils stockes dans self.sublist - """ - if self.isactif(): - liste=self.object.mc_liste - else: - liste=[] - - sublist=[None]*len(liste) - # suppression des items lies aux objets disparus - for item in self.sublist: - old_obj=item.getObject() - if old_obj in liste: - pos=liste.index(old_obj) - sublist[pos]=item - else: - pass # objets supprimes ignores - - # ajout des items lies aux nouveaux objets - pos=0 - for obj in liste: - if sublist[pos] is None: - # nouvel objet : on cree un nouvel item - def setfunction(value, object=obj): - object.setval(value) - item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction) - sublist[pos]=item - pos=pos+1 - - self.sublist=sublist - return self.sublist - - def isvalid(self): - return self.object.isvalid() - - def iscopiable(self): - """ - Retourne 1 si l'objet est copiable, 0 sinon - """ - return 1 - - def update(self,item): - if item.sd and item.sd.nom: - self.nomme_sd(item.sd.nom) - - def nomme_sd(self,nom): - """ Lance la méthode de nommage de la SD """ - oldnom="" - if self.object.sd != None : - oldnom=self.object.sd.nom - test,mess= self.object.nomme_sd(nom) - if test:self.object.parent.reset_context() - if (test and self.appli.dict_reels.has_key(oldnom) ): - self.appli.dict_reels[nom]=self.appli.dict_reels[oldnom] - return test,mess - - def is_reentrant(self): - return self.object.is_reentrant() - - def get_noms_sd_oper_reentrant(self): - return self.object.get_noms_sd_oper_reentrant() - - def get_objet_commentarise(self): - """ - Cette méthode retourne un objet commentarisé - représentatif de self.object - """ - # 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 - """ - import generator,string,Accas - # Format de fichier utilisé - format=self.appli.format_fichier.get() - g=generator.plugins[format]() - texte_commande = g.gener(self.object,format='beautifie') - # Il faut enlever la première ligne vide de texte_commande que - # rajoute le generator - rebut,texte_commande = string.split(texte_commande,'\n',1) - # on construit l'objet COMMANDE_COMM repésentatif de self mais non - # enregistré dans le jdc - commande_comment = Accas.COMMANDE_COMM(texte=texte_commande,reg='non', - parent=self.object.parent) - commande_comment.niveau = self.object.niveau - commande_comment.jdc = commande_comment.parent = self.object.jdc - - pos=self.object.parent.etapes.index(self.object) - parent=self.object.parent - self.object.parent.suppentite(self.object) - parent.addentite(commande_comment,pos) - - 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/InterfaceTK/compoparam.py b/InterfaceTK/compoparam.py deleted file mode 100644 index 984df830..00000000 --- a/InterfaceTK/compoparam.py +++ /dev/null @@ -1,239 +0,0 @@ -# -*- 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 les classes permettant de définir les objets graphiques - représentant un objet de type PARAMETRE, cad le panneau et l'item de l'arbre - d'EFICAS -""" - -# import modules Python -from Tkinter import * -import Pmw -import string - -# import modules EFICAS -from Editeur import Objecttreeitem -import panels -import fontes - - -Fonte_PARAMETRE = fontes.standard_italique -Fonte_TITRE = fontes.standard_gras_souligne - - -class PARAMPanel(panels.OngletPanel): - """ - Classe servant à construire le panneau associé à un paramètre. - C'est au moyen de ce panneau que l'utilisateur peut accéder - aux nom et valeur du paramètre en vue éventuellement de les - modifier. - """ - - def init(self): - """ - Initialise les frame des panneaux contextuels relatifs à un PARAMETRE - """ - nb = Pmw.NoteBook(self,raisecommand=self.raisecmd) - nb.pack(fill = 'both', expand = 1) - self.nb=nb - nb.add('Parametre', tab_text='Valeur Paramètre') - nb.add('Commande', tab_text='Nouvelle Commande') - nb.add('Commentaire',tab_text='Paramètre/Commentaire') - self.makeParametrePage(nb.page("Parametre")) - self.makeCommandePage(nb.page("Commande")) - self.makeParamCommentPage_for_etape(nb.page("Commentaire")) - nb.tab('Parametre').focus_set() - nb.setnaturalsize() - self.make_buttons() - self.enlevebind() - self.creebind() - - def makeParametrePage(self,page): - """ - Crée la page qui permet d'afficher et d'éditer le texte du PARAMETRE - """ - self.frame_valeur = Frame(page) - self.frame_valeur.pack(expand=1) - # affichage du titre du panneau - self.titre = StringVar() - self.titre.set("PARAMETRE "+self.node.item.get_nom()) - Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).grid(row=0,columnspan=2,padx=5,pady=5) - # création des labels et entries associés aux nom et valeur du paramètre - Label(self.frame_valeur,text= 'Nom du paramètre : ',justify=LEFT).grid(row=1,sticky=W,padx=5,pady=5) - self.entry_nom = Entry(self.frame_valeur) - Label(self.frame_valeur,text= 'Valeur du paramètre : ',justify=LEFT).grid(row=2,sticky=W,padx=5,pady=5) - self.entry_val = Entry(self.frame_valeur) - # binding sur entry_nom - self.entry_nom.bind("",lambda e,s=self : s.entry_val.focus()) - self.entry_val.bind("",lambda e,s=self : s.change_valeur()) - self.entry_nom.bind("",lambda e,s=self : s.entry_val.focus()) - self.entry_val.bind("",lambda e,s=self : s.change_valeur()) - # affichage des entries - self.entry_nom.grid(row=1,column=1,sticky=W,padx=5,pady=5) - self.entry_val.grid(row=2,column=1,sticky=W,padx=5,pady=5) - # affichage d'une phrase d'aide - aide = """Un retour de chariot dans une zone de saisie vous permet -de vérifier si la valeur que vous avez entrée est valide. -Ce n'est qu'après avoir appuyé sur le bouton Valider que les -nouvelles valeurs seront effectivement prises en compte""" - Label(self.frame_valeur,text=aide).grid(row=3,columnspan=2,padx=5,pady=5,sticky=W) - #self.frame_valeur.columnconfigure(1,weight=1) - # affichage des nom et valeur du paramètre - self.display_valeur() - self.entry_nom.focus() - - def make_buttons(self): - """ - Crée les boutons du panneau - """ - #self.bouton_sup.place_forget() - #self.bouton_doc.place_forget() - #self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) - #self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) - #self.bouton_val.place(relx=0.25,rely=0.5,relheight=0.8,anchor='center') - #self.bouton_ann.place(relx=0.50,rely=0.5,relheight=0.8,anchor='center') - #self.bouton_sup.place(relx=0.75,rely=0.5,relheight=0.8,anchor='center') - - self.bouton_sup.pack_forget() - self.bouton_doc.pack_forget() - self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur) - self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur) - self.bouton_val.pack(side='left',padx=5, pady=5) - self.bouton_ann.pack(side='left',padx=5, pady=5) - self.bouton_sup.pack(side='right',padx=5, pady=5) - - def change_valeur(self): - """ - Stocke la nouvelle valeur donnée par l'utilisateur comme valeur du PARAMETRE - """ - if self.parent.modified == 'n' : self.parent.init_modif() - new_nom = self.entry_nom.get() - new_val = self.entry_val.get() - self.node.item.set_nom(new_nom) - self.node.item.set_valeur(new_val) - self.node.update() - self.display_valeur() - - def display_valeur(self): - """ - Affiche dans self.widget_text la valeur de l'objet PARAMETRE - (annule d'éventuelles modifications faite par l'utilisateur) - """ - self.entry_nom.delete(0,END) - self.entry_val.delete(0,END) - self.titre.set('PARAMETRE '+self.node.item.get_nom()) - self.entry_nom.insert(END,self.node.item.get_nom()) - self.entry_val.insert(END,self.node.item.get_valeur()) - -class PARAMTreeItem(Objecttreeitem.ObjectTreeItem): - """ - Classe servant à définir l'item porté par le noeud de l'arbre d'EFICAS - qui représente le PARAMETRE - """ - panel = PARAMPanel - - def init(self): - self.setfunction = self.set_valeur - -# --------------------------------------------------------------------------- -# API du PARAMETRE pour l'arbre -# --------------------------------------------------------------------------- - - def GetIconName(self): - """ - Retourne le nom de l'icône associée au noeud qui porte self, - dépendant de la validité de l'objet - NB : un PARAMETRE est toujours valide ... - """ - if self.isactif(): - if self.isvalid(): - return "ast-green-square" - else: - return "ast-red-square" - else: - return "ast-white-square" - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - return 'Paramètre',Fonte_PARAMETRE,None - - def GetText(self): - """ - Retourne le texte à afficher après le nom de la commande (ici après 'paramètre') - Ce texte est tronqué à 25 caractères - """ - texte = repr(self.object) - texte = string.split(texte,'\n')[0] - if len(texte) < 25 : - return texte - else : - return texte[0:24]+'...' - - def GetSubList(self): - """ - Retourne la liste des fils de self - """ - return [] - -# --------------------------------------------------------------------------- -# Méthodes permettant la modification et la lecture des attributs -# du paramètre = API graphique du PARAMETRE pour Panel et EFICAS -# --------------------------------------------------------------------------- - - def get_valeur(self): - """ - Retourne la valeur de l'objet PARAMETRE cad son texte - """ - if self.object.valeur is None: return '' - else: return self.object.valeur - - def get_nom(self): - """ - Retourne le nom du paramètre - """ - return self.object.nom - - def set_valeur(self,new_valeur): - """ - Affecte valeur à l'objet PARAMETRE - """ - self.object.set_valeur(new_valeur) - - def set_nom(self,new_nom): - """ - Renomme le paramètre - """ - self.object.set_nom(new_nom) - #self.object.set_attribut('nom',new_nom) - - def get_fr(self): - """ - Retourne le fr associé au paramètre, cad la bulle d'aide pour EFICAS - """ - return "Définition d'un paramètre" - -import Extensions.parametre -treeitem =PARAMTreeItem -objet = Extensions.parametre.PARAMETRE diff --git a/InterfaceTK/compoparameval.py b/InterfaceTK/compoparameval.py deleted file mode 100644 index 009473d4..00000000 --- a/InterfaceTK/compoparameval.py +++ /dev/null @@ -1,311 +0,0 @@ -# -*- 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 les classes permettant de définir les objets graphiques -représentant un objet de type PARAMETRE_EVAL, cad le panneau et l'item de l'arbre -d'EFICAS -""" - -# import modules Python -from Tkinter import * -import Pmw -import string - -# import modules EFICAS -import widgets -from Editeur import Objecttreeitem -import panels -import fontes - - -Fonte_PARAMETRE = fontes.standard_italique -Fonte_TITRE = fontes.standard_gras_souligne - - -class PARAM_EVALPanel(panels.OngletPanel): - """ - Classe servant à construire le panneau associé à un paramètre. - C'est au moyen de ce panneau que l'utilisateur peut accéder - aux nom et valeur du paramètre en vue éventuellement de les - modifier. - """ - - def init(self): - """ - Initialise les frame des panneaux contextuels relatifs à un PARAMETRE - """ - nb = Pmw.NoteBook(self,raisecommand=self.raisecmd) - nb.pack(fill = 'both', expand = 1) - self.nb=nb - nb.add('Parametre', tab_text='Paramètre EVAL') - nb.add('Commande', tab_text='Nouvelle Commande') - nb.add('Commentaire',tab_text='Paramètre/Commentaire') - self.makeParametrePage(nb.page("Parametre")) - self.makeCommandePage(nb.page("Commande")) - self.makeParamCommentPage_for_etape(nb.page("Commentaire")) - nb.tab('Parametre').focus_set() - nb.setnaturalsize() - self.make_buttons() - - def makeParametrePage(self,page): - """ - Crée la page qui permet d'afficher et d'éditer le texte du PARAMETRE - """ - self.frame_valeur = Frame(page) - self.frame_valeur.place(relwidth=0.9,relheight=0.9,relx=0.05,rely=0.05,anchor='nw') - # affichage du titre du panneau - self.titre = StringVar() - self.titre.set("PARAMETRE EVAL "+self.node.item.get_nom()) - Label(self.frame_valeur,textvariable=self.titre,font=Fonte_TITRE).place(relx=0.5,rely=0.1,anchor='n') - # création des labels et entries associés aux nom et valeur du paramètre - Label(self.frame_valeur,text= 'Nom du paramètre : ').place(relx=0.,rely=0.3) - self.entry_nom = Entry(self.frame_valeur) - Label(self.frame_valeur,text= 'Valeur du paramètre : ').place(relx=0.,rely=0.5) - self.entry_val = Entry(self.frame_valeur) - # binding sur entry_nom - self.entry_nom.bind("",lambda e,s=self : s.verif_nom()) - self.entry_val.bind("",lambda e,s=self : s.verif_eval()) - self.entry_nom.bind("",lambda e,s=self : s.verif_nom()) - self.entry_val.bind("",lambda e,s=self : s.verif_eval()) - # affichage des entries - self.entry_nom.place(relx=0.35,rely=0.3,relwidth=0.3) - self.entry_val.place(relx=0.35,rely=0.5,relwidth=0.5) - # affichage d'une phrase d'aide - aide = """ - Un retour de chariot dans une zone de saisie vous permet de vérifier si - la valeur que vous avez entrée est valide. - Ce n'est qu'après avoir appuyé sur le bouton Valider que les nouvelles - valeurs seront effectivement prises en compte - """ - Label(self.frame_valeur,text=aide).place(relx=0.5,rely=0.65,anchor='n') - # affichage des nom et valeur du paramètre - self.display_valeur() - self.entry_nom.focus() - - def make_buttons(self): - """ - Crée les boutons du panneau - """ - #self.bouton_sup.place_forget() - #self.bouton_doc.place_forget() - self.bouton_sup.pack_forget() - self.bouton_doc.pack_forget() - #self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur,width=14) - #self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur,width=14) - self.bouton_val = Button(self.fr_but,text='Valider',command=self.change_valeur) - self.bouton_ann = Button(self.fr_but,text='Annuler',command=self.display_valeur) - self.bouton_val.bind("",lambda e,s=self : s.bouton_val.invoke()) - self.bouton_val.bind("",lambda e,s=self : s.bouton_val.invoke()) - #self.bouton_val.place(relx=0.25,rely=0.5,relheight=0.8,anchor='center') - #self.bouton_ann.place(relx=0.50,rely=0.5,relheight=0.8,anchor='center') - #self.bouton_sup.place(relx=0.75,rely=0.5,relheight=0.8,anchor='center') - self.bouton_val.pack(side='left',padx=5, pady=5) - self.bouton_ann.pack(side='left',padx=5, pady=5) - self.bouton_sup.pack(side='left',padx=5, pady=5) - - def change_valeur(self): - """ - Stocke la nouvelle valeur donnée par l'utilisateur comme valeur du PARAMETRE - """ - if self.parent.modified == 'n' : self.parent.init_modif() - new_nom = self.entry_nom.get() - new_val = self.entry_val.get() - #self.node.item.set_nom(new_nom) - #self.node.item.set_valeur(new_val) - #self.node.update() - #self.display_valeur() - # on essaie de stocker les noms et valeurs - test,erreur = self.node.item.save_parametre_eval(new_nom,new_val) - if test : - # on a pu stocker les nouveaux paramètres : il faut rafraîchir l'affichage - self.node.update() - self.display_valeur() - self.parent.appli.affiche_infos("Expression EVAL %s modifiée" %self.node.item.get_nom()) - else: - # la formule est incorrecte : on affiche les erreurs - widgets.showerror("Expression EVAL incorrecte",erreur) - self.parent.appli.affiche_infos("Expression EVAL %s non modifiée" %self.node.item.get_nom()) - - def display_valeur(self): - """ - Affiche dans self.widget_text la valeur de l'objet PARAMETRE - (annule d'éventuelles modifications faite par l'utilisateur) - """ - self.entry_nom.delete(0,END) - self.entry_val.delete(0,END) - self.titre.set('PARAMETRE '+self.node.item.get_nom()) - self.entry_nom.insert(END,self.node.item.get_nom()) - self.entry_val.insert(END,self.node.item.get_valeur()) - - def verif_nom(self): - """ - Lance la vérification du nom donné par l'utilisateur dans entry_nom - """ - nom = self.entry_nom.get() - test,erreur = self.node.item.verif_nom(nom) - if not test : - widgets.showerror("Nom invalide",erreur) - self.entry_nom.focus() - self.entry_nom.selection_range(0,END) - self.parent.appli.affiche_infos("Nom du paramètre refusé") - else: - self.parent.appli.affiche_infos("Nom du paramètre accepté") - - def verif_eval(self,event=None): - """ - Lance la vérification de l'expression EVAL présente dans entry_val - """ - exp_eval = self.entry_val.get() - test,erreur = self.node.item.verif_eval(exp_eval) - if not test: - widgets.showerror("Expression EVAL invalide",erreur) - self.entry_val.focus() - self.entry_val.selection_range(0,END) - self.parent.appli.affiche_infos("Expression EVAL refusée") - else: - self.parent.appli.affiche_infos("Expression EVAL acceptée") - -class PARAM_EVALTreeItem(Objecttreeitem.ObjectTreeItem): - """ - Classe servant à définir l'item porté par le noeud de l'arbre d'EFICAS - qui représente le PARAMETRE - """ - panel = PARAM_EVALPanel - - def init(self): - self.setfunction = self.set_valeur - -# --------------------------------------------------------------------------- -# API du PARAMETRE pour l'arbre -# --------------------------------------------------------------------------- - - def GetIconName(self): - """ - Retourne le nom de l'icône associée au noeud qui porte self, - dépendant de la validité de l'objet - NB : un PARAMETRE est toujours valide ... - """ - if self.isactif(): - if self.isvalid(): - return "ast-green-square" - else: - return "ast-red-square" - else: - return "ast-white-square" - - def GetLabelText(self): - """ Retourne 3 valeurs : - - le texte à afficher dans le noeud représentant l'item - - la fonte dans laquelle afficher ce texte - - la couleur du texte - """ - return 'EVAL',Fonte_PARAMETRE,None - - def GetText(self): - """ - Retourne le texte à afficher après le nom de la commande (ici après 'paramètre') - Ce texte est tronqué à 25 caractères - """ - texte = repr(self.object) - texte = string.split(texte,'\n')[0] - if len(texte) < 25 : - return texte - else : - return texte[0:24]+'...' - - def GetSubList(self): - """ - Retourne la liste des fils de self - """ - return [] - -# --------------------------------------------------------------------------- -# Méthodes permettant la modification et la lecture des attributs -# du paramètre = API graphique du PARAMETRE pour Panel et EFICAS -# --------------------------------------------------------------------------- - - def isvalid(self): - """ - Indique si l'objet pointé par self est valide - """ - return self.object.isvalid() - - def get_valeur(self): - """ - Retourne une chaîne représentant la valeur de l'objet PARAMETRE - cad de l'objet class_eval.EVAL - """ - return self.object.get_valeur() or '' - - def get_nom(self): - """ - Retourne le nom du paramètre - """ - return self.object.get_nom() - - def set_valeur(self,new_valeur): - """ - Affecte new_valeur à l'objet PARAMETRE_EVAL - """ - # on construit le texte de la nouvelle valeur - new_valeur = 'EVAL("""'+new_valeur+'""")' - # on affecte la nouvelle valeur à self.object - self.object.set_valeur(new_valeur) - - def set_nom(self,new_nom): - """ - Renomme le paramètre - """ - self.object.set_nom(new_nom) - - def get_fr(self): - """ - Retourne le fr associé au paramètre, cad la bulle d'aide pour EFICAS - """ - return "Définition d'un paramètre de type EVAL" - - def verif_nom(self,nom): - """ - Lance la vérification de validité du nom passé en argument - """ - return self.object.verif_nom(nom = nom) - - def verif_eval(self,valeur): - """ - Lance la vérification de validité de l'expression EVAL passée en argument - """ - return self.object.verif_eval(exp_eval = valeur) - - def save_parametre_eval(self,new_nom,new_val): - """ - Vérifie si (new_nom,new_val) définit bien un EVAL licite : - - si oui, stocke ces paramètres comme nouveaux paramètres de l'EVAL courant et retourne 1 - - si non, laisse les paramètres anciens de EVAL inchangés et retourne 0 - """ - test,erreur = self.object.verif_parametre_eval(param=(new_nom,new_val)) - if test : - # la formule est bien correcte : on sauve les nouveaux paramètres - self.object.update(param=(new_nom,new_val)) - return test,erreur - -import Extensions.parametre_eval -treeitem =PARAM_EVALTreeItem -objet = Extensions.parametre_eval.PARAMETRE_EVAL diff --git a/InterfaceTK/compoproc.py b/InterfaceTK/compoproc.py deleted file mode 100644 index 3d3e906e..00000000 --- a/InterfaceTK/compoproc.py +++ /dev/null @@ -1,57 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== -from Tkinter import * -import Pmw - -from Editeur import Objecttreeitem -import panels -import fontes -import compooper - -class PROCPanel(panels.OngletPanel): - def init(self): - nb = Pmw.NoteBook(self,raisecommand=self.raisecmd) - self.nb=nb - nb.pack(fill = 'both', expand = 1) - nb.add('Mocles', tab_text='Ajouter mots-clés') - nb.add('Commande', tab_text='Nouvelle Commande') - nb.add('Commentaire',tab_text='Paramètre/Commentaire') - panneau=Pmw.PanedWidget(nb.page("Mocles"), - orient='horizontal') - panneau.add('left',min=0.4,max=0.6,size=0.5) - panneau.add('right',min=0.4,max=0.6,size=0.5) - panneau.pack(expand=1,fill='both') - self.makeCommandePage(nb.page("Commande")) - self.makeMoclesPage(panneau.pane('left')) - self.makeReglesPage(panneau.pane('right')) - self.makeParamCommentPage_for_etape(nb.page("Commentaire")) - nb.setnaturalsize() - self.enlevebind() - self.creebind() - self.affiche() - -class ProcEtapeTreeItem(compooper.EtapeTreeItem): - panel = PROCPanel - -import Accas -treeitem = ProcEtapeTreeItem -objet = Accas.PROC_ETAPE - diff --git a/InterfaceTK/composimp.py b/InterfaceTK/composimp.py deleted file mode 100644 index e9df810b..00000000 --- a/InterfaceTK/composimp.py +++ /dev/null @@ -1,651 +0,0 @@ -# -*- 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 -import string,types,os -from Tkinter import * -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import panels -import images -from widgets import ListeChoix -from widgets import FenetreDeSelection - -from Noyau.N_CR import justify_text -from Editeur.utils import substract_list - - -class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): - from newsimppanel import newSIMPPanel - panel = newSIMPPanel - - def init(self) : - self.expandable = 0 - self.affect_panel() - - - def affect_panel(self): - """ - Cette méthode attribue le panel à l'objet pointé par self en fonction de la - nature de la valeur demandée pour cet objet - """ - from uniquepanel import UNIQUE_Panel - from plusieurspanel import PLUSIEURS_Panel - - #print "affect_panel : ",self.nom,self.is_list(),self.has_into() - # Attention l ordre des if est important - - if self.wait_shell(): - # l'objet attend un shell - from shellpanel import SHELLPanel - self.panel = SHELLPanel - elif self.has_into(): - # l'objet prend sa (ses) valeur(s) dans un ensemble discret de valeurs - if self.is_list() : - from plusieursintopanel import PLUSIEURS_INTO_Panel - self.panel = PLUSIEURS_INTO_Panel - else: - from uniqueintopanel import UNIQUE_INTO_Panel - self.panel = UNIQUE_INTO_Panel - else: - # l'objet prend une ou des valeurs à priori quelconques - if self.is_list() : - # on attend une liste de valeurs mais de quel type ? - if self.wait_assd(): - # on attend une liste de SD - from plusieursassdpanel import PLUSIEURS_ASSD_Panel - self.panel = PLUSIEURS_ASSD_Panel - else: - # on attend une liste de valeurs de types debase (entiers, réels,...) - #from plusieursbasepanel import PLUSIEURS_BASE_OR_UNELISTE_Panel - #self.panel = PLUSIEURS_BASE_OR_UNELISTE_Panel - from plusieursbasepanel import PLUSIEURS_BASE_Panel - self.panel = PLUSIEURS_BASE_Panel - else: - # on n'attend qu'une seule valeur mais de quel type ? - if self.wait_co(): - # on attend une SD ou un objet de la classe CO (qui n'existe pas encore) - from uniquesdcopanel import UNIQUE_SDCO_Panel - self.panel = UNIQUE_SDCO_Panel - elif self.wait_assd(): - # on attend une SD - from uniqueassdpanel import UNIQUE_ASSD_Panel - from uniqueassdpanel import UNIQUE_ASSD_Panel_Reel - if 'R' in self.GetType(): - self.panel = UNIQUE_ASSD_Panel_Reel - else : - self.panel = UNIQUE_ASSD_Panel - else: - # on attend une valeur d'un type de base (entier,réel,...) - if self.wait_complex(): - # on attend un complexe - from uniquecomppanel import UNIQUE_COMP_Panel - self.panel = UNIQUE_COMP_Panel - else: - # on attend un entier, un réel ou une string - from uniquebasepanel import UNIQUE_BASE_Panel - self.panel = UNIQUE_BASE_Panel - # cas particulier des fonctions - genea = self.get_genealogie() - if "VALE" in genea or "VALE_C" in genea: - if "DEFI_FONCTION" in genea : - from fonctionpanel import FONCTION_Panel - self.panel=FONCTION_Panel - #--------------------------------------------------------- - # PN ajout pour lancement de Salome - #--------------------------------------------------------- - if 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": - if "GROUP_NO" in genea[len(genea)-1] or "GROUP_MA" in genea[len(genea)-1]: - self.select_noeud_maille=1 - - recherche=panelsSalome.dict_classes_salome[self.panel] - if hasattr(recherche,self.clef_fonction): - self.panel=recherche - if self.select_noeud_maille==1 : - self.panel=recherche - - - #----------------------------------------------- - # - # Methodes liees aux informations sur le Panel - # ou au mot-clef simple - # - #----------------------------------------------- - # is_list - # get_into a priori inutile --> commentee - # has_into - # wait_into a priori inutile --> commentee - # GetMinMax - # GetMultiplicite - # GetIntervalle - # GetListeValeurs - # get_liste_possible - - def is_list(self): - """ - Cette méthode indique si le mot cle simple attend une liste (valeur de retour 1) - ou s'il n'en attend pas (valeur de retour 0) - - Deux cas principaux peuvent se presenter : avec validateurs ou bien sans. - Dans le cas sans validateur, l'information est donnée par l'attribut max - de la definition du mot cle. - Dans le cas avec validateur, il faut combiner l'information précédente avec - celle issue de l'appel de la méthode is_list sur le validateur.On utilisera - l'operateur ET pour effectuer cette combinaison (AndVal). - """ - is_a_list=0 - min,max = self.GetMinMax() - assert (min <= max) - if max > 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 - # on retournera 0 (n'attend pas de liste) - if self.definition.validators : - is_a_list= self.definition.validators.is_list() * is_a_list - return is_a_list - - #def get_into(self,liste_courante=None): - # """ - # Cette méthode retourne la liste de choix proposée par le mot cle. Si le mot cle ne propose - # pas de liste de choix, la méthode retourne None. - # L'argument d'entrée liste_courante, s'il est différent de None, donne la liste des choix déjà - # effectués par l'utilisateur. Dans ce cas, la méthode get_into doit calculer la liste des choix - # en en tenant compte. - # Cette méthode part du principe que la relation entre into du mot clé et les validateurs est - # une relation de type ET (AndVal). - # """ - # if not self.object.definition.validators : - # return self.object.definition.into - # else: - # return self.object.definition.validators.get_into(liste_courante,self.definition.into) - - def has_into(self): - """ - Cette méthode indique si le mot cle simple propose un choix (valeur de retour 1) - ou s'il n'en propose pas (valeur de retour 0) - - 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é - 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 - elif self.definition.validators : - has_an_into= self.definition.validators.has_into() - return has_an_into - -# def wait_into(self): -# """ Méthode booléenne qui retourne 1 si l'objet pointé par self -# prend ses valeurs dans un ensemble discret (into), 0 sinon """ -# if self.object.definition.into != None : -# return 1 -# else: -# return 0 - - def GetMinMax(self): - """ Retourne les valeurs min et max de la définition de object """ - return self.object.get_min_max() - - def GetMultiplicite(self): - """ A préciser. - Retourne la multiplicité des valeurs affectées à l'objet - représenté par l'item. Pour le moment retourne invariablement 1. - """ - return 1 - - def GetIntervalle(self): - """ - Retourne le domaine de valeur attendu par l'objet représenté - par l'item. - """ - return self.object.getintervalle() - - def GetListeValeurs(self) : - """ Retourne la liste des valeurs de object """ - valeurs=self.object.get_liste_valeurs() - try : - if "R" in self.object.definition.type: - clef=self.object.GetNomConcept() - if self.appli.dict_reels.has_key(clef): - if type(valeurs) == types.TupleType: - valeurs_reelles=[] - for val in valeurs : - if self.appli.dict_reels[clef].has_key(val) : - valeurs_reelles.append(self.appli.dict_reels[clef][val]) - else : - valeurs_reelles.append(val) - else : - if self.appli.dict_reels[clef].has_key(valeurs): - valeurs_reelles=self.appli.dict_reels[clef][valeurs] - valeurs=valeurs_reelles - except : - pass - return valeurs - - def get_liste_possible(self,listeActuelle=[]): - if hasattr(self.definition.validators,'into'): - 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 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) - 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)) - return liste_param - - #-------------------------------------------------- - # - # Methodes liees a la validite des valeurs saisies - # - #--------------------------------------------------- - # valide_item - # valide_liste_partielle - # valide_liste_complete - # info_erreur_item - # info_erreur_liste - # IsInIntervalle - # isvalid - - def valide_item(self,item): - """ - La validation est réalisée directement par l'objet - """ - return self.object.valide_item(item) - - def valide_liste_partielle(self,item,listecourante): - #On protege la liste en entree en la copiant - valeur=listecourante[:] - valeur.append(item) - 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 : - commentaire=self.definition.validators.info_erreur_item() - return commentaire - - def aide(self) : - commentaire="" - if self.definition.validators : - commentaire=self.definition.validators.aide() - return commentaire - - def info_erreur_liste(self) : - commentaire="" - if self.definition.validators : - commentaire=self.definition.validators.info_erreur_liste() - return commentaire - - def IsInIntervalle(self,valeur): - """ - Retourne 1 si la valeur est dans l'intervalle permis par - l'objet représenté par l'item. - """ - return self.valide_item(valeur) - - def isvalid(self): - valide=self.object.isvalid() - return valide - - #-------------------------------------------------- - # - # Autres ... - # - #--------------------------------------------------- - # 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 - # delete_valeur_co - - #def SetText(self, text): - # try: - # value = eval(text) - # self.object.setval(value) - # except: - # pass - - def GetIconName(self): - if self.isvalid(): - return "ast-green-ball" - elif self.object.isoblig(): - return "ast-red-ball" - else: - return "ast-yel-ball" - - def GetText(self): - """ - Classe SIMPTreeItem - Retourne le texte à afficher dans l'arbre représentant la valeur de l'objet - pointé par self - """ - text= self.object.GetText() - return text - - #def getval(self): - # return self.object.getval() - - def set_valeur_co(self,nom_co): - """ - Affecte au MCS pointé par self l'objet de type CO et de nom nom_co - """ - ret = self.object.set_valeur_co(nom_co) - #print "set_valeur_co",ret - return ret - - def get_sd_avant_du_bon_type(self): - """ - Retourne la liste des noms des SD présentes avant l'étape qui contient - le MCS pointé par self et du type requis par ce MCS - """ - a=self.object.etape.parent.get_sd_avant_du_bon_type(self.object.etape,self.object.definition.type) - return a - - def get_sd_avant_du_bon_type_pour_type_de_base(self): - a=self.object.jdc.get_sd_avant_du_bon_type_pour_type_de_base(self.object.etape,"LASSD") - return a - - - - #def verif(self): - # pass - - def delete_valeur_co(self,valeur=None): - """ - Supprime la valeur du mot cle (de type CO) - il faut propager la destruction aux autres etapes - """ - if not valeur : valeur=self.object.valeur - # XXX faut il vraiment appeler del_sdprod ??? - #self.object.etape.parent.del_sdprod(valeur) - self.object.etape.parent.delete_concept(valeur) - - #----------------------------------------------- - # - # Methodes liees au type de l objet attendu - # - #----------------------------------------------- - # wait_co - # wait_geom - # wait_complex - # wait_reel - # wait_shell - # wait_assd - # GetType - - def wait_co(self): - """ - Méthode booléenne qui retourne 1 si l'objet pointé par self - attend un objet de type ASSD qui n'existe pas encore (type CO()), - 0 sinon - """ - return self.object.wait_co() - - def wait_geom(self): - """ - Méthode booléenne qui retourne 1 si l'objet pointé par self - attend un objet GEOM, 0 sinon - """ - return self.object.wait_geom() - - def wait_complex(self): - """ Méthode booléenne qui retourne 1 si l'objet pointé par self - attend un complexe, 0 sinon """ - if 'C' in self.object.definition.type: - return 1 - else: - return 0 - - def wait_reel(self): - """ Méthode booléenne qui retourne 1 si l'objet pointé par self - attend un réel, 0 sinon """ - if 'R' in self.object.definition.type: - return 1 - else: - return 0 - - def wait_shell(self): - """ Méthode booléenne qui retourne 1 si l'objet pointé par self - attend un shell, 0 sinon """ - if 'shell' in self.object.definition.type: - return 1 - else: - return 0 - - def wait_assd(self): - """Méthode booléenne qui retourne 1 si l'objet pointé par self - attend un objet de type ASSD ou dérivé, 0 sinon """ - return self.object.wait_assd() - - def wait_assd_or_type_base(self) : - boo=0 - if len(self.object.definition.type) > 1 : - if self.wait_reel() : - boo = 1 - if 'I' in self.object.definition.type : - boo = 1 - return boo - - - def GetType(self): - """ - Retourne le type de valeur attendu par l'objet représenté par l'item. - """ - return self.object.get_type() - - #----------------------------------------------------- - # - # Methodes liees a l evaluation de la valeur saisie - # - #----------------------------------------------------- - # eval_valeur - # eval_valeur_item - # is_CO - # 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,...) - - retourne 'valeur' (chaîne de caractères) sinon - - retourne None en cas d invalidite - - retourne invalide si 1 des objets du tuple l est - """ - validite=1 - if type(valeur) in (types.ListType,types.TupleType) : - valeurretour=[] - for item in valeur : - newvaleur,validiteitem=self.eval_valeur_item(item) - valeurretour.append(newvaleur) - if validiteitem == 0: - validite=0 - else : - valeurretour,validite= self.eval_valeur_item(valeur) - if validite == 0 : - 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 - 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 - validite=1 - if self.wait_reel(): - valeurinter = self.traite_reel(valeur) - if valeurinter != None : - valeurretour,validite= self.object.eval_valeur(valeurinter) - else: - valeurretour,validite= self.object.eval_valeur(valeur) - elif self.wait_geom(): - valeurretour,validite = valeur,1 - else : - valeurretour,validite= self.object.eval_valeur(valeur) - #print "eval_valeur_item",valeurretour,validite - - if validite == 0: - if type(valeur) == types.StringType and self.object.wait_TXM(): - essai_valeur="'" + valeur + "'" - valeurretour,validite= self.object.eval_valeur(essai_valeur) - - if hasattr(valeurretour,'__class__'): - #if valeurretour.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'): - if valeurretour.__class__.__name__ in ('PARAMETRE',): - validite=1 - - #if self.wait_co(): - # CCAR : il ne faut pas essayer de creer un concept - # il faut simplement en chercher un existant ce qui a du etre fait par self.object.eval_valeur(valeur) - #try: - #valeurretour=Accas.CO(valeur) - #except: - #valeurretour=None - #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: - valeurretour=str(valeur) - validite=1 - return valeurretour,validite - - def is_CO(self,valeur=None): - """ - Indique si valeur est un concept produit de la macro - Cette méthode n'a de sens que pour un MCSIMP d'une MACRO - Si valeur vaut None on teste la valeur du mot cle - """ - # Pour savoir si un concept est un nouveau concept de macro - # on regarde s'il est présent dans l'attribut sdprods de l'étape - # ou si son nom de classe est CO. - # Il faut faire les 2 tests car une macro non valide peut etre - # dans un etat pas tres catholique avec des CO pas encore types - # et donc pas dans sdprods (resultat d'une exception dans type_sdprod) - if not valeur:valeur=self.object.valeur - if valeur in self.object.etape.sdprods:return 1 - if type(valeur) is not types.InstanceType:return 0 - if valeur.__class__.__name__ == 'CO':return 1 - return 0 - - def is_param(self,valeur) : - for param in self.jdc.params: - if (repr(param) == valeur): - return 1 - return 0 - - def traite_reel(self,valeur): - """ - Cette fonction a pour but de rajouter le '.' en fin de chaîne pour un réel - ou de détecter si on fait référence à un concept produit par DEFI_VALEUR - ou un EVAL ... - """ - valeur = string.strip(valeur) - liste_reels = self.get_sd_avant_du_bon_type() - if valeur in liste_reels: - return valeur - if len(valeur) >= 3 : - if valeur[0:4] == 'EVAL' : - # on a trouvé un EVAL --> on retourne directement la valeur - return valeur - if string.find(valeur,'.') == -1 : - # aucun '.' n'a été trouvé dans valeur --> on en rajoute un à la fin - if (self.is_param(valeur)): - return valeur - else: - if string.find(valeur,'e') != -1: - # Notation scientifique ? - try : - r=eval(valeur) - return valeur - except : - return None - else : - return valeur+'.' - else: - return valeur - - -import Accas -treeitem = SIMPTreeItem -objet = Accas.MCSIMP - diff --git a/InterfaceTK/definition_cata.py b/InterfaceTK/definition_cata.py deleted file mode 100644 index 156ea489..00000000 --- a/InterfaceTK/definition_cata.py +++ /dev/null @@ -1,462 +0,0 @@ -# -*- 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 -import types - -# Modules Eficas -import Accas -from Noyau.N_CR import CR - -class CATALOGUE: - def __init__(self,modules_cata): - self.modules_cata = modules_cata # tuple de modules... - self.cr = CR() - self.state='undetermined' - self.entites_attributs = {} - self.entites_fils = [] - self.build_entites_attributs() - self.build_entites_fils() - - def build_entites_attributs(self): - pass - - def build_entites_fils(self): - niv_types = Accas.NIVEAU(nom="types",label="Liste des types") - niv_commandes = Accas.NIVEAU(nom="commandes",label="Liste des commandes") - self.entites_fils.append(make_commande_cata(niv_types,self)) - self.entites_fils.append(make_commande_cata(niv_commandes,self)) - for module_cata in self.modules_cata: - for e in dir(module_cata): - obj = getattr(module_cata,e) - if isCMD(obj): - self.entites_fils[1].register(make_commande_cata(obj,self.entites_fils[1])) - elif type(obj) == types.ClassType: - if issubclass(obj,Accas.ASSD): - self.entites_fils[0].register(TYPE_CATA(obj)) - - def init_modif(self): - self.state = 'modified' - - def report(self): - """ Classe CATALOGUE - Methode pour generation d un rapport de validite - """ - self.cr.purge() - self.cr.debut="DEBUT CR validation : " - self.cr.fin="FIN CR validation :" - self.state = 'modified' - self.isvalid(cr='oui') - for fils in self.entites_fils[1].entites : - self.cr.add(fils.report()) - return self.cr - - def isvalid(self,cr='non'): - if self.state != 'unchanged': - valid=1 - for fils in self.entites_fils[1].entites_fils: - if not fils.isvalid(): - valid=0 - break - self.valid = valid - self.state='unchanged' - return self.valid - -def make_commande_cata(objet,pere): - if isinstance(objet,Accas.OPER): - return OPER_CATA(objet,pere,objet.nom) - elif isinstance(objet,Accas.PROC): - return PROC_CATA(objet,pere,objet.nom) - elif isinstance(objet,Accas.MACRO): - return MACRO_CATA(objet,pere,objet.nom) - elif isinstance(objet,Accas.FORM): - return MACRO_CATA(objet,pere,objet.nom) - elif isinstance(objet,Accas.NIVEAU): - return NIVEAU_CATA(objet,pere,objet.nom) - else: - print "Erreur dans make_commande_cata : on cherche à évaluer un objet non référencé ",objet - -def make_mc_cata(objet,pere,nom=''): - if isinstance(objet,Accas.BLOC): - return BLOC_CATA(objet,pere,nom) - elif isinstance(objet,Accas.FACT): - return FACT_CATA(objet,pere,nom) - elif isinstance(objet,Accas.SIMP): - return SIMP_CATA(objet,pere,nom) - else: - print "Erreur dans make_mc_cata : on cherche à évaluer un objet non référencé ",objet - -class TYPE_CATA: - def __init__(self,objet): - self.objet = objet - self.nom = objet.__name__ - - def isvalid(self,cr='non'): - return 1 - - def get_valeur_attribut(self,nom_attr): - if nom_attr == 'nom':return self.nom - return None - -class OBJET_CATA: - attributs=[] - attributs_defauts={} - def __init__(self,objet,pere,nom): - self.objet = objet - self.nom = nom - self.pere = pere - self.cr = CR() - self.state='undetermined' - self.entites_fils = [] - self.entites_attributs = {} - self.build_entites_attributs() - self.build_entites_fils() - - def __str__(self): - s='' - s=self.__class__.__name__+' : '+self.nom - return s - - def build_entites_attributs(self): - for attribut in self.attributs: - if hasattr(self.objet,attribut): - self.entites_attributs[attribut]=ATTR_CATA(attribut,getattr(self.objet,attribut)) - else: - if self.attributs_defauts.has_key(attribut): - self.entites_attributs[attribut]=ATTR_CATA(attribut,self.attributs_defauts[attribut]) - else: - self.entites_attributs[attribut]=ATTR_CATA(attribut,None) - - def build_entites_fils(self): - for k,v in self.objet.entites.items(): - self.entites_fils.append(make_mc_cata(v,self,nom=k)) - - def get_valeur_attribut(self,nom_attr): - if nom_attr in self.entites_attributs.keys(): - return self.entites_attributs[nom_attr].valeur - elif nom_attr in self.attributs_defauts.keys(): - return self.attributs_defauts[nom_attr] - elif nom_attr == 'domaine_validité': - if self.entites_attributs['into'].valeur != None : - return 'discret' - else: - return 'continu' - - def isvalid(self,cr='non'): - if self.state =='unchanged': - return self.valid - else: - valid = 1 - if hasattr(self,'valid'): - old_valid = self.valid - else: - old_valid = None - # on teste self lui-meme - if self.nom == '' or self.nom == None : valid=0 - # on teste les attributs - for attribut in self.entites_attributs.values(): - if not attribut.isvalid() : valid =0 - break - # on teste les fils - for fils in self.entites_fils: - if not fils.isvalid(): valid = 0 - break - self.valid = valid - self.state = 'unchanged' - if old_valid: - if old_valid != self.valid : self.init_modif_up() - return self.valid - - def init_modif_up(self): - self.pere.state='modified' - - def report(self): - self.cr.purge() - self.cr.debut="Debut "+self.__class__.__name__+' : '+self.nom - self.cr.fin = "Fin "+self.__class__.__name__+' : '+self.nom - self.isvalid(cr='oui') - for attribut in self.entites_attributs.values(): - self.cr.add(attribut.report()) - for fils in self.entites_fils : - self.cr.add(fils.report()) - return self.cr - - def set_valeur_attribut(self,nom_attr,valeur): - """ - Affecte la valeur 'valeur' à l'attribut de nom 'nom-attr' - """ - # il faudra être prudent sur les changements de nom : interdire de changer - # le nom d'un mot-clé qui serait utilisé dans une règle ??? - self.entites_attributs[nom_attr].valeur = valeur - - def addentite(self,name,pos): - """ - Permet d'ajouter un nouveau fils a self - """ - self.init_modif() - if name == 'new_simp': - objet = Accas.SIMP(typ=('bidon',)) - objet_cata = make_mc_cata(objet,self) - self.entites_fils.insert(pos,objet_cata) - return objet_cata - - def init_modif(self): - self.state = 'modified' - if hasattr(self,'pere'): - self.pere.init_modif() - - def verif_nom(self,cr='non'): - """ - Méthode appelée par EFICAS et ACCAS - Booléenne : retourne 1 si l'attribut nom est valide, 0 sinon - """ - if self.entites_attributs['nom'].valeur == '': - if cr == 'oui' : self.cr.fatal("L'objet de type %s n'est pas nommé" %self.__class__.__name__) - return 0 - return 1 - - def verif_defaut(self,cr='non'): - """ - Méthode de vérification de validité du défaut - """ - defaut = self.get_valeur_attribut('defaut') - if self.get_valeur_attribut('domaine_validite') == 'discret' : - if defaut not in self.get_valeur_attribut('into'): - if cr == 'oui' : self.cr.fatal("La valeur %s n'est pas autorisée" %str(defaut)) - return 0 - return 1 - else: - if defaut == None : return 1 - typ = self.get_valeur_attribut('type') - # on attend un TXM ? - if 'TXM' in typ : - if type(defaut) == types.StringType : return 1 - val_min = self.get_valeur_attribut('val_min') - val_max = self.get_valeur_attribut('val_max') - # on attend un reel ? - if 'R' in typ : - if type(defaut) == types.StringType: - try : - nb = string.atof(defaut) - except: - nb=None - else: - nb = defaut - if nb != None : - test = 1 - if val_min != '**' : test = (nb >= val_min) - if val_max != '**' : test = test*(nb <= val_max) - if test : return 1 - # on attend un entier ? - if 'I' in typ : - if type(defaut)==types.StringType: - try: - nb = string.atoi(defaut) - except: - pass - else: - nb = defaut - if nb != None : - test = 1 - if val_min != '**' : test = (nb >= val_min) - if val_max != '**' : test = test*(nb <= val_max) - if test : return 1 - # si on passe par là, c'est que l'on n'a pas su évaluer defaut - if cr == 'oui' : self.cr.fatal("La valeur %s n'est pas une valeur permise" %str(defaut)) - return 0 - - def verif_val_min(self,cr='non'): - """ - Méthode de vérification de val_min. - Booléenne : retourne 1 si val_min est valide, 0 sinon - """ - val_min = self.get_valeur_attribut('val_min') - if not val_min : - if cr == 'oui' : self.cr.fatal('val_min ne peut valoir None') - return 0 - if val_min == '**': return 1 - # val_min doit à ce stade être : - # - soit un entier ou un réel - # - soit une chaîne de caractères représentant un entier ou un réel (provient d'EFICAS) - if type(val_min) == types.StringType : - try : - val_min = string.atoi(val_min) - except: - try: - val_min = string.atof(val_min) - except: - if cr == 'oui' : self.cr.fatal("%s n'est ni un entier ni un réel" %str(val_min)) - return 0 - # A ce stade, val_min doit être un entier ou un réel : on vérifie ... - if type(val_min) not in (types.IntType,types.FloatType) : - if cr == 'oui' : self.cr.fatal("%s n'est pas d'un type autorisé" %str(val_min)) - return 0 - # A ce stade valeur est un entier ou un réel : on peut comparer à val_max - val_max = self.get_valeur_attribut('val_max') - if val_max == '**' or val_min < val_max : return 1 - # erreur : val_min est supérieur à val_max !!! - if cr == 'oui' : self.cr.fatal("%s n'est pas inférieur à %s" %(str(val_min),str(val_max))) - return 0 - - def verif_val_max(self,cr='non'): - """ - Méthode de vérification de val_max. - Booléenne : retourne 1 si val_max est valide, 0 sinon - """ - val_max = self.get_valeur_attribut('val_max') - if not val_max : - if cr == 'oui' : self.cr.fatal('val_max ne peut valoir None') - return 0 - if val_max == '**': return 1 - # val_max doit à ce stade être : - # - soit un entier ou un réel - # - soit une chaîne de caractères représentant un entier ou un réel (provient d'EFICAS) - if type(val_max) == types.StringType : - try : - val_max = string.atoi(val_max) - except: - try: - val_max = string.atof(val_max) - except: - if cr == 'oui' : self.cr.fatal("%s n'est ni un entier ni un réel" %str(val_max)) - return 0 - # A ce stade, val_max doit être un entier ou un réel : on vérifie ... - if type(val_max) not in (types.IntType,types.FloatType) : - if cr == 'oui' : self.cr.fatal("%s n'est pas d'un type autorisé" %str(val_max)) - return 0 - # A ce stade valeur est un entier ou un réel : on peut comparer à val_max - val_min = self.get_valeur_attribut('val_min') - if val_min == '**' or val_min < val_max : return 1 - # erreur : val_min est supérieur à val_max !!! - if cr == 'oui' : self.cr.fatal("%s n'est pas supérieur à %s" %(str(val_max),str(val_min))) - return 0 - -class OPER_CATA(OBJET_CATA): - attributs = ['ang','docu','fr','niveau','nom','op','op_init','reentrant','regles','repetable','sd_prod'] - -class PROC_CATA(OBJET_CATA): - attributs = ['ang','docu','fr','niveau','nom','op','op_init','regles','repetable'] - -class MACRO_CATA(OBJET_CATA): - attributs = ['ang','docu','fr','niveau','nom','op','op_init','reentrant','regles','repetable','sd_prod'] - -class BLOC_CATA(OBJET_CATA): - attributs = ['ang','condition','docu','fr','nom','regles'] - -class FACT_CATA(OBJET_CATA): - attributs=['ang','defaut','docu','fr','max','min','nom','regles','statut'] - -class SIMP_CATA(OBJET_CATA): - attributs=['ang','defaut','docu','fr','homo','into','max','min','nom','position','statut','type','val_min','val_max'] - attributs_defauts={'ang':'','defaut':None,'fr':'','homo':1,'into':None,'max':1,'min':1,'nom' : '','position':'local', - 'regles':None,'statut':'f','type':None,'val_min':'**','val_max':'**','docu':''} - - def build_entites_fils(self): - pass - - def isvalid(self,cr='non'): - """ - Mde appelpar l'externe (EFICAS et ACCAS). - Boolne : retourne 1 si l'objet est valide, 0 sinon - """ - if self.state == 'unchanged': - return self.valid - else: - valid = 1 - valid = valid*self.verif_nom(cr=cr) - valid = valid*self.verif_defaut(cr=cr) - valid = valid*self.verif_val_min(cr=cr)*self.verif_val_max(cr=cr) - if hasattr(self,'valid'): - old_valid = self.valid - else: - old_valid = None - self.valid = valid - self.state='unchanged' - if old_valid : - if old_valid != self.valid : self.init_modif_up() - return self.valid - -class NIVEAU_CATA(OBJET_CATA): - def __init__(self,objet,pere,nom): - self.pere = pere - self.nom = nom - self.state = 'undetermined' - self.cr = CR() - self.objet = objet - self.entites_fils=[] - self.entites_attributs = {} - - def register(self,fils): - """ - Enregistre la commande 굡pe : - - si editmode = 0 : on est en mode relecture d'un fichier de commandes - auquel cas on ajoute etape ࡬a fin de la liste self.etapes - - si editmode = 1 : on est en mode ajout d'굡pe depuis eficas auquel cas - cette mode ne fait rien, c'est addentité enregistre etape ࡬a bonne place - dans self.etapes - """ - self.entites_fils.append(fils) - - def unregister(self,etape): - self.entites_fils.remove(etape) - - def isvalid(self,cr='non'): - """ Mode boolne qui retourne 0 si le niveau est invalide, 1 sinon """ - if self.state == 'unchanged': - return self.valid - else: - valid = 1 - if len(self.entites_fils) == 0: - #valid = self.Accas.valide_vide - valid = 1 - else: - for commande in self.entites_fils : - if hasattr(commande,'isvalid'): - if not commande.isvalid() : - valid = 0 - break - else: - print str(commande)," n'a pas de methode isvalid" - if hasattr(self,'valid'): - old_valid = self.valid - else: - old_valid = None - self.valid = valid - self.state='unchanged' - if old_valid: - if old_valid != self.valid : self.init_modif_up() - return self.valid - - -class ATTR_CATA(OBJET_CATA): - def __init__(self,nom,valeur=None): - self.nom = nom - self.valeur = valeur - self.cr = CR() - self.state='undetermined' - self.entites_attributs={} - self.entites_fils=() - - def isvalid(self,cr='non'): - return 1 - -def isCMD(cmd): - return isinstance(cmd,Accas.OPER) or isinstance(cmd,Accas.PROC) or isinstance(cmd,Accas.MACRO) or isinstance(cmd,Accas.FORM) - diff --git a/InterfaceTK/eficas.py b/InterfaceTK/eficas.py deleted file mode 100644 index 7a2b8417..00000000 --- a/InterfaceTK/eficas.py +++ /dev/null @@ -1,146 +0,0 @@ -# -*- 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 EFICAS qui est l'application - proprement dite. Elle est dérivée de la classe APPLI -""" -# Modules Python -import string -from Tkinter import Label -import Pmw -import traceback - -# Modules Eficas -from widgets import showerror -from widgets import askopenfilename -import patches -import appli -from widgets import Fenetre - -class EFICAS(appli.APPLI): - - try: - import prefs - name='prefs_'+prefs.code - prefsCode=__import__(name) - from prefsCode import appli_composants - except: - appli_composants=['readercata','bureau','browser','options'] - - def get_texte_infos(self): - texte=appli.APPLI.get_texte_infos(self) - texte = texte + 'Catalogue utilisé : %s\n' % self.bureau.fic_cata - return texte - - def exitEFICAS(self): - self.bureau.exitEFICAS() - - def getBureau(self): - return self.bureau - - def browse(self,result): - if result == 'Browse': - self.ulfile = askopenfilename(parent=self.dialog.component('hull'),title="Choix fichier :") - self._ulfile.setentry(self.ulfile) - elif result == 'OK': - self.ulfile = self._ulfile.get() - # On utilise le convertisseur défini par format_fichier - source=self.get_source(self.ulfile) - if source: - # On a réussi à convertir le fichier self.ulfile - self.dialog.deactivate(result) - self.text=source - else: - # Une erreur a été rencontrée - self.text='' - elif result == 'Cancel': - self._ulfile.setentry('') - self.dialog.deactivate(result) - self.ulfile = None - self.text="" - - def get_file(self,unite=None,fic_origine = ''): - """ - Retourne le nom du fichier correspondant a l unite logique unite (entier) - """ - if unite : - titre = "Choix unite %d " %unite - else: - titre = "Choix d'un fichier de poursuite" - self.dialog=Pmw.Dialog(self.top, - title = titre, - buttons = ('OK', 'Browse','Cancel'), - defaultbutton='OK', - command=self.browse, - ) - self.dialog.withdraw() - if unite : - texte = "Le fichier %s contient une commande INCLUDE \n" % fic_origine - texte = texte+'Donnez le nom du fichier correspondant\n à l unité logique %d' % unite - else: - texte="Le fichier %s contient une commande %s\n" %(fic_origine,'POURSUITE') - texte = texte+'Donnez le nom du fichier dont vous \n voulez faire une poursuite' - if self.test == 1: raise Exception("Erreur: "+texte) - w = Label(self.dialog.interior(), - text = texte) - w.pack(padx = 10, pady = 10) - if unite != None : - labeltexte = 'Fichier pour unite %d :' % unite - else: - labeltexte = 'Fichier à poursuivre :' - self._ulfile=Pmw.EntryField(self.dialog.interior(), - labelpos = 'w', - label_text = labeltexte, - ) - self._ulfile.pack(fill='x', expand=1, padx=10, pady=5) - self._ulfile.component('entry').focus_set() - self.dialog.activate(geometry='centerscreenalways') - return self.ulfile,self.text - - def get_source(self,file): - import convert - format=self.format_fichier.get() - # Il faut convertir le contenu du fichier en fonction du format - if convert.plugins.has_key(format): - # Le convertisseur existe on l'utilise - p=convert.plugins[format]() - p.readfile(file) - text=p.convert('execnoparseur') - if not p.cr.estvide(): - self.affiche_infos("Erreur à la conversion") - Fenetre(self, - titre="compte-rendu d'erreurs, EFICAS ne sait pas convertir ce fichier", - texte = str(p.cr)).wait() - return text - return text - else: - # Il n'existe pas c'est une erreur - self.affiche_infos("Type de fichier non reconnu") - showerror("Type de fichier non reconnu","EFICAS ne sait pas ouvrir ce type de fichier") - return None - - def affiche_texte(self,entete,texte): - """Cette methode ouvre une fenetre modale dans laquelle on affiche un texte - """ - self.affiche_infos(entete) - f=Fenetre(self, titre=entete, texte = texte) - f.wait() - diff --git a/InterfaceTK/eficas_go.py b/InterfaceTK/eficas_go.py deleted file mode 100644 index 0a3ef794..00000000 --- a/InterfaceTK/eficas_go.py +++ /dev/null @@ -1,65 +0,0 @@ -# -*- 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 permet de lancer l'application EFICAS en affichant - un ecran Splash pour faire patienter l'utilisateur -""" -# Modules Python -import sys -import Tkinter - -# Modules Eficas -import prefs -name='prefs_'+prefs.code -prefsCode=__import__(name) -if hasattr(prefsCode,'encoding'): - # Hack pour changer le codage par defaut des strings - import sys - reload(sys) - sys.setdefaultencoding(prefsCode.encoding) - del sys.setdefaultencoding - # Fin hack - -import styles -from Editeur import import_code -import splash -from Editeur import session - -def lance_eficas(code=None,fichier=None): - """ - Lance l'appli EFICAS - """ - # Analyse des arguments de la ligne de commande - if code !=None : prefs.code=code - if code !=None : - sys.argv.append("-k") - sys.argv.append(code) - options=session.parse(sys.argv) - code=options.code - - root = Tkinter.Tk() - splash.init_splash(root,code=code,titre="Lancement d'EFICAS pour %s" %code) - splash._splash.configure(text="Chargement d'EFICAS en cours.\n Veuillez patienter ...") - import eficas - eficas.EFICAS(root,code=code,ihm="TK") - - root.mainloop() - diff --git a/InterfaceTK/eficas_test.py b/InterfaceTK/eficas_test.py deleted file mode 100644 index 2a5230cf..00000000 --- a/InterfaceTK/eficas_test.py +++ /dev/null @@ -1,105 +0,0 @@ -# -*- 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 permet de lancer l'application EFICAS en affichant - un ecran Splash pour faire patentier l'utilisateur -""" -# Modules Python -import sys -import Tkinter - -# Modules Eficas -from Editeur import import_code -from Editeur import session - -def lance_eficas(code,fichier=None): - """ - Lance l'appli EFICAS - """ - options=session.parse(sys.argv) - root = Tkinter.Tk() - import eficas - if fichier : - a=eficas.EFICAS(root,code=code,fichier = fichier,test=1) - bureau=a.getBureau() - else: - eficas.EFICAS(root,code=code) - - print bureau.JDC.report() - bureau.closeJDC() - -def duplique_fichier(code,fichier=None,root=None): - print code - print fichier - if root == None : - root = Tkinter.Tk() - import eficas - import convert - import generator - import Editeur.utils - import string - - if fichier != None : - options=session.parse(sys.argv+[fichier]) - else : - options=session.parse(sys.argv) - - appli=eficas.EFICAS(root,code=code,fichier = fichier,test=1) - format='homard' - if convert.plugins.has_key(format): - p=convert.plugins[format]() - p.readfile(fichier) - text=p.convert('exec',appli) - print text - text2=convertir(text) - print text2 - cata=appli.readercata.cata - J=cata[0].JdC(procedure=text2,cata=cata) - J.analyse() - fileName=fichier+"_init" - if generator.plugins.has_key(format): - g=generator.plugins[format]() - jdc_formate=g.gener(J,format='beautifie') - jdc_fini = string.replace(jdc_formate,'\r\n','\n') - utils.save_in_file(fileName+".comm",jdc_fini,None) - -def convertir(texte): - import re - dict_change={"FICHIER_MED_MAILLAGE_N=":"FICHIER_MED_MAILLAGE_NP1","NOM_MED_MAILLAGE_N=":"NOM_MED_MAILLAGE_NP1"} - for mot in dict_change.keys(): - if( re.search(mot,texte)): - indicenouveau=re.search(mot,texte).end() - indicefinnouveau= texte.find(",",indicenouveau) - avant=dict_change[mot] - if( re.search(avant,texte)): - indiceancien=re.search(avant,texte).end()+1 - indicefinancien= texte.find(",",indiceancien) - valeur=texte[indiceancien:indicefinancien] - texte=texte[0:indicenouveau]+valeur+texte[indicefinnouveau:] - liste_mot_clef_None=['CRIT_RAFF_ABS','CRIT_RAFF_REL','CRIT_RAFF_PE','CRIT_DERA_ABS','CRIT_DERA_REL','CRIT_DERA_PE','NITER','NOM_MED_MAILLAGE_NP1','FICHIER_MED_MAILLAGE_NP1'] - - for mot in liste_mot_clef_None: - if( re.search(mot,texte)): - indice=re.search(mot,texte).end()+1 - indicefin= texte.find(",",indice) - texte=texte[0:indice]+"None"+texte[indicefin:] - return texte - diff --git a/InterfaceTK/faq.py b/InterfaceTK/faq.py deleted file mode 100644 index 5893f2f1..00000000 --- a/InterfaceTK/faq.py +++ /dev/null @@ -1,54 +0,0 @@ -# -*- 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 sert a afficher le texte du FAQ EFICAS - et à attendre l'acquittement par l'utilisateur -""" -# Modules Python -import os -import Pmw -from Tkinter import END - -# Modules Eficas -import prefs -name='prefs_'+prefs.code -prefsCode=__import__(name) -import fontes - -class FAQ: - def __init__(self,parent): - self.parent=parent - self.Dialog = Pmw.Dialog(parent, - buttons=('Lu',), - title="FAQs et limitations d'EFICAS", - command = self.lu_FAQ) - txt = open(os.path.join(prefsCode.INSTALLDIR,'Editeur','faqs.txt'),'r').read() - Texte = Pmw.ScrolledText(self.Dialog.interior(), - text_font=fontes.standard) - Texte.insert(END,txt) - Texte.pack(expand=1,fill='both') - self.Dialog.activate(geometry = 'centerscreenalways') - - def lu_FAQ(self,event=None): - self.Dialog.destroy() - -def affiche(parent): - FAQ(parent) diff --git a/InterfaceTK/fenetre_mc_inconnus.py b/InterfaceTK/fenetre_mc_inconnus.py deleted file mode 100644 index 35b118ac..00000000 --- a/InterfaceTK/fenetre_mc_inconnus.py +++ /dev/null @@ -1,223 +0,0 @@ -# -*- 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 * -import copy - -# Modules Eficas -from centerwindow import centerwindow - -class fenetre_mc_inconnus : - """ - Cette classe sert à construire la fenêtre qui apparaît dans EFICAS - lorsque des mots-clés inconnus ont été trouvés dans le fichier de - commandes que l'on est en train de lire - """ - def __init__(self,l_mc): - self.l_mc = l_mc - self.fenetre = Toplevel() - self.fenetre.withdraw() - self.fenetre.geometry("400x400+0+0") - self.fenetre.title("Mots-clés inconnus dans le fichier de commandes") - self.init() - self.init_frames() - self.init_label() - self.init_liste_mc() - self.init_boutons() - centerwindow(self.fenetre) - self.fenetre.deiconify() - - def init(self) : - """ - Initialise les structures de données - """ - self.new_l_mc = [] - for mc in self.l_mc : - self.new_l_mc.append(copy.copy(mc)) - self.mc_courant = None - self.var_quit = IntVar(0) - self.entry_courante = None - - def init_frames(self): - """ - Création des 2 frames devant contenir le label et la liste des MC inconnus - """ - self.frame1 = Frame(self.fenetre) - self.frame2 = Frame(self.fenetre) - self.frame3 = Frame(self.fenetre) - self.frame1.place(relx=0,rely=0,relheight=0.2,relwidth=1) - self.frame2.place(relx=0,rely=0.2,relheight=0.6,relwidth=1) - self.frame3.place(relx=0,rely=0.8,relheight=0.2,relwidth=1) - - def init_label(self): - """ - Affichage du label dans la zone concernée - """ - txt = " Un ou plusieurs mots-clés inconnus ont été trouvés dans le fichier de commandes." - #txt = txt + "En cliquant sur leur nom, vous pourrez soit corriger l'orthographe soit supprimer ce mot-clé" - self.fenetre.update_idletasks() - Label(self.frame1, - text = txt, - wraplength = int(self.frame1.winfo_width()*0.8), - justify = 'center').place(relx=0.5,rely=0.5,anchor='center') - - - def init_liste_mc(self): - """ - Affiche les mots-clés à modifier ou supprimer - """ - i=0 - self.widgets=[] - for mc in self.l_mc : - # mc est une liste : - # mc contient comme premiers arguments l'étape et éventuellement les blocs, mcfact ... - # et contient comme 2 derniers éléments le nom du mot-clé et sa valeur - path_mc = self.get_path(mc[0:-2]) - nom_mc = mc[-2] - lab=Label(self.frame2,text = path_mc) - lab.grid(row=i,column=1,sticky=W) - e = Entry(self.frame2) - e.grid(row=i,column=0,sticky=W) - e.insert(END,nom_mc) - #e.bind("",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') - - def wait_new_list(self): - """ - Cette méthode rend cette toplevel bloquante. - Dès que la variable var_quit est modifiée, on continue l'exécution de cette - méthode (et on quitte) - """ - self.fenetre.wait_variable(self.var_quit) - self.fenetre.destroy() - return self.new_l_mc - - def get_path(self,l_o): - """ - Construit la chaîne de caractère contenant le chemin d'accès complet du mot-clé - """ - txt = '' - for o in l_o : - txt = txt + o.nom+'/' - # on enlève le dernier slash en trop - txt = txt[0:-1] - return txt - - def select_mc(self,mc,entry): - """ - Enregistre le mot-clé passé en argument comme mot-clé courant - Active les boutons Modifier et Supprimer - """ - self.desactive_entry() - self.mc_courant = mc - self.entry_courante = entry - self.active_boutons() - self.active_entry() - - def modifie_mc(self): - """ - Modifie le nom du mot-clé en prenant la nouvelle valeur lue dans entry_courante - """ - new_nom_mc = self.entry_courante.get() - index = self.l_mc.index(self.mc_courant) - new_mc = self.new_l_mc[index] - new_mc[-2] = new_nom_mc - objet_pere = self.mc_courant[-3] - - self.desactive_boutons() - self.desactive_entry() - - def supprime_mc(self): - """ - Supprime le mot-clé courant de la liste - """ - index = self.l_mc.index(self.mc_courant) - self.new_l_mc[index] = None - e,lab=self.widgets[index] - e.grid_remove() - lab.grid_remove() - self.desactive_boutons() - self.desactive_entry() - - def desactive_boutons(self): - """ - Désactive les boutons Modifier et Supprimer - """ - self.b_mod.configure(state='disabled') - self.b_sup.configure(state='disabled') - - def active_boutons(self): - """ - Active les boutons Modifier et Supprimer - """ - self.b_mod.configure(state='normal') - self.b_sup.configure(state='normal') - - def desactive_entry(self): - """ - Désactive l'entry courante si elle existe - """ - if self.entry_courante : - self.entry_courante.configure(state='disabled',relief='flat') - - def active_entry(self): - """ - Active l'entry courante si elle existe - """ - if self.entry_courante : - self.entry_courante.configure(state='normal',relief='sunken') - - def quit(self): - """ - Permet de fermer la fenêtre - """ - self.var_quit.set(1) - -if __name__ == '__main__': - fenetre_mc_inconnus(('toto','titi')) diff --git a/InterfaceTK/fonctionpanel.py b/InterfaceTK/fonctionpanel.py deleted file mode 100644 index 07fc9ea7..00000000 --- a/InterfaceTK/fonctionpanel.py +++ /dev/null @@ -1,292 +0,0 @@ -# -*- 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 -import string,types,os -from Tkinter import * -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import panels -import images -from widgets import ListeChoix -from widgets import FenetreDeSelection -from widgets import askopenfilename -from widgets import showinfo - -from Noyau.N_CR import justify_text -from Editeur.utils import substract_list -from plusieursbasepanel import PLUSIEURS_BASE_Panel - - -class FONCTION_Panel(PLUSIEURS_BASE_Panel): - 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 - """ - genea=self.node.item.get_genealogie() - if "VALE" in genea: - self.nb_valeurs=2 - if "VALE_C" in genea: - 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() - objet_mc = self.node.item.get_definition() - aide = self.get_aide() - aide = justify_text(texte=aide) - min,max = self.node.item.GetMinMax() - l_valeurs = self.node.item.GetListeValeurs() - l2_valeurs=self.decoupeListeValeurs(l_valeurs) - - # création des frames globales - self.frame1 = Frame(page,relief='groove',bd=2) - self.frame2 = Frame(page) - self.frame1.place(relx=0.,rely=0.,relwidth=1.,relheight=0.85) - self.frame2.place(relx=0.,rely=0.85,relwidth=1,relheight=0.15) - self.frame_right = Frame(self.frame1) - self.frame_right.place(relx=0.35,rely=0.,relwidth=0.65,relheight=1.) - - # création des frames internes - self.frame_valeurs = Frame(self.frame1) - self.frame_valeurs.place(relx=0.02,rely=0.05,relwidth=0.35,relheight=0.95) - self.frame_boutons_fleches = Frame(self.frame_right) - self.frame_boutons_fleches.place(relx=0.,rely=0.2,relwidth=0.2,relheight=0.5) - self.frame_choix = Frame(self.frame_right) - self.frame_choix.place(relx=0.2,rely=0.2,relwidth=0.7,relheight=0.5) - self.frame_aide = Frame(self.frame_right) - self.frame_aide.place(relx=0.1,rely=0.7,relwidth=0.8,relheight=0.3) - self.frame_boutons = Frame(self.frame2) - self.frame_boutons.place(relx=0.35,rely=0.,relwidth=0.5,relheight=1.) - for fram in (self.frame1,self.frame2,self.frame_right,self.frame_valeurs, - self.frame_boutons_fleches,self.frame_choix,self.frame_aide,self.frame_boutons): - fram.bind("",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.afficheValeurListe)) - self.Liste_valeurs = ListeChoix(self,self.frame_valeurs,l2_valeurs,liste_commandes = liste_commandes_valeurs, - titre="Valeur(s) actuelle(s)") - - # Création de l'entry ou de la liste des SD - self.label = Label(self.frame_choix,text="Valeur :") - self.make_entry(frame = self.frame_choix,command = self.add_double_valeur_plusieurs_base) - self.label.place(relx=0.05,rely=0.5) - - # Création d'un bouton "Importer ..." sur le panel. - bouton_valeurs_fichier = Button(self.frame_choix, - text="Importer ...", - command=self.select_in_file) - bouton_valeurs_fichier.place(relx=0.28,rely=0.7,relwidth=0.6) - self.ajout_valeurs = None - - # boutons Ajouter et Supprimer - self.bouton_add = Button(self.frame_boutons_fleches, - image = images.get_image('arrow_left'), - command = self.add_double_valeur_plusieurs_base) - self.bouton_sup = Button(self.frame_boutons_fleches, - image = images.get_image('arrow_right'), - command = self.sup_valeur_sans_into) - 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)) - self.aide.place(relx=0.5,rely=0.5,anchor='center',relwidth=1) - self.Liste_valeurs.affiche_liste() - # boutons Accepter et Annuler - self.bouton_accepter = Button(self.frame_boutons, - text='Valider', - command = lambda s=self,m=min,M=max : s.accepte_modifs_valeur_recolle(m,M)) - self.bouton_annuler = Button(self.frame_boutons, - text = 'Annuler', - command = self.annule_modifs_valeur) - for but in (self.bouton_accepter,self.bouton_annuler): - but.pack(side='left',padx=4) - - - def afficheValeurListe(self,name): - self.display_valeur(name) - - def decoupeListeValeurs(self,liste): - #decoupe la liste des valeurs en n ( les x puis les y) - nb=self.nb_valeurs - l_valeurs=[] - if (len(liste)%nb != 0): - message="La cardinalité n'est pas correcte, la dernière valeur est ignorée" - showinfo("Problème",message) - for i in range(len(liste)/nb) : - if (nb==2): - t=(liste[i*nb], liste[i*nb+1]) - else: - t=(liste[i*nb], liste[i*nb+1], liste[i*nb+2]) - l_valeurs.append(t) - return l_valeurs - - - def accepte_modifs_valeur_recolle(self,min,max): - l_valeurs=[] - l1_valeurs = self.Liste_valeurs.get_liste() - for val in l1_valeurs : - for item in val : - l_valeurs.append(item) - self.accepte_modifs_valeur(min,max,l_valeurs) - - - def add_double_valeur_plusieurs_base(self): - # on verifie qu'il s agit bien d un tuple - # on enleve les parentheses eventuelles - #doublevaleur_entree,validite,commentaire=self.get_valeur_double() - doublevaleur_entree= self.entry.get() - try: - if doublevaleur_entree[0]=='(' : - 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] - saisie=(val1,val2) - if (self.nb_valeurs==3): - 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` - self.parent.appli.affiche_infos(commentaire) - return - - # et seulement d un tuple - try: - 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` - self.parent.appli.affiche_infos(commentaire) - self.parent.appli.affiche_infos(commentaire) - return - except : - # c est la le cas normal - 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 - - # 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) - 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 - # 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 - - # si une valeur est selectionnee on insere apres - # sinon on ajoute la valeur à la fin - if (self.Liste_valeurs.selection != None): - ligne=self.Liste_valeurs.cherche_selected_item() - if self.nb_valeurs==2: - l1_valeurs.insert(ligne,(valeur[0],valeur[1])) - else : - l1_valeurs.insert(ligne,(valeur[0],valeur[1],valeur[2])) - else : - if self.nb_valeurs==2: - l1_valeurs.append((valeur[0],valeur[1])) - else : - l1_valeurs.append((valeur[0],valeur[1],valeur[2])) - i = 0 - while i < self.nb_valeurs : - self.set_valeur_texte(saisie[i]) - i=i+1 - self.Liste_valeurs.put_liste(l1_valeurs) - self.Liste_valeurs.affiche_liste() - - - def display_valeur(self,val=None): - """ - Affiche la valeur passée en argument dans l'entry de saisie. - Par défaut affiche la valeur du mot-clé simple - Doit être redéfinie pour un pb avec les parametres dans un tuple - """ - if not val : - valeur = self.node.item.object.getval() - else: - valeur = val - if not valeur : return - - try: - affiche="(" - separe="" - for val in valeur: - affiche=affiche+separe+str(val) - separe="," - affiche=affiche+")" - self.entry.delete(0,END) - self.entry.insert(0,affiche) - except : - self.entry.delete(0,END) - -# Surcharge de select in file pour prendre en compte la saisie de tuple - def select_in_file(self): - """ Permet d'ouvrir un fichier choisi par l'utilisateur. """ - nom_fichier = askopenfilename(title="Choix fichier :") - - if not nom_fichier: - return - - try: - f = open(nom_fichier, "rb") - selection_texte = f.read() - f.close() - self.add_double_valeur_plusieurs_base = FenetreDeSelection(self, - self.node.item, - self.parent.appli, - titre="Sélection de valeurs", - texte=selection_texte, - cardinal = self.nb_valeurs) - except: - traceback.print_exc() - showinfo("Erreur de fichier","impossible d'ouvir le fichier "+nom_fichier) - diff --git a/InterfaceTK/fontes.py b/InterfaceTK/fontes.py deleted file mode 100644 index 8e158927..00000000 --- a/InterfaceTK/fontes.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== -standard = ("Times",10) -standard_italique = ("Times",10,'italic') -standard_gras = ("Times",10,'bold') -standard_gras_souligne = ("Times",10,'bold','underline') - -canvas = ('times',8) -canvas_italique = ('times',8,'italic') -canvas_gras = ("Times",8,'bold') -canvas_gras_italique = ("Times",10,'bold','italic') - -standard12 = ("Times",12) -standard12_gras = ("Times",12,'bold') -standard12_gras_italique = ( "times",12,'bold','italic') - -standardcourier10 = ("Courier",10) - diff --git a/InterfaceTK/images.py b/InterfaceTK/images.py deleted file mode 100644 index a63e422b..00000000 --- a/InterfaceTK/images.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- 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 joue le role de cache pour les images stockées - dans le repertoire ICONDIR -""" - -import os -import Tkinter - -if __name__ == '__main__': - # Programme de test - import sys - import images - root=Tkinter.Tk() - frame = Tkinter.Frame(root) - frame.pack(expand=1,fill='both') - - for name in ('About24','Save24'): - Tkinter.Label(frame, image=images.get_image(name)).pack(side=Tkinter.TOP) - - root.mainloop() - sys.exit() - -try: - import prefs - name='prefs_'+prefs.code - prefsCode=__import__(name) - ICONDIR=prefsCode.ICONDIR -except: - # Par defaut on utilise le repertoire local icons - ICONDIR=os.path.join(os.path.abspath(os.path.dirname(__file__)),'/Editeur/icons') - - -dico_images={} - -def get_image(name): - if dico_images.has_key(name): - return dico_images[name] - else : - fic_image = os.path.join(ICONDIR,name) - if not os.path.isfile(fic_image): - file, ext = os.path.splitext(fic_image) - fic_image = file + '.gif' - image = Tkinter.PhotoImage(file=fic_image) - dico_images[name]=image - return image - -def update_cache(): - dico_images.clear() - diff --git a/InterfaceTK/jdcdisplay.py b/InterfaceTK/jdcdisplay.py deleted file mode 100644 index fd0ac827..00000000 --- a/InterfaceTK/jdcdisplay.py +++ /dev/null @@ -1,285 +0,0 @@ -# -*- 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 JDCDISPLAY qui réalise l'affichage - du jeu de commandes sous la forme d'un arbre et de panneaux qui portent - les informations attachées au noeud de l'arbre sélectionné -""" -# Modules Python -import types,sys -import traceback -import Tkinter -import Pmw - -# Modules Eficas -import panels -from treeitemincanvas import TREEITEMINCANVAS -from widgets import showinfo,showerror - -class CONFIG: - isdeveloppeur='NON' - -class JDCDISPLAY: - """ - Cette classe ajoute à la class TREEITEMINCANVAS l'affichage des infos - attachées au noeud sélectionné dans un notebook - L'objet item associé au jdc est créé par la classe TREEITEMINCANVAS - """ - def __init__(self,jdc,nom_jdc,appli=None,parent=None): - self.jdc=jdc - self.nom_jdc=nom_jdc - self.fichier=None - self.panel_courant=None - - if not appli: - class Appli: - def __init__(self): - self.CONFIGURATION=CONFIG() - def affiche_infos(self,message): - print message - return - - def efface_aide(self,event): - return - - def affiche_aide(self,event,aide): - print aide - return - - appli=Appli() - self.appli=appli - - if not parent: - parent=Tkinter.Tk() - Pmw.initialise(parent) - self.parent=parent - self.node_selected = None - self.modified='n' - - self.pane=Pmw.PanedWidget(self.parent,orient='horizontal') - self.pane.add('treebrowser',min=0.4,size=0.5) - self.pane.add('selected',min=0.4) - self.pane.pack(expand=1,fill='both') - self.tree=TREEITEMINCANVAS(jdc,nom_jdc,self.pane.pane('treebrowser'), - self.appli,self.select_node,self.make_rmenu) - - def make_rmenu(self,node,event): - if hasattr(node.item,'rmenu_specs'): - rmenu = Tkinter.Menu(self.pane.pane('treebrowser'), tearoff=0) - #node.select() - self.cree_menu(rmenu,node.item.rmenu_specs,node) - rmenu.tk_popup(event.x_root,event.y_root) - - def cree_menu(self,menu,itemlist,node): - """ - Ajoute les items du tuple itemlist - dans le menu menu - """ - number_item=0 - radio=None - for item in itemlist: - number_item=number_item + 1 - if not item : - menu.add_separator() - else: - label,method=item - if type(method) == types.TupleType: - # On a un tuple => on cree une cascade - menu_cascade=Tkinter.Menu(menu) - menu.add_cascade(label=label,menu=menu_cascade) - self.cree_menu(menu_cascade,method,node) - elif method[0] == '&': - # On a une chaine avec & en tete => on cree un radiobouton - try: - command=getattr(node.item,method[1:]) - menu.add_radiobutton(label=label,command=lambda a=self.appli,c=command,n=node:c(a,n)) - if radio == None:radio=number_item - except:pass - else: - try: - command=getattr(node.item,method) - menu.add_command(label=label,command=lambda a=self.appli,c=command,n=node:c(a,n)) - except:pass - # Si au moins un radiobouton existe on invoke le premier - if radio:menu.invoke(radio) - - def select(self): - return - - def unselect(self): - return - - def select_node(self,node): - """ - Cette méthode est appelée à chaque fois qu'un noeud est sélectionné - dans l'arbre. - Elle permet l'affichage du panneau correspondant au noeud sélectionné - """ - if node is not self.node_selected : - #ATTENTION: il faut affecter l'attribut node_selected avant d'appeler - # create_panel pour eviter une recursion infinie entre create_panel, - # Emit, onValid, select_node - self.node_selected = node - self.create_panel(node) - elif self.panel_courant: - self.panel_courant.update_panel() - - def create_panel(self,node): - """ - Lance la génération du panneau contextuel de l'objet sélectionné - dans l'arbre - """ - if self.panel_courant: - # On detruit le panneau - self.panel_courant.destroy() - o=self.panel_courant - self.panel_courant=None - # Mettre à 1 pour verifier les cycles entre objets - # pour les panneaux - withCyclops=0 - if withCyclops: - from Misc import Cyclops - z = Cyclops.CycleFinder() - z.register(o) - del o - z.find_cycles() - z.show_stats() - z.show_cycles() - - if node is None: - self.panel_courant=None - return self.panel_courant - - if node.item.isactif(): - if hasattr(node.item,"panel"): - self.panel_courant=node.item.panel(self,self.pane.pane('selected'),node) - else: - raise Exception("Le noeud sélectionné n'a pas de panel associé") - else: - self.panel_courant = panels.Panel_Inactif(self,self.pane.pane('selected'),node) - return self.panel_courant - - def init_modif(self): - """ - Met l'attribut modified à 'o' : utilisé par Eficas pour savoir - si un JDC doit être sauvegardé avant destruction ou non - """ - self.modified = 'o' - - def stop_modif(self): - """ - Met l'attribut modified à 'n' : utilisé par Eficas pour savoir - si un JDC doit être sauvegardé avant destruction ou non - """ - self.modified = 'n' - - def mainloop(self): - self.parent.mainloop() - - def ReplaceObjectNode(self,node,new_object,nom_sd=None): - """ - Cette méthode sert à remplacer l'objet pointé par node par - new_object. - Si nom_sd : on remplace un OPER et on essaie de renommer la - nouvelle sd par nom_sd - """ - child = node.append_brother(new_object,retour='oui') - if child == 0: - self.appli.affiche_infos("Impossible de remplacer l'objet du noeud courant") - else: - self.init_modif() - node.delete() - #if nom_sd: - #child.item.nomme_sd(nom_sd) - child.select() - #child.update() - - def doCut(self): - """ - Stocke dans Eficas.noeud_a_editer le noeud à couper - """ - if not self.node_selected.item.iscopiable(): - showinfo("Copie impossible", - "Cette version d'EFICAS ne permet que la copie d'objets de type 'Commande' ou mot-clé facteur") - return - self.appli.edit="couper" - self.appli.noeud_a_editer = self.node_selected - - def doCopy(self): - """ - Stocke dans Eficas.noeud_a_editer le noeud à copier - """ - if not self.node_selected.item.iscopiable(): - showinfo("Copie impossible", - "La copie d'un tel objet n'est pas permise") - return - self.appli.edit="copier" - self.appli.noeud_a_editer = self.node_selected - - def doPaste(self): - """ - Lance la copie de l'objet placé dans self.appli.noeud_a_editer - Ne permet que la copie d'objets de type Commande ou MCF - """ - try: - child=self.appli.noeud_a_editer.doPaste(self.node_selected) - except: - #traceback.print_exc() - showinfo("Action de coller impossible", - "L'action de coller apres un tel objet n'est pas permise") - return - - if child == 0: - if self.appli.message != '': - showerror("Copie refusée",self.appli.message) - self.appli.message = '' - self.appli.affiche_infos("Copie refusée") - return - - # il faut déclarer le JDCDisplay_courant modifié - self.init_modif() - # suppression éventuelle du noeud sélectionné - # si possible on renomme l objet comme le noeud couper - if self.appli.edit == "couper": - #nom = self.appli.noeud_a_editer.item.object.sd.nom - item=self.appli.noeud_a_editer.item - self.appli.noeud_a_editer.delete() - child.item.update(item) - #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" - - def update(self): - """Cette methode est utilisee par le JDC associe pour - signaler des modifications globales du JDC - """ - self.tree.update() - - def supprime(self): - #print "supprime",self - self.select_node(None) - self.tree.supprime() - self.tree=None - self.pane.destroy() - - #def __del__(self): - # print "__del__",self diff --git a/InterfaceTK/listeFichiers.py b/InterfaceTK/listeFichiers.py deleted file mode 100644 index 908bfe2b..00000000 --- a/InterfaceTK/listeFichiers.py +++ /dev/null @@ -1,81 +0,0 @@ -import string - -class listeFichiers : - - def __init__(self,appli): - self.appli=appli - self.premiere=1 - self.nbfich=0 - self.rep=self.appli.CONFIGURATION.rep_user - self.menuFichier=self.appli.menubar.menudict['Fichier'] - self.monFichier=self.rep+"/listefichiers_"+self.appli.code - self.liste_Fichiers=[] - self.init_Fichier() - self.traite_liste() - - def init_Fichier(self): - 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.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 - - def traite_liste(self): - index=0 - 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 - - 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.menuFichier.insert_command(8,label=label,command= lambda self=self, l=label:self.coucou (l)); - 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() diff --git a/InterfaceTK/listePatronsTK.py b/InterfaceTK/listePatronsTK.py deleted file mode 100644 index 350749b1..00000000 --- a/InterfaceTK/listePatronsTK.py +++ /dev/null @@ -1,27 +0,0 @@ -import os -import re -import Tkinter - - -from Editeur import listePatrons - -class listePatronsTK(listePatrons.listePatrons) : - - def __init__(self,appli): - self.appli=appli - listePatrons.listePatrons.__init__(self) - self.ajout_menu() - - def ajout_menu(self): - menuFichier=self.appli.menubar.menubar - 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.add_command(label=fichier,command= lambda self=self, l=fichier:self.ouvre(l)); - - def ouvre(self,label): - fichier=self.rep_patrons+"/"+label - self.appli.bureau.openJDC(file=fichier,enregistre="non") diff --git a/InterfaceTK/macrodisplay.py b/InterfaceTK/macrodisplay.py deleted file mode 100644 index a0e7e8de..00000000 --- a/InterfaceTK/macrodisplay.py +++ /dev/null @@ -1,165 +0,0 @@ -# -*- 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 MacroDisplay qui realise l'affichage - des sous commandes d'une macro sous forme d'arbre -""" -# Modules Python -import types,sys -import Tkinter,Pmw - -# Modules EFICAS -import images -import tooltip -from Editeur import Objecttreeitem -import compojdc -import treewidget -from widgets import Fenetre -from Ihm import CONNECTOR - -class MACRO2TreeItem(compojdc.JDCTreeItem): - pass - -class MacroDisplay: - def __init__(self,appli,macroitem,nom_jdc): - self.fenetre = Tkinter.Toplevel() - self.fenetre.configure(width = 800,height=500) - self.fenetre.protocol("WM_DELETE_WINDOW", self.quit) - self.fenetre.title("Visualisation Macro_Etape") - self.macroitem=macroitem - self.jdc=macroitem.object.jdc_aux - self.nom_jdc=nom_jdc - self.appli=appli - self.barre=Tkinter.Frame(self.fenetre,relief="ridge",bd=2) - self.barre.pack(expand=0,fill=Tkinter.X) - if self.macroitem.object.fichier_text is not None: - b=Tkinter.Button(self.barre,image=images.get_image("Zoom24"),command=self.visufile) - b.pack(side='left') - tp=tooltip.TOOLTIP(b,"View file") - self.mainPart=Pmw.ScrolledCanvas(self.fenetre, - hull_width=600, - hull_height=500, - borderframe=1) - self.canvas=self.mainPart.component('canvas') - Pmw.Color.changecolor(self.canvas,background='gray95') - self.mainPart.pack(padx=10,pady=10,fill = 'both', expand = 1) - self.item=MACRO2TreeItem(self.appli,nom_jdc,self.jdc) - self.tree = treewidget.Tree(self.appli,self.item,self.mainPart,command=None,rmenu=self.make_rmenu) - self.tree.draw() - CONNECTOR.Connect(self.jdc,"close",self.onCloseView,()) - - def onCloseView(self): - self.quit() - - def visufile(self): - Fenetre(self.appli,titre="Source du fichier inclus",texte=self.macroitem.object.fichier_text) - - def make_rmenu(self,node,event): - if hasattr(node.item,'rmenu_specs'): - rmenu = Tkinter.Menu(self.canvas, tearoff=0) - self.cree_menu(rmenu,node.item.rmenu_specs,node) - rmenu.tk_popup(event.x_root,event.y_root) - - def cree_menu(self,menu,itemlist,node): - """ - Ajoute les items du tuple itemlist - dans le menu menu - """ - number_item=0 - radio=None - for item in itemlist: - number_item=number_item + 1 - if not item : - menu.add_separator() - else: - label,method=item - if type(method) == types.TupleType: - # On a un tuple => on cree une cascade - menu_cascade=Tkinter.Menu(menu) - menu.add_cascade(label=label,menu=menu_cascade) - self.cree_menu(menu_cascade,method,node) - elif method[0] == '&': - # On a une chaine avec & en tete => on cree un radiobouton - try: - command=getattr(node.item,method[1:]) - menu.add_radiobutton(label=label,command=lambda a=self.appli,c=command,n=node:c(a,n)) - if radio == None:radio=number_item - except:pass - else: - try: - command=getattr(node.item,method) - menu.add_command(label=label,command=lambda a=self.appli,c=command,n=node:c(a,n)) - except:pass - # Si au moins un radiobouton existe on invoke le premier - if radio:menu.invoke(radio) - - def quit(self): - #print "quit",self - self.tree.supprime() - self.tree=None - self.fenetre.destroy() - - #def __del__(self): - # print "__del__",self - -def makeMacroDisplay(appli,macroitem,nom_item): - return MacroDisplay(appli,macroitem,nom_item) - -import treeitemincanvas - -class TREEITEMINCANVAS(treeitemincanvas.TREEITEMINCANVAS): - def __init__(self,object,nom="",parent=None,appli=None,sel=None,rmenu=None): - #print "TREEITEMINCANVAS",object - self.object=object - self.nom=nom - self.appli=appli - self.parent=parent - - self.item=MACRO2TreeItem(self.appli,self.nom,self.object) - self.canvas=Pmw.ScrolledCanvas(self.parent,borderframe=1,canvas_background='gray95') - self.canvas.pack(padx=10,pady=10,fill = 'both', expand = 1) - if not sel: - def sel(event=None): - return - self.tree=treewidget.Tree(self.appli,self.item,self.canvas,command=sel,rmenu=rmenu) - self.tree.draw() - -import jdcdisplay - -class MACRODISPLAY(jdcdisplay.JDCDISPLAY): - def __init__(self,jdc,nom_jdc,appli=None,parent=None): - #print "MACRODISPLAY",jdc - self.jdc=jdc - self.nom_jdc=nom_jdc - self.fichier=None - self.panel_courant=None - self.appli=appli - self.parent=parent - self.node_selected = None - self.modified='n' - - self.pane=Pmw.PanedWidget(self.parent,orient='horizontal') - self.pane.add('treebrowser',min=0.4,size=0.5) - self.pane.add('selected',min=0.4) - self.pane.pack(expand=1,fill='both') - self.tree=TREEITEMINCANVAS(jdc,nom_jdc,self.pane.pane('treebrowser'), - self.appli,self.select_node,self.make_rmenu) - diff --git a/InterfaceTK/menubar.py b/InterfaceTK/menubar.py deleted file mode 100644 index 2a64cad9..00000000 --- a/InterfaceTK/menubar.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== -""" -""" -from Tkinter import Menu - -class MENUBAR: - def __init__(self,appli,parent): - # L'attribut appli pointe vers l'objet application qui détient la menubar et les autres composants - self.appli=appli - # L'attribut parent pointe vers l'objet graphique parent de la menubar - self.parent=parent - self.menubar=Menu(self.parent) - self.parent.configure(menu=self.menubar) - self.init() - - try: - import prefs - name='prefs_'+prefs.code - from prefsCode import labels - except: - labels= ('Fichier','Edition','Jeu de commandes','Catalogue','Options','Aide','Traduction') - - def init(self): - self.menudict={} - for label in self.labels: - menu=Menu(self.menubar,tearoff=0) - self.menudict[label]=menu - self.menubar.add_cascade(label=label,menu=menu) - diff --git a/InterfaceTK/newsimppanel.py b/InterfaceTK/newsimppanel.py deleted file mode 100644 index 77ca83aa..00000000 --- a/InterfaceTK/newsimppanel.py +++ /dev/null @@ -1,196 +0,0 @@ -# -*- 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 -import string,types,os -from Tkinter import * -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import prefs -import panels -import images -import composimp -from widgets import ListeChoix -from widgets import FenetreDeSelection - -from Noyau.N_CR import justify_text -from Editeur.utils import substract_list - - -class newSIMPPanel(panels.OngletPanel): - """ - Classe virtuelle servant de classe mère à toutes les classes Panel - servant à afficher et récupérer la valeur d'un mot-clé simple. - Le panel est différent suivant le type de la valeur attendu - """ - def init(self): - """ - Méthode appelée par le constructeur de OngletPanel : - construit le notebook à 2 onglets utilisé par tous les panels de - tous les mots-clés simples - """ - nb = Pmw.NoteBook(self,raisecommand=self.raisecmd) - nb.pack(fill = 'both', expand = 1) - self.nb=nb - nb.add('Valeur', tab_text='Saisir valeur') - self.makeValeurPage(nb.page('Valeur')) - self.enlevebind() - self.creebind() - nb.setnaturalsize() - -# ---------------------------------------------------------------------------------------- -# Méthodes utilisées pour l'affectation de la valeur donnée par l'utilisateur -# au mot-clé courant -# ---------------------------------------------------------------------------------------- - - def reset_old_valeur(self,name=None,mess='Valeur du mot-clé enregistrée'): - """ - Enregistre val comme valeur de self.node.item.object SANS - faire de test de validité ni ré-évaluer l'ancienne valeur - permet de rester avec des valeurs non entrees et de ne pas - ré-évaluer des entiers par exemple - """ - if self.parent.modified == 'n' : self.parent.init_modif() - self.node.item.set_valeur(name) - self.parent.appli.affiche_infos(mess) - - 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 - Si name n'est pas renseigné, la valeur - """ - if self.parent.modified == 'n' : self.parent.init_modif() - if name != None: - valeur = name - validite = 1 - else : - valeurentree= self.entry.get() - self.entry.delete(0,END) - 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) - - if validite : - validite,commentaire=self.node.item.valide_val(valeur) - - if validite : - self.node.item.set_valeur(valeur) - self.parent.appli.affiche_infos(mess) - else : - self.parent.appli.affiche_infos(commentaire) - -# ---------------------------------------------------------------------------------------- -# Méthodes utilisées pour la manipulation des items dans les listes de choix -# ---------------------------------------------------------------------------------------- - def selectValeur(self,name): - self.selected_valeur = name - - def deselectValeur(self,name): - self.selectValeur = None - - def sup_valeur(self,name=None): - """ - Supprime la valeur selectionnée de la liste des valeurs et la rajoute - à la liste des choix possibles - """ - if hasattr(self,'selected_valeur') : - if ( self.selected_valeur != None and self.selected_valeur != ''): - liste_valeurs = self.Liste_valeurs.get_liste() - liste_valeurs.remove(self.selected_valeur) - self.Liste_valeurs.put_liste(liste_valeurs) - listeActuelle=self.Liste_valeurs.get_liste() - liste_choix=self.node.item.get_liste_possible(listeActuelle) - self.Liste_choix.put_liste(liste_choix) - self.selected_valeur = None - - def add_choix(self,name=None): - """ - Ajoute le choix selectionné à la liste des valeurs et le retire - de la liste des choix possibles - """ - - if hasattr(self,'selected_choix') : - if (self.selected_choix != None and self.selected_choix != ''): - min,max = self.node.item.GetMinMax() - liste_valeurs = self.Liste_valeurs.get_liste() - if len(liste_valeurs) >= max : - self.parent.appli.affiche_infos("La liste ne peut pas avoir plus de %d éléments" %max) - return - if (self.Liste_valeurs.selection != None): - ligne=self.Liste_valeurs.cherche_selected_item() - liste_valeurs.insert(ligne,self.selected_choix) - else : - liste_valeurs.append(self.selected_choix) - self.Liste_valeurs.put_liste(liste_valeurs) - listeActuelle=self.Liste_valeurs.get_liste() - liste_choix=self.node.item.get_liste_possible(listeActuelle) - self.Liste_choix.put_liste(liste_choix) - self.selected_choix = None - - def selectChoix(self,name): - self.selected_choix = name - - def deselectChoix(self,name): - self.selectChoix = None - - def raisecmd(self,page): - try: - self.entry.focus() - except: - pass - -# ---------------------------------------------------------------------------------------- -# Méthodes utilisées pour la manipulation des items en notation scientifique -# ---------------------------------------------------------------------------------------- - def set_valeur_texte(self,texte_valeur) : - """ Sert à mettre à jour la notation scientifique""" - try : - if "R" in self.node.item.object.definition.type: - if texte_valeur[0] != "'": - clef=eval(texte_valeur) - if str(clef) != str(texte_valeur) : - self.node.item.object.init_modif() - clefobj=self.node.item.object.GetNomConcept() - 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.node.item.object.fin_modif() - except: - pass - - - def get_valeur_texte(self,valeur) : - valeur_texte="" - if "R" in self.node.item.object.definition.type: - clefobj=self.node.item.object.GetNomConcept() - if self.parent.appli.dict_reels.has_key(clefobj): - if self.parent.appli.dict_reels[clefobj].has_key(valeur): - valeur_texte=self.parent.appli.dict_reels[clefobj][valeur] - return valeur_texte - diff --git a/InterfaceTK/options.py b/InterfaceTK/options.py deleted file mode 100644 index 9d0da1e4..00000000 --- a/InterfaceTK/options.py +++ /dev/null @@ -1,132 +0,0 @@ -# -*- 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 -import os,string - -# Modules Eficas -from widgets import askopenfilename -import panels - -# l'option affichage_commandes peut prendre les valeurs "groupes" ou "alphabetic" -affichage_commandes="alphabetic" - -class OPTIONS: - - menu_defs=[ - ('Options',[ - ("Affichage commandes",(("alphabétique",'&affichage_alpha'),("groupes",'&affichage_grp'))), - #("Couleur",(("fond",'change_fond'),("barre",'change_barre'))), - # ("Catalogue développeur",'choix_cata_developpeur'), - ('Paramètres Eficas','affichage_fichier_ini'), - ('Paramètres Affichage','affichage_style_ini'), - - ] - ) - ] - - button_defs=[] - - def __init__(self,appli,parent): - self.appli=appli - self.parent=parent - - - def affichage_grp(self): - global affichage_commandes - 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 - - def affichage_alpha(self): - - global affichage_commandes - 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 - - def change_fond(self): - from tkColorChooser import askcolor - #nouvelle=askcolor(self.appli.background) - nouvelle=askcolor('grey') - - def change_barre(self): - pass - - def choix_cata_developpeur(self): - """ - Cette méthode demande à l'utilisateur-développeur d'indiquer quel catalogue - il veut utiliser en remplacement du catalogue standard du code - NB : il faut que le développeur ait les droits d'écriture dans le répertoire où - se trouve le catalogue - """ - file = askopenfilename(title="Choix d'un catalogue personnel", - defaultextension=".py", - filetypes = ( ("Catalogue", "cata*.py"),)) - if file : - self.parent.update_idletasks() - self.appli.reset_affichage_infos() - rep_fic = os.path.dirname(file) - nom_fic = string.split(os.path.basename(file),'.')[0] - rep_courant = os.getcwd() - os.chdir(rep_fic) - self.cata = __import__(nom_fic) - self.code = self.cata.CODE - os.chdir(rep_courant) - self.fic_cata = file - fic_cata_p = nom_fic+'_pickled.py' - self.fic_cata_p = os.path.join(rep_fic,fic_cata_p) - pile_erreurs = self.cata.erreurs_cata - if pile_erreurs.existe_message() : - messages = pile_erreurs.retourne_messages() - print messages - else : - # XXX ne doit pas fonctionner - self.catalo = catabrowser.CataItem(cata=self.cata) - self.Retrouve_Ordre_Cata('personnel') - pile_erreurs.efface() - - - def affichage_fichier_ini(self): - self.appli.CONFIGURATION.affichage_fichier_ini() - - - def affichage_style_ini(self): - self.appli.CONFIGStyle.affichage_style_ini() diff --git a/InterfaceTK/panels.py b/InterfaceTK/panels.py deleted file mode 100644 index b6290ad7..00000000 --- a/InterfaceTK/panels.py +++ /dev/null @@ -1,593 +0,0 @@ -# -*- 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 string -import os -from Tkinter import * -import Pmw -import time -import traceback - -import widgets -from widgets import ListeChoix, showerror -from widgets import ListeChoixParGroupes -import prefs -name='prefs_'+prefs.code -prefsCode=__import__(name) -import options - -SEPARATEUR = '-'*30 - - -class Panel(Frame) : - """ - Classe servant de classe mère à toutes celles représentant les - panneaux à afficher en fonction de la nature de l'objet en cours - Elle est toujours dérivée. - """ - def __init__(self,parent,panneau,node) : - # Le parent d'un panel est un objet de la classe JDCDISPLAY ou derivee - # ou un objet qui a les attributs : appli (de classe APPLI ou derivee), - # modified et la methode init_modif - self.parent=parent - self.panneau = panneau - self.node=node - Frame.__init__(self,self.panneau) - self.place(x=0,y=0,relheight=1,relwidth=1) - self.creer_boutons() - self.init() - global panneauCommande - panneauCommande=self - - #def __del__(self): - # print "__del__",self - - def update_panel(self): - """Methode appele pour demander une mise a jour du panneau""" - - def destroy(self): - Frame.destroy(self) - self.panneau=None - self.parent=None - # Because on herite de Frame - self.master=None - # On supprime explicitement les references aux objets Tk - self.nb=None - self.fr_but=None - self.bouton_cata=None - self.bouton_doc=None - self.bouton_com=None - self.bouton_sup=None - #self.frame_eval=None - self.label=None - self.frame_boutons=None - self.frame_comment=None - self.frame_param=None - # On termine la suppression de facon brutale (objets Tk et non Tk) - for k in self.__dict__.keys(): - # il est plus prudent de ne pas détruire le lien sur le Node - # si on voulait mettre l'attribut node à None, il faudrait - # que tous les appels à node.parent.select() apparaissent après - # toutes les autres actions liées au panel (node.item.isglobal(), ...) - if k != 'node' : setattr(self,k,None) - - def creer_boutons(self): - """ - Méthode créant les boutons se trouvant dans la partie contextuelle d'EFICAS - (à droite sous les onglets ) - """ - self.fr_but = Frame(self,height=30) - self.fr_but.pack(side='bottom') - self.bouton_com = Button(self.fr_but, text = 'Commentariser', command = self.ajout_commentaire) - self.bouton_sup = Button(self.fr_but, text = "Supprimer", command=self.supprimer) - self.bouton_doc = Button(self.fr_but, text="Documentation", command=self.visu_doc) - self.bouton_cata = Button(self.fr_but, text = "Catalogue", command = self.show_catalogue) - - if self.parent.appli.CONFIGURATION.isdeveloppeur == 'OUI': - self.bouton_sup.pack(side='left',padx=5, pady=5) - self.bouton_cata.pack(side='left',padx=5, pady=5) - self.bouton_doc.pack(side='right',padx=5, pady=5) - #self.bouton_sup.place(relx=0.25,rely = 0.5,relheight = 0.8,anchor='center') - #self.bouton_cata.place(relx=0.5,rely = 0.5,relheight = 0.8,anchor='center') - #self.bouton_doc.place(relx=0.75,rely = 0.5,relheight = 0.8,anchor='center') - else: - self.bouton_sup.pack(side='left',padx=5, pady=5) - self.bouton_doc.pack(side='right',padx=5, pady=5) - #self.bouton_sup.place(relx=0.3,rely = 0.5,relheight = 0.8,anchor='center') - #self.bouton_doc.place(relx=0.7,rely = 0.5,relheight = 0.8,anchor='center') - - def show_catalogue(self): - try: - genea = self.node.item.get_genealogie() - self.parent.appli.browser_catalogue_objet(genea) - except Exception,e: - traceback.print_exc() - - def efface(self): - self.node.efface() - -# ------------------------------------------------------------------------ -# Méthodes permettant d'ajouter des commentaires, des paramètres -# et des objets EVAL. -# Ces méthodes sont utilisées par les panneaux des JDC,ETAPE, -# COMMENTAIRE et PARAMETRE -# ------------------------------------------------------------------------ - - def ajout_commentaire(self,ind='after'): - """ - Ajoute un commentaire à l'intérieur du JDC : - - si ind='after' : l'ajoute après l'objet courant - - si ind='before' : l'ajoute avant. - """ - if self.parent.modified == 'n' : self.parent.init_modif() - return self.node.append_brother("COMMENTAIRE",ind) - - def ajout_commentaire_first(self): - """ - Ajoute un commentaire en début de JDC - """ - if self.parent.modified == 'n' : self.parent.init_modif() - return self.node.append_child("COMMENTAIRE",'first') - - def ajout_parametre(self,ind='after'): - """ - Ajoute un parametre à l'intérieur du JDC : - - si ind='after' : l'ajoute après l'objet courant - - si ind='before' : l'ajoute avant. - """ - if self.parent.modified == 'n' : self.parent.init_modif() - return self.node.append_brother("PARAMETRE",ind) - - def ajout_parametre_first(self): - """ - Ajoute un parametre en début de JDC - """ - if self.parent.modified == 'n' : self.parent.init_modif() - return self.node.append_child("PARAMETRE",'first') - -# def ajout_parametre_eval(self,ind='after'): -# """ -# Ajoute un paramètre EVAL à l'intérieur du JDC : -# - si ind='after' : l'ajoute après l'objet courant -# - si ind='before' : l'ajoute avant. -# """ -# if self.parent.modified == 'n' : self.parent.init_modif() -# return self.node.append_brother("PARAMETRE_EVAL",ind) - -# def ajout_parametre_eval_first(self): -# """ -# Ajoute un paramètre EVAL en début de JDC -# """ -# if self.parent.modified == 'n' : self.parent.init_modif() -# return self.node.append_child("PARAMETRE_EVAL",'first') - -# ------------------------------------------------------------------------ - - def visu_doc(self): - """ Permet d'ouvrir le fichier doc U de la commande au format pdf avec Acrobat Reader - - Ne fonctionne pas sous UNIX (chemin d'accès Acrobat Reader) - - indication du chemin d'accès aux fichiers pdf à revoir : trop statique""" - cle_doc = self.node.item.get_docu() - if cle_doc == None : return - #cle_doc = string.replace(cle_doc,'.','') - #cle_doc = string.replace(cle_doc,'-','') - commande = self.parent.appli.CONFIGURATION.exec_acrobat - nom_fichier = cle_doc - fichier = os.path.abspath(os.path.join(self.parent.appli.CONFIGURATION.path_doc, - nom_fichier)) - if os.path.isfile(fichier) == 0: - showerror("Pas de Documentation", "Eficas ne trouve pas de fichier documentation associe a cette commande") - return - if os.name == 'nt': - os.spawnv(os.P_NOWAIT,commande,(commande,fichier,)) - elif os.name == 'posix': - script ="#!/usr/bin/sh \n%s %s&" %(commande,fichier) - pid = os.system(script) - - def supprimer(self): - """ - Suppression du noeud courant - """ - # On signale au parent du panel (le JDCDisplay) une modification - self.parent.init_modif() - self.node.delete() - - def affiche(self): - """ Force l'affichage des fenêtres en cours """ - self.tkraise() - - def selectMC(self,name): - """ On retrouve le mot-clé sous le curseur pour affichage du fr """ - cmd=self.node.item.get_definition() - texte_infos = '' - for e in cmd.entites.keys() : - if e == name : - texte_infos=getattr(cmd.entites[e],prefsCode.lang) - break - if texte_infos == '' : texte_infos="Pas d'infos disponibles" - self.parent.appli.affiche_infos(texte_infos) - - def defMC(self,name): - """ On ajoute un mot-clé à la commande : subnode """ - if name == SEPARATEUR:return - if self.parent.modified == 'n' : self.parent.init_modif() - if name != "COMMENTAIRE": - self.node.append_child(name) - else : - self.ajout_commentaire() - - def selectCmd(self,name): - """ On retrouve la commande sous le curseur pour affichage du fr """ - if name != 'COMMENTAIRE' and name != SEPARATEUR: - texte_infos=getattr(self.parent.jdc.get_cmd(name),prefsCode.lang) - self.parent.appli.affiche_infos(texte_infos) - - def defCmd(self,name): - """ - On ajoute une commande après la commande selectionnée : after - ou bien on ajoute un commentaire - """ - if name == SEPARATEUR:return - if self.parent.modified == 'n' : self.parent.init_modif() - if name != "COMMENTAIRE": - #parent=self.node.parent - #new_obj = parent.item.append_child(name,self.node.item.getObject()) - #parent.children[parent.children.index(self.node)+1].select() - new_node = self.node.append_brother(name,'after') - else : - new_node = self.ajout_commentaire() - - def defCmdFirst(self,name): - """ On ajoute une commande ou un commentaire au début du fichier de commandes """ - if name == SEPARATEUR:return - if self.parent.modified == 'n' : self.parent.init_modif() - if name != "COMMENTAIRE": - #new_obj = self.node.item.append_child(name,'first') - #self.node.children[0].select() - new_node = self.node.append_child(name,'first') - else : - new_node = self.ajout_commentaire_first() - -class OngletPanel(Panel) : - """ Cette classe est virtuelle et doit être dérivée - Elle contient les principales méthodes d'affichage des différents onglets""" - - global panelbind - - def raisecmd(self,page): - self.nb.page(page).focus_set() - if page == 'Concept': - try: - self._any.focus() - except: - pass - elif page == 'Commande': - try: - self.command_entry.component('entry').focus() - except: - pass - - def creebind(self): - self.nb.bind_all("",lambda e,s=self,num=0:s.commande_up(num)) - self.nb.bind_all("",lambda e,s=self,num=1:s.commande_up(num)) - self.nb.bind_all("",lambda e,s=self,num=2:s.commande_up(num)) - self.nb.bind_all("",lambda e,s=self,num=3:s.commande_up(num)) - OngletPanel.panelbind=self.nb - - def enlevebind(self): - if not hasattr(OngletPanel,"panelbind"): - return - if OngletPanel.panelbind == None: - return - 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) - pageNew=OngletPanel.panelbind.page(num) - pageNew.focus_set() - except : - 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 - self._any.component('entry').focus_set() - except: - pass - self.tkraise() - -# ------------------------------------------------------------------------ -# Méthodes permettant d'afficher des pages partagées par différents -# types d'objets (règles,mots-clés,concept,...) -# ------------------------------------------------------------------------ - - def makeConceptPage(self,page): - """ - Crée la page de saisie du nom du concept - """ - self.label = Label(page,text='Nom du concept :',justify=LEFT) - self.label.grid(row=0,sticky=W,padx=5,pady=10) - self._any = Entry(page,relief='sunken') - self._any.grid(row=0,column=1,padx=5,pady=10) - self._any.bind("",lambda e,s=self:s.execConcept()) - self._any.bind("",lambda e,s=self:s.execConcept()) - self._any.insert(0,self.node.item.GetText()) - self.but_ok=Button(page,text = "Valider",command=self.execConcept) - type_sd = self.node.item.get_type_sd_prod() - row=1 - if type_sd : - txt = "L'opérateur courant retourne un objet de type:\n%s" %type_sd - self.label = Label(page, text = txt) - self.label.grid(row=1,columnspan=2,padx=5,pady=10,sticky=W) - row=2 - self.but_ok.grid(row=row,columnspan=2,padx=5,pady=10) - self._any.focus() - # aide associée au panneau - bulle_aide="""Tapez dans la zone de saisie le nom que vous voulez donner - au concept retounré par l'opérateur courant et pressez pour valider""" - page.bind("", lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) - page.bind("",self.parent.appli.efface_aide) - - def makeMoclesPage(self,page): - """ - Crée la page qui affiche la liste des mots-clés que l'on peut - encore ajouter - """ - genea =self.node.item.get_genealogie() - jdc = self.node.item.get_jdc() - liste_mc=self.node.item.get_liste_mc_ordonnee(genea,jdc.cata_ordonne_dico) - liste_commandes = (("",self.selectMC), - ("",self.deselectMC), - ("",self.defMC)) - Liste = ListeChoix(self,page,liste_mc,liste_commandes = liste_commandes,titre = "Mots-clés permis",optionReturn="oui") - Liste.affiche_liste() - # aide associée au panneau - bulle_aide="""Double-cliquez sur le mot-clé que vous voulez ajouter à - la commande en cours d'édition""" - 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) - 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 :") - label.grid(column = 0, row = 2) - but_avant = Button(page,text = "AVANT",command = lambda s=self :s.ajout_commentaire(ind = 'before')) - but_apres = Button(page,text = "APRES",command = self.ajout_commentaire) - but_avant.grid(column = 1,row =2) - but_apres.grid(column = 1,row =3) - - def makeCommandePage(self,page): - """ - Cree l'onglet - """ - frame1 = Frame(page,height = 20) - frame1.pack(side='top',fill='x') - label = Label(frame1,text ="La commande choisie sera ajoutée\n APRES la commande courante") - label.pack(side='top') - frame2 = Frame(page) - frame2.pack(side='top',fill='both',expand=1) - liste_commandes = (("",self.selectCmd), - ("",self.deselectCmd), - ("",self.defCmd)) - if options.affichage_commandes == "alphabetic": - liste_cmd = self.get_liste_cmd() - Liste = ListeChoix(self,frame2,liste_cmd,liste_commandes = liste_commandes, - filtre='oui',titre = "Commandes",optionReturn="oui") - else: - liste_commandes=liste_commandes+(("",self.defCmd),) - liste_groupes,dict_groupes=self.get_groups() - Liste = ListeChoixParGroupes(self,frame2,liste_groupes,dict_groupes, - liste_commandes = liste_commandes, - filtre='oui',titre = "Commandes",optionReturn="oui") - Liste.affiche_liste() - self.command_entry=Liste.entry - # aide associée au panneau - bulle_aide="""Double-cliquez sur la commande que vous voulez ajouter au jeu de commandes""" - Liste.MCbox.bind("", 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 - - def makeJDCPage(self,page): - """ - Crée la page correspondant à un objet de type JDC - """ - liste_commandes = (("",self.selectCmd), - ("",self.deselectCmd), - ("",self.defCmdFirst)) - if options.affichage_commandes == "alphabetic": - liste_cmd = self.get_liste_cmd() - Liste = ListeChoix(self,page,liste_cmd,liste_commandes = liste_commandes, - filtre='oui',titre = "Commandes",optionReturn="oui") - else: - liste_commandes=liste_commandes+(("",self.defCmdFirst),) - liste_groupes,dict_groupes=self.get_groups() - Liste = ListeChoixParGroupes(self,page,liste_groupes,dict_groupes, - liste_commandes = liste_commandes, - filtre='oui',titre = "Commandes",optionReturn="oui") - Liste.affiche_liste() - # aide associée au panneau - 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) - - def makeReglesPage(self,page) : - """ - Crée la page qui affiche la liste des règles avec celle qui ne sont - pas respectées en rouge - """ - regles = [] - regles = self.node.item.get_regles() - dictionnaire = self.node.item.get_mc_presents() - texte_regles = [] - l_regles_en_defaut=[] - if len(regles) > 0: - i = 0 - for regle in regles : - texte_regles.append(regle.gettext()) - texte,test = regle.verif(dictionnaire) - if test == 0 : l_regles_en_defaut.append(i) - i = i+1 - Liste = ListeChoix(self,page,texte_regles,liste_marques=l_regles_en_defaut,active='non',titre="Règles") - Liste.affiche_liste() - # aide associée au panneau - bulle_aide="""Ce panneau contient la liste des règles qui s'appliquent à l'objet - en cours d'édition. - - en noir : règles valides - - en rouge : règles violées""" - Liste.MCbox.bind("", lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) - Liste.MCbox.bind("",self.parent.appli.efface_aide) - - def makeParamCommentPage_for_etape(self,page): - """ - Crée la page qui offre le choix à l'utilisateur d'ajouter un commentaire - ou un paramètre, avant ou après le noeud courant dans l'arbre. - Cette page est destinée aux objets de niveau ETAPE cad à toutes les CMD, - les commentaires inter commandes et les paramètres - """ - # les frame ... - self.frame_comment = Frame(page,bd=1,relief='raised') - self.frame_param = Frame(page,bd=1,relief='raised') - self.frame_boutons = Frame(page,bd=1,relief='raised') - # remplissage de la frame commentaire - Label(self.frame_comment,text = "Insérer un commentaire :",justify=LEFT).grid(row=0,rowspan=2,sticky=W,padx=5, pady=5) - but_comment_avant = Button(self.frame_comment, - text = "AVANT "+self.node.item.get_nom(), - command = lambda s=self :s.ajout_commentaire(ind = 'before')) - but_comment_apres = Button(self.frame_comment, - text = "APRES "+self.node.item.get_nom(), - command = self.ajout_commentaire) - but_comment_avant.grid(row=0,column=1,padx=5, pady=5) - but_comment_apres.grid(row=1,column=1,padx=5, pady=5) - self.frame_comment.pack(side='top',fill='both',padx=5, pady=5) - # remplissage de la frame paramètre - Label(self.frame_param,text = "Insérer un paramètre :",justify=LEFT).grid(row=0,rowspan=2,sticky=W,padx=5, pady=5) - but_param_avant = Button(self.frame_param, - text = "AVANT "+self.node.item.get_nom(), - command = lambda s=self :s.ajout_parametre(ind = 'before')) - but_param_apres = Button(self.frame_param, - text = "APRES "+self.node.item.get_nom(), - command = self.ajout_parametre) - but_param_avant.grid(row=0,column=1,padx=5, pady=5) - but_param_apres.grid(row=1,column=1,padx=5, pady=5) - self.frame_param.pack(side='top',fill='both',padx=5, pady=5) - # remplissage de la frame boutons - Button(self.frame_boutons, - text="Commentariser toute la commande", - command = self.comment_commande).pack(side='top',padx=5, pady=5) - self.frame_boutons.pack(side='top',fill='both',padx=5, pady=5) - - def deselectMC(self,name): - self.parent.appli.affiche_infos('') - - def get_groups(self): - jdc=self.node.item.object.get_jdc_root() - return jdc.get_groups() - - def get_liste_cmd(self): - #print "get_liste_cmd",self.node.item.object - jdc=self.node.item.object.get_jdc_root() - listeCmd = jdc.get_liste_cmd() - return listeCmd - - def deselectCmd(self,name): - self.parent.appli.affiche_infos('') - - def execConcept(self): - """ - Nomme le concept SD retourné par l'étape - """ - if not hasattr(self,'valeur_choisie'): - nom = self._any.get() - else: - nom = self.valeur_choisie.get() - nom = string.strip(nom) - if nom == '' : return # si pas de nom, on ressort sans rien faire ... - if self.parent.modified == 'n' : self.parent.init_modif() - test,mess = self.node.item.nomme_sd(nom) - #self.node.verif() - #self.node.racine.update() - self.parent.appli.affiche_infos(mess) - - def changed(self): - pass - - def comment_commande(self): - """ - Cette méthode a pour but de commentariser la commande pointée par self.node - """ - # On traite par une exception le cas où l'utilisateur final cherche à désactiver - # (commentariser) un commentaire. - try : - pos=self.node.parent.children.index(self.node) - commande_comment = self.node.item.get_objet_commentarise() - # On signale au parent du panel (le JDCDisplay) une modification - self.parent.init_modif() - self.node.parent.children[pos].select() - except Exception,e: - traceback.print_exc() - widgets.showerror("TOO BAD",str(e)) - return - - -class Panel_Inactif(Panel): - """ - Cette classe sert à définir un panneau dans lequel on dit que le noeud - sélectionné n'est pas actif - """ - def __init__(self,parent,panneau,node) : - self.parent=parent - self.panneau = panneau - self.node=node - Frame.__init__(self,self.panneau) - self.place(x=0,y=0,relheight=1,relwidth=1) - self.creer_texte() - - def creer_texte(self): - texte = "Le noeud sélectionné ne correspond pas à un objet actif\n" - texte = texte + "Seules les commandes placées entre \nDEBUT/POURSUITE et FIN sont actives" - longueur = int(self.panneau.winfo_width()*0.8) - self.label = Label(self,text=texte,wraplength=longueur,justify='center') - self.label.place(relx=0.5,rely=0.4,relwidth=0.8,anchor='center') - self.bouton_sup = Button(self, - text = "Supprimer", - command=self.supprimer, - width=14) - self.bouton_sup.place(relx=0.5,rely=0.8,anchor='center') - - -if __name__ == "__main__" : pass diff --git a/InterfaceTK/panelsSalome.py b/InterfaceTK/panelsSalome.py deleted file mode 100644 index 800848ed..00000000 --- a/InterfaceTK/panelsSalome.py +++ /dev/null @@ -1,286 +0,0 @@ -# -*- coding: utf-8 -*- - -from Tkinter import * -from widgets import ListeChoix -from widgets import showerror - -from fonctionpanel import FONCTION_Panel -from shellpanel import SHELLPanel -from plusieursintopanel import PLUSIEURS_INTO_Panel -from plusieursassdpanel import PLUSIEURS_ASSD_Panel -from plusieursbasepanel import PLUSIEURS_BASE_Panel -from plusieursbasepanel import PLUSIEURS_BASE_OR_UNELISTE_Panel -from uniquesdcopanel import UNIQUE_SDCO_Panel -from uniqueassdpanel import UNIQUE_ASSD_Panel -from uniqueintopanel import UNIQUE_INTO_Panel -from uniquecomppanel import UNIQUE_COMP_Panel -from uniquebasepanel import UNIQUE_BASE_Panel -from uniqueassdpanel import UNIQUE_ASSD_Panel_Reel - -from Noyau.N_CR import justify_text - -import traceback -import images - - - -# 2 types de commandes vont etre particularisees dans Salome -# -# - un cas general : -# Toutes les commandes possedant GROUP_NO ou GROUP_MA -# seront surchargees d office -# pour cela on va utiliser le dictionnaire dict_classes_salome -# qui va permettre de changer la classe de la commande -# ainsi si un panel en dehors de salome a pour classe PLUSIEURS_BASE_Panel -# la classe de ce panel devient alors SALOME_PLUSIEURS_BASE_Panel -# (pour cela voir composimp) - -# des commandes "autres" ne pouvant pas etre identifiées par leur nom -# il suffit de creer dans la classe SALOME de la commande -# une fonction portant son nom -# Exemple de particularisation d un panel : -# Supposons que l on veuille particulariser la commande -# - 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 -# la classe de ce panel devient alors SALOME_UNIQUE_BASE_Panel -# on peut surcharger les methodes nécessaires (affichage par exemple) - - -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 -# Methodes surchargées : -# - makeValeurPage(self,page) -# -# ------------------------------------------------------------------------------# - -class SALOME_PLUSIEURS_BASE_OR_UNELISTE_Panel(PLUSIEURS_BASE_OR_UNELISTE_Panel): - "" - -class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel): - - def __init__(self,parent,panneau,node): - PLUSIEURS_BASE_Panel.__init__( self, parent, panneau, node ) - #self.selected_valeur = None - - def add_valeur_plusieurs_base(self,name=None): - try: - valeur,validite,commentaire=self.get_valeur() - if not valeur: # sélection dans salome - strSelection = '' - - genea=self.node.item.get_genealogie() - kwType = None - for e in genea: - if "GROUP_NO" in e: - kwType = "GROUP_NO" - if "GROUP_MA" in e: - kwType = "GROUP_MA" - - selection, msg = self.parent.appli.selectGroupFromSalome(kwType) - if selection: - for oneSelection in selection: - strSelection +=str( oneSelection ) - strSelection +=',' - - strSelection = strSelection.rstrip(',') - self.display_valeur( strSelection ) - - PLUSIEURS_BASE_Panel.add_valeur_plusieurs_base( self, name ) - if msg: - self.parent.appli.affiche_infos(msg) - self.erase_valeur() - except: - print ' erreur add_valeur_plusieurs_base' #CS_pbruno : afficher boite de dialogue ici ? - - 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 - """ - PLUSIEURS_BASE_Panel.makeValeurPage(self,page) - self.c = Button( self.frame_choix, text='Visualiser',command=self.displayInSalomeGeom ) - self.c.place( relx=0.3, rely=0.0,relwidth=0.55) - - - def displayInSalomeGeom( self ): - if self.selected_valeur: - ok, msgError = self.parent.appli.displayShape( self.selected_valeur ) - if not ok: - self.parent.appli.affiche_infos(msgError) - - - - -# ------------------------------------------------------------------------------# -# classe SALOME_UNIQUE_BASE_Panel -# -# Commandes modifiées : -# - LIRE_MAILLAGE_UNITE -# Methodes surchargées : -# - makeValeurPage(self,page) -# -# ------------------------------------------------------------------------------# - -class SALOME_UNIQUE_BASE_Panel(UNIQUE_BASE_Panel): - -# ce dictionnaire va servir lors de la sortie d efficas -# a creer le fichier qui sera integre au config.txt -# pour relier une unite logique et un nom de fichier - - dict_fichier_unite={} - - - def SALOME_DONNEES_HOMARD_FICHIER_MED_MAILLAGE_N(self): - import salome - entrychaine=salome.sg.getAllSelected() - if entrychaine != '': - self.entry2.delete(0,END) - try: - SO = salome.myStudy.FindObjectID(entrychaine[0]) - except: - boo = 0 - SO = None - - FileName='' - if SO != None: - myBuilder = salome.myStudy.NewBuilder() - boo,FileAttr = myBuilder.FindAttribute(SO,"AttributeFileType") - if boo: - val=FileAttr.Value() - if (val !="FICHIERMED" and val != "FICHIER_RESU_MED"): - boo=0 - showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associ\xe9") - else: - boo,FileAttr = myBuilder.FindAttribute(SO,"AttributeExternalFileDef") - if boo : - FileName=FileAttr.Value() - else: - showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associ\xe9") - if FileName != '' : - self.entry.delete(0,END) - self.entry2.delete(0,END) - self.entry.insert(0,FileName) - self.entry2.insert(0,FileName) - self.valid_valeur() - - - def SALOME_DONNEES_HOMARD_TRAITEMENT_NOM_MED_MAILLAGE_N(self): - import salome - EntryName='' - entrychaine=salome.sg.getAllSelected() - if entrychaine != '': - self.entry2.delete(0,END) - try: - SO = salome.myStudy.FindObjectID(entrychaine[0]) - except: - boo = 0 - SO = None - - if SO is not None: - myBuilder = salome.myStudy.NewBuilder() - ok, AtName = myBuilder.FindAttribute(SO,"AttributeName") - if ok: - EntryName=AtName.Value() - - if EntryName != '': - self.entry.delete(0,END) - self.entry2.delete(0,END) - self.entry.insert(0,EntryName) - self.entry2.insert(0,EntryName) - self.valid_valeur() - - def SALOME_DONNEES_HOMARD_FICHIER_MED_MAILLAGE_NP1(self): - self.SALOME_DONNEES_HOMARD_FICHIER_MED_MAILLAGE_N() - - def SALOME_DEFI_GROUP_CREA_GROUP_MA_GROUP_MA(self): - #try: - if ( 1 == 1 ) : - selection, msg = self.parent.appli.selectGroupFromSalome() - if selection: - strSelection =str( selection ) - UNIQUE_BASE_Panel.valid_valeur(self,strSelection) - if msg: - self.parent.appli.affiche_infos(msg) - self.erase_valeur() - #except: - else : - print ' erreur ' - - - def redistribue_selon_simp(self): - genea = self.node.item.get_genealogie() - commande="SALOME" - for i in range(0,len( genea )) : - commande=commande+"_"+ genea[i] - # -------------------------------------------------------------- - # on verifie que la methode n est pas particularise - # sinon on appelle SALOME_DEFI_GROUP_CREA_GROUP_MA_GROUP_MA qui - # sert comme methode par defaut - # -------------------------------------------------------------- - try : - SALOME_UNIQUE_BASE_Panel.__dict__[commande](self) - except : - SALOME_UNIQUE_BASE_Panel.SALOME_DEFI_GROUP_CREA_GROUP_MA_GROUP_MA(self) - - - - def makeValeurPage(self,page): - """ - Crée la page de saisie d'une valeur à priori quelconque, - cad qui ne sont pas à choisir dans une liste prédéfinie - Ajout d'un bouton pour selectionner à partir de Salome - """ - UNIQUE_BASE_Panel.makeValeurPage(self,page) - self.b = Button(self.frame_valeur,text='Relier selection',command=self.redistribue_selon_simp) - self.b.place(relx=0.28,rely=0.4,relwidth=0.4) - -#--------------------------------------------------------------------------------------- -# Correspondances entre les classes eficas et les classes salome_eficas -#______________________________________________________________________________________ -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} - -dict_geom_numgroupe = { } -dict_geom_numface = { } diff --git a/InterfaceTK/patches.py b/InterfaceTK/patches.py deleted file mode 100644 index 0bd2fc4c..00000000 --- a/InterfaceTK/patches.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- 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 des modifications mineures du comportement - du noyau ou de validation -""" -import string - -if __name__ == "__main__": - import Noyau.N_CR - print Noyau.N_CR.encadre_message(motif='!', -texte="""- Il faut au moins un mot-clé parmi : ('DEBUT', 'POURSUITE') -- Il faut au moins un mot-clé parmi : ('FIN',) -- Il faut qu'au moins un objet de la liste : ('DEBUT', 'POURSUITE') soit suivi d'au moins un objet de la liste : ('FIN',) -ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,yyyyyyyyyyyyyyyy -""") - - - diff --git a/InterfaceTK/plusieursassdpanel.py b/InterfaceTK/plusieursassdpanel.py deleted file mode 100644 index 6375af36..00000000 --- a/InterfaceTK/plusieursassdpanel.py +++ /dev/null @@ -1,182 +0,0 @@ -# -*- 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 -import string,types,os -from Tkinter import * -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import panels -import images -from widgets import ListeChoix -from widgets import FenetreDeSelection - -from Noyau.N_CR import justify_text -from Editeur.utils import substract_list - -# Import des panels -from plusieurspanel import PLUSIEURS_Panel - -class PLUSIEURS_ASSD_Panel(PLUSIEURS_Panel): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de donner une liste de valeurs qui ne sont pas - à choisir dans une liste discrètes et qui sont de type dérivé d'ASSD - """ - def makeValeurPage(self,page): - """ - Génère la page de saisie de plusieurs noms de SD parmi un ensemble discret - de SD possibles, cad d'un type cohérent avec les types attendus par le mot-clé simple - """ - # On récupère la bulle d'aide du panneau, l'objet, l'aide, min et max (cardinalité de la liste), - # la liste des valeurs déjà affectées à l'objet courant et la liste des SD du bon type - bulle_aide=self.get_bulle_aide() - self.ajout_valeurs=None - objet_mc = self.node.item.get_definition() - aide = self.get_aide() - aide = justify_text(texte=aide) - min,max = self.node.item.GetMinMax() - l_valeurs = self.node.item.GetListeValeurs() - l_choix=self.node.item.get_sd_avant_du_bon_type() - l_choix.sort() - # remplissage du panneau - self.frame_valeurs = Frame(page) - self.frame_valeurs.place(relx=0.05,rely=0.05,relwidth=0.35,relheight=0.7) - self.frame_boutons_fleches = Frame(page) - self.frame_boutons_fleches.place(relx=0.4,rely=0.,relwidth=0.2,relheight=0.7) - self.frame_choix = Frame(page) - self.frame_choix.place(relx=0.6,rely=0.05,relwidth=0.35,relheight=0.7) - self.frame_boutons = Frame(page) - self.frame_boutons.place(relx=0.35,rely=0.87,relwidth=0.5,relheight=0.1) - liste_commandes_valeurs = (("",self.selectValeur), - ("",self.deselectValeur), - ("",self.sup_valeur_sans_into)) - liste_commandes_choix = (("",self.selectChoix), - ("",self.deselectChoix), - ("",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") - self.bouton_add = Button(self.frame_boutons_fleches, - image = images.get_image('arrow_left'), - command = self.add_eval_valeur_sans_into) - self.bouton_sup = Button(self.frame_boutons_fleches, - image = images.get_image('arrow_right'), - command = self.sup_valeur_sans_into) - self.bouton_accepter = Button(self.frame_boutons, - text='Valider', - command = lambda s=self,m=min,M=max : s.accepte_modifs_valeur(m,M)) - self.bouton_annuler = Button(self.frame_boutons, - text = 'Annuler', - command = self.annule_modifs_valeur) - 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 : - liste_marque=l_valeurs[-1] - self.Liste_valeurs.surligne(liste_marque) - self.Liste_choix.affiche_liste() - for fram in (self.frame_valeurs,self.frame_boutons_fleches,self.frame_choix,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) - - def add_eval_valeur_sans_into(self,valeurentree=None): - if valeurentree == None: - valeurentree = self.get_valeur() - valeur,validite=self.node.item.eval_valeur(valeurentree) - if not validite : - commentaire = "impossible d'évaluer : %s " %`valeurentree` - self.parent.appli.affiche_infos(commentaire) - return - self.add_valeur_sans_into(valeur) - - def get_bulle_aide(self): - """ - Retourne la bulle d'aide associée au panneau - """ - return """Un clic sur une valeur des deux listes la sélectionne. - - Un clic sur la flèche gauche stocke la valeur possible sélectionnée - dans la liste des valeurs que vous voulez affecter au mot-clé simple - - Un clic sur la flèche droite déstocke la valeur du mot-clé simple - sélectionnée (elle apparaît alors à nouveau comme choix possible - dans la liste des choix à droite) - - Cliquez sur 'Valider' pour affecter la liste des valeurs sélectionnées - au mot-clé simple courant - - Cliquez sur 'Annuler' pour restaurer la valeur du mot-clé simple - avant toute modification depuis le dernier 'Valider'""" - - def get_aide(self): - """ - Retourne la phrase d'aide indiquant de quel type doivent être les - valeurs que doit entrer l'utilisateur - """ - commentaire="" - mc = self.node.item.get_definition() - type = mc.type[0].__name__ - if len(mc.type)>1 : - for typ in mc.type[1:] : - type = type + ' ou '+typ.__name__ - if mc.min == mc.max: - commentaire="Une liste de "+`mc.min`+" objets de type "+type+" est attendue" - else : - commentaire="Une liste d'objets de type "+type+" est attendue (min="+`mc.min`+",max="+`mc.max`+')' - aideval=self.node.item.aide() - commentaire=commentaire +"\n"+ aideval - return commentaire - - - def sup_valeur(self,name=None): - """ - Supprime la valeur selectionnée de la liste des valeurs et la rajoute - à la liste des choix possibles - """ - liste_valeurs = self.Liste_valeurs.get_liste() - liste_valeurs.remove(self.selected_valeur) - liste_choix = self.node.item.get_definition().into - liste_choix = substract_list(liste_choix,liste_valeurs) - self.Liste_valeurs.put_liste(liste_valeurs) - self.Liste_choix.put_liste(liste_choix) - self.selected_valeur = None - - def erase_valeur(self): - pass - - def get_valeur(self): - """ - Retourne la valeur sélectionnée dans la liste des choix - """ - return self.selected_choix - - def display_valeur(self,val=None): - """ - Affiche la valeur passée en argument dans l'entry de saisie. - Par défaut affiche la valeur du mot-clé simple - """ - # Il n'y a pas d'entry pour ce type de panneau - return - - diff --git a/InterfaceTK/plusieursbasepanel.py b/InterfaceTK/plusieursbasepanel.py deleted file mode 100644 index 79840ce5..00000000 --- a/InterfaceTK/plusieursbasepanel.py +++ /dev/null @@ -1,541 +0,0 @@ -# -*- 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 -import string,types,os -from Tkinter import * -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import panels -import images -from widgets import showinfo -from widgets import askopenfilename -from widgets import ListeChoix -from widgets import FenetreDeSelection -from widgets import FenetreDeParametre - -from Noyau.N_CR import justify_text -from Ihm.I_LASSD import LASSD -from Extensions.parametre import PARAMETRE - -from Editeur.utils import substract_list -from plusieurspanel import PLUSIEURS_Panel -from uniqueassdpanel import UNIQUE_ASSD_Panel - -import fontes -import math - -class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de donner une liste de valeurs qui ne sont pas - à choisir dans une liste discrètes et qui sont de type de base : - entier, réel, string,... - """ - def makeValeurPage(self,page): - """ - Crée la page de saisie d'une liste de valeurs à priori quelconques, - cad qui ne sont pas à choisir dans une liste prédéfinie - """ - #print "Methode Utilisée par Salome" - # On récupère la bulle d'aide du panneau, l'objet, l'aide,min et max (cardinalité de la liste), - # et la liste des valeurs déjà affectées à l'objet courant - bulle_aide=self.get_bulle_aide() - objet_mc = self.node.item.get_definition() - aide = self.get_aide() - aide = justify_text(texte=aide) - min,max = self.node.item.GetMinMax() - l_valeurs = self.node.item.GetListeValeurs() - - # création des frames globales - self.frame1 = Frame(page,relief='groove',bd=2) - self.frame2 = Frame(page) - self.frame1.place(relx=0.,rely=0.,relwidth=1.,relheight=0.85) - self.frame2.place(relx=0.,rely=0.85,relwidth=1,relheight=0.15) - self.frame_right = Frame(self.frame1) - self.frame_right.place(relx=0.35,rely=0.,relwidth=0.65,relheight=1.) - - # création des frames internes - self.frame_valeurs = Frame(self.frame1) - self.frame_valeurs.place(relx=0.02,rely=0.05,relwidth=0.35,relheight=0.95) - self.frame_boutons_fleches = Frame(self.frame_right) - self.frame_boutons_fleches.place(relx=0.,rely=0.2,relwidth=0.2,relheight=0.5) - self.frame_choix = Frame(self.frame_right) - self.frame_choix.place(relx=0.2,rely=0.2,relwidth=0.7,relheight=0.8) - self.frame_aide = Frame(self.frame_right) - self.frame_aide.place(relx=0.1,rely=0.8,relwidth=0.8,relheight=0.2) - self.frame_boutons = Frame(self.frame2) - self.frame_boutons.place(relx=0.2,rely=0.,relwidth=1,relheight=1.) - for fram in (self.frame1,self.frame2,self.frame_right,self.frame_valeurs, - self.frame_boutons_fleches,self.frame_choix,self.frame_aide,self.frame_boutons): - fram.bind("",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)") - - # Création de l'entry ou de la liste des SD - # PN : pour ajouter les validators - self.label = Label(self.frame_choix,text="Valeur :") - self.make_entry(frame = self.frame_choix,command = self.add_valeur_plusieurs_base) - self.label.place(relx=0.05,rely=0.2) - - # Création d'un bouton "Importer ..." et d'un bouton "Parametres" sur le panel. - bouton_valeurs_fichier = Button(self.frame_choix, - text="Importer", - command=self.select_in_file) - bouton_valeurs_fichier.place(relx=0.28,rely=0.4,relwidth=0.6) - bouton_parametres = Button(self.frame_choix, text="Parametres", command=self.affiche_parametre) - bouton_parametres.place(relx=0.28,rely=0.6,relwidth=0.6) - self.ajout_valeurs = None - - # boutons Ajouter et Supprimer - self.bouton_add = Button(self.frame_boutons_fleches, - image = images.get_image('arrow_left'), - command = self.add_valeur_plusieurs_base) - self.bouton_sup = Button(self.frame_boutons_fleches, - image = images.get_image('arrow_right'), - command = self.sup_valeur_sans_into) - 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)) - 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) - # boutons Accepter et Annuler - self.bouton_accepter = Button(self.frame_boutons, - text='Valider', - command = lambda s=self,m=min,M=max : s.accepte_modifs_valeur(m,M)) - self.bouton_annuler = Button(self.frame_boutons, - text = 'Annuler', - command = self.annule_modifs_valeur) - 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) - - def valid_valeur(self): - self.add_valeur_plusieurs_base() - - def add_valeur_plusieurs_base(self,name=None): - if name != None : - valeur = name - else: - valeur,validite,commentaire=self.get_valeur() - if not validite : - self.parent.appli.affiche_infos(commentaire) - return - - atraiter=[] - if type(valeur) in (types.ListType,types.TupleType) : - 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 - else: # on n'attend pas un complexe - atraiter.append(v) - indice=indice+1 - else: - atraiter.append(valeur) - - for valeur in atraiter : - encorevalide=self.node.item.valide_item(valeur) - if encorevalide : - listecourante=self.Liste_valeurs.get_liste() - encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante) - if not encorevalide : encorevalide = -1 - self.add_valeur_sans_into(valeur,encorevalide) - - def select_in_file(self): - """ Permet d'ouvrir un fichier choisi par l'utilisateur. """ - nom_fichier = askopenfilename(title="Choix fichier :") - - if not nom_fichier: - return - - try: - f = open(nom_fichier, "rb") - selection_texte = f.read() - f.close() - self.ajout_valeurs = FenetreDeSelection(self, - self.node.item, - self.parent.appli, - titre="Sélection de valeurs", - texte=selection_texte) - except: - traceback.print_exc() - showinfo("Erreur de fichier","impossible d'ouvir le fichier "+nom_fichier) - - def get_bulle_aide(self): - """ - Retourne l'aide associée au panneau courant - """ - return """Taper dans la boîte de saisie de droite la valeur que - vous voulez affecter au mot-clé simple. - - Cliquez sur la flèche gauche ou pressez pour la faire glisser - dans la liste des valeurs que vous voulez affecter au mot-clé simple - - Un clic sur une valeur de la liste la sélectionne - - Un clic sur la flèche droite ou un double-clic retire la valeur - sélectionnée de la liste - - Cliquez sur 'Valider' pour que la nouvelle valeur désirée soit affectée - au mot-clé simple - - Cliquez sur 'Annuler' pour annuler toutes les modifications faites - depuis le dernier clic sur 'Valider'""" - - def get_aide(self): - """ - Retourne la phrase d'aide indiquant de quel type de base doivent être les valeurs - que saisit l'utilisateur - """ - commentaire="" - mc = self.node.item.get_definition() - d_aides = { 'TXM' : 'chaînes de caractères', - 'R' : 'réels', - 'I' : 'entiers', - 'C' : 'complexes'} - type = mc.type[0] - if not d_aides.has_key(type) : return 'Type de base inconnu' - if mc.min == mc.max: - commentaire="Une liste de "+d_aides[type]+" de longueur " + `mc.min` + " est attendue" - else : - commentaire="Une liste de "+d_aides[type]+" est attendue (min="+`mc.min`+",max="+`mc.max`+')' - - aideval=self.node.item.aide() - commentaire=commentaire +"\n"+aideval - return commentaire - - def make_entry(self,frame,command,x=0.28,y=0.2): - self.entry = Entry(frame,relief='sunken') - 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 - """ - commentaire = "" - if hasattr(self,'entry'): - # Traitement d'une entree unique - valeurentree = self.entry.get() - if (valeurentree == None or valeurentree ==""): - return None,0,"" - - #On tente une evaluation globale (ne fait pas de vérification de validité - #seulement une transformation de la chaine en objet équivalent) - 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: - # valeur= (self.typ_cplx.get(), - # string.atof(self.entry1.get()), - # string.atof(self.entry2.get())) - # return valeur,1,"" - # except: - # #traceback.print_exc() - # return None,0,"impossible d'évaluer la valeur d'entree" - - def erase_valeur(self): - """ - Efface la valeur donnée par l'utilisateur dans l'entry - """ - if hasattr(self,'entry'): - self.entry.delete(0,END) - else: - self.typ_cplx.set('RI') - self.entry1.delete(0,END) - self.entry2.delete(0,END) - - - def display_valeur(self,val=None): - """ - Affiche la valeur passée en argument dans l'entry de saisie. - Par défaut affiche la valeur du mot-clé simple - """ - if not val : - valeur = self.node.item.object.getval() - else: - valeur = val - if not valeur : return - - if hasattr(self,'entry'): - # Traitement d'une entree unique - self.entry.delete(0,END) - self.entry.insert(0,str(valeur)) - else: - # Traitement d'une entree de type complexe - typ_cplx,x1,x2=valeur - self.entry1.delete(0,END) - self.entry2.delete(0,END) - self.typ_cplx.set(typ_cplx) - self.entry1.setentry(x1) - self.entry2.setentry(x2) - -class PLUSIEURS_BASE_OR_UNELISTE_Panel(PLUSIEURS_BASE_Panel,UNIQUE_ASSD_Panel): - - 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) - aide2 = self.get_aide2() - aide2 = justify_text(texte=aide2) - min,max = self.node.item.GetMinMax() - l_valeurs = self.node.item.GetListeValeurs() - for i in l_valeurs: - if isinstance(i,LASSD) : - affiche_entry=l_valeurs - l_valeurs=() - - # Il faut traiter ici pour avoir le choix entre une liste - # deja constituee (listr8aster) ou manuelle - - # création des frames globales - self.frame1 = Frame(page,relief='groove',bd=2) - self.frame2 = Frame(page) - self.frame1.place(relx=0.,rely=0.,relwidth=1.,relheight=0.9) - self.frame2.place(relx=0.,rely=0.9,relwidth=1,relheight=0.1) - - # création des frames internes dans frame1 - self.frame_valeurs = Frame(self.frame1) - self.frame_valeurs.place(relx=0.02,rely=0.55,relwidth=0.35,relheight=0.45) - self.frame_haut = Frame(self.frame1) - self.frame_haut.place(relx=0.02,rely=0.02,relwidth=0.98,relheight=0.45) - self.frame_bas = Frame(self.frame1) - self.frame_bas.place(relx=0.37,rely=0.55,relwidth=0.63,relheight=0.45) - - # création des frames internes dans frame_right - self.frame_fleches = Frame(self.frame_bas) - self.frame_fleches.place(relx=0.,rely=0.4,relwidth=0.2,relheight=0.5) - self.frame_choix = Frame(self.frame_bas) - self.frame_choix.place(relx=0.2,rely=0.1,relwidth=0.75,relheight=1) - - # affichage de l'aide - self.aide = Label(self.frame_haut, text = aide, justify='center', anchor='center',) - self.aide.place(relx=0.72,rely=0.25,anchor='center',relwidth=1) - self.aide2 = Label(self.frame2, text = aide2,) - self.aide2.place(relx=0.4,rely=0.01,relwidth=0.6) - - # Création d'un bouton "Importer ..." et d'un bouton "Parametres" sur le panel. - bouton_valeurs_fichier = Button(self.frame_choix, - text="Importer", - command=self.select_in_file) - bouton_valeurs_fichier.place(relx=0.28,rely=0.0,relwidth=0.6) - bouton_parametres = Button(self.frame_choix, text="Parametres", command=self.affiche_parametre) - bouton_parametres.place(relx=0.28,rely=0.25,relwidth=0.6) - self.ajout_valeurs = None - - - # Création de la liste des SD - liste_noms_sd = self.node.item.get_sd_avant_du_bon_type_pour_type_de_base() - 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)) - self.listbox.place(relx=0.00,rely=0.00,relwidth=0.4) - - # On eneleve le label pour gagner de la place - #self.label = Label(self.frame_choix,text="Valeur :") - #self.label.place(relx=0.05,rely=0.85) - self.make_entry(frame = self.frame_choix,command = self.add_valeur_plusieurs_base,x=0.28,y=0.55) - - # boutons Ajouter et Supprimer - bouton_add = Button(self.frame_fleches, image = images.get_image('arrow_left'), - command = self.add_valeur_plusieurs_base) - bouton_sup = Button(self.frame_fleches, image = images.get_image('arrow_right'), - command = self.sup_valeur_sans_into) - bouton_add.place(relx=0.2,rely=0.25) - bouton_sup.place(relx=0.2,rely=0.70) - - - # boutons Accepter et Annuler dans frame2 - bouton_accepter = Button(self.frame2, text='Valider', - command = lambda s=self,m=min,M=max : s.accepte_modifs_valeur(m,M)) - bouton_annuler = Button(self.frame2, text = 'Annuler', - command = self.annule_modifs_valeur) - for but in (bouton_accepter,bouton_annuler): - but.pack(side='left',padx=5) - - # 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) non-prédéfinies(s)", - 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): - fram.bind("",lambda e,s=self,a=bulle_aide: s.parent.appli.affiche_aide(e,a)) - fram.bind("",self.parent.appli.efface_aide) - - self.Liste_valeurs.affiche_liste() - if len(l_valeurs) > 0 : - liste_marque=l_valeurs[-1] - self.Liste_valeurs.surligne(liste_marque) - - def get_aide(self): - """ - Retourne la phrase d'aide indiquant de quel type de base doivent être les valeurs - saisies par l'utilisateur - """ - commentaire="Ce motclef accepte soit un nom de liste déja définie soit une liste manuelle de valeurs" - return commentaire - - def get_aide2(self): - min,max = self.node.item.GetMinMax() - aideval=self.node.item.aide() - commentaire="min : " + str(min) + ", max : " + str(max) - aideval=commentaire + aideval - return aideval - - def choose_valeur_from_list(self,command): - """ - Affecte à valeur choisie la sélection courante dans la liste des choix proposés - Exécute command - """ - self.Liste_valeurs.liste=[] - self.Liste_valeurs.affiche_liste() - if len(self.listbox.get()) == 0 : return - choix = self.listbox.getcurselection()[0] - d={} - d["valeurentree"]=choix - apply(command,(self,),d) - - - - def tri(self,liste_noms_sd): - a=(3+8j) - d_types = { 'TXM' : type('A'), - 'R' : type(3.), - 'I' : type(0), - 'C' : type(a)} - - # On enleve seulement ceux qu'on peut - # Sur certaines listes, il est possible qu'on ne - # sache pas déterminer le type - listefinale=[] - typespossibles=self.node.item.object.definition.type - typecherche = None - for t in typespossibles: - if t in d_types.keys() : - 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) - return listefinale - diff --git a/InterfaceTK/plusieursintopanel.py b/InterfaceTK/plusieursintopanel.py deleted file mode 100644 index 5486b458..00000000 --- a/InterfaceTK/plusieursintopanel.py +++ /dev/null @@ -1,162 +0,0 @@ -# -*- 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 -import string,types,os -from Tkinter import * -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import panels -import images -from widgets import ListeChoix -from widgets import FenetreDeSelection - -from Noyau.N_CR import justify_text -from Editeur.utils import substract_list - -# Import des panels -from plusieurspanel import PLUSIEURS_Panel - -class PLUSIEURS_INTO_Panel(PLUSIEURS_Panel): - """ - Classe servant à définir le panneau permettant d'afficher et de saisir une - liste de valeurs à choisir parmi une liste discrètes de valeurs possibles - """ - def makeValeurPage(self,page): - """ - Génère la page de saisie de plusieurs valeurs parmi un ensemble discret - de possibles - """ - self.ajout_valeurs = None - # On récupère la bulle d'aide du panneau, l'objet, min et max (cardinalité de la liste), - # la liste des choix et la liste des valeurs - aide = self.get_aide() - aide = justify_text(texte=aide) - bulle_aide=self.get_bulle_aide() - objet_mc = self.node.item.get_definition() - min,max = self.node.item.GetMinMax() - #l_choix=list(objet_mc.into) - l_valeurs = self.node.item.GetListeValeurs() - l_choix= self.node.item.get_liste_possible(l_valeurs) - # reinitialisation de l_valeurs - l_valeurs = self.node.item.GetListeValeurs() - - # remplissage du panneau - self.frame_valeurs = Frame(page) - self.frame_valeurs.place(relx=0.05,rely=0.05,relwidth=0.35,relheight=0.7) - self.frame_boutons_fleches = Frame(page) - self.frame_boutons_fleches.place(relx=0.4,rely=0.,relwidth=0.2,relheight=0.7) - self.frame_choix = Frame(page) - self.frame_choix.place(relx=0.6,rely=0.05,relwidth=0.35,relheight=0.7) - self.frame_boutons = Frame(page) - self.frame_boutons.place(relx=0.35,rely=0.87,relwidth=1,relheight=0.1) - self.frame_aide = Frame(page) - self.frame_aide.place(relx=0.1,rely=0.75,relwidth=1,relheight=0.15) - liste_commandes_valeurs = (("",self.selectValeur), - ("",self.deselectValeur), - ("",self.sup_valeur)) - liste_commandes_choix = (("",self.selectChoix), - ("",self.deselectChoix), - ("",self.add_choix)) - self.Liste_valeurs = ListeChoix(self,self.frame_valeurs, - l_valeurs,liste_commandes = liste_commandes_valeurs, - titre="Valeur(s) actuelle(s)") - self.Liste_choix = ListeChoix(self,self.frame_choix,l_choix, - liste_commandes = liste_commandes_choix, - titre= "Valeurs possibles") - self.bouton_add = Button(self.frame_boutons_fleches, - #text="<--", - image = images.get_image('arrow_left'), - command = self.add_choix) - self.bouton_sup = Button(self.frame_boutons_fleches, - #text="-->", - image = images.get_image('arrow_right'), - command = self.sup_valeur) - self.bouton_accepter = Button(self.frame_boutons, - text='Valider', - command = lambda s=self,m=min,M=max : s.accepte_modifs_valeur(m,M)) - self.bouton_annuler = Button(self.frame_boutons, - text = 'Annuler', - command = self.annule_modifs_valeur) - 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 : - liste_marque=l_valeurs[-1] - self.Liste_valeurs.surligne(liste_marque) - self.selectValeur(l_valeurs[-1]) - self.Liste_choix.affiche_liste() - for fram in (self.frame_valeurs,self.frame_boutons_fleches,self.frame_choix,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) - 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.3,rely=0.5,anchor='center',relwidth=1) - - def get_aide(self): - """ - Retourne la phrase d'aide indiquant de quel type de base doivent être les valeurs - que saisit l'utilisateur - """ - commentaire="" - mc = self.node.item.get_definition() - d_aides = { 'TXM' : 'chaînes de caractères', - 'R' : 'réels', - 'I' : 'entiers', - 'C' : 'complexes'} - type = mc.type[0] - if not d_aides.has_key(type) : - if mc.min == mc.max: - return str(mc.min)+" valeur(s) est(sont) attendue(s)" - else : - return "entrez entre "+str(mc.min)+" et "+str(mc.max)+" valeurs" - if mc.min == mc.max: - 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" - aideval=self.node.item.aide() - commentaire=commentaire + "\n" + aideval - return commentaire - - def get_bulle_aide(self): - """ - Retourne la bulle d'aide du panneau (affichée par clic droit) - """ - return """Un clic sur une valeur des deux listes la sélectionne. - - Un clic sur la flèche gauche stocke la valeur possible sélectionnée - dans la liste des valeurs que vous voulez affecter au mot-clé simple - - Un clic sur la flèche droite déstocke la valeur du mot-clé simple - sélectionnée (elle apparaît alors à nouveau comme choix possible - dans la liste des choix à droite) - - Cliquez sur 'Valider' pour affecter la liste des valeurs sélectionnées - au mot-clé simple courant - - Cliquez sur 'Annuler' pour restaurer la valeur du mot-clé simple - avant toute modification depuis le dernier 'Valider'""" - diff --git a/InterfaceTK/plusieurspanel.py b/InterfaceTK/plusieurspanel.py deleted file mode 100644 index 2db451ae..00000000 --- a/InterfaceTK/plusieurspanel.py +++ /dev/null @@ -1,176 +0,0 @@ -# -*- 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 -import string,types,os -from Tkinter import * -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import panels -import images -from widgets import ListeChoix -from widgets import FenetreDeSelection - -from Noyau.N_CR import justify_text -from Editeur.utils import substract_list - -# Import des panels -from newsimppanel import newSIMPPanel - - -class PLUSIEURS_Panel(newSIMPPanel): - """ - Classe virtuelle servant de classe mère à toutes celles définissant - un panneau pour un mot-clé simple qui attend une liste de valeurs - """ - def accepte_modifs_valeur(self,min,max,liste=None): - """ - Méthode qui récupère la liste des valeurs donnée par l'utilisateur - et l'affecte au mot-clé courant. - le parametre None n'est pas rempli sauf par l appel a partir de fonctionpanel - """ - if liste==None: - 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 : - l_valeurs.append(val) - - longueur = len(l_valeurs) - if longueur < min or longueur > max : - self.parent.appli.affiche_infos("Valeur refusée : nombre d'éléments incorrect dans la liste") - return - if longueur > 1: - valeur = tuple(l_valeurs) - elif longueur == 1: - valeur = l_valeurs[0] - else: - valeur = None - - self.parent.appli.affiche_infos("Valeur acceptée") - self.record_valeur(valeur) - # fermeture de la fenêtre de sélection - if self.ajout_valeurs: - self.ajout_valeurs.quit() - - def annule_modifs_valeur(self): - """ - RAZ de la liste des valeurs (annule toutes les valeurs saisies par l'utilisateur) - """ - self.node.select() - # fermeture de la fenêtre de sélection - if self.ajout_valeurs: - self.ajout_valeurs.quit() - - def add_valeur_sans_into(self,name=None,encorevalide=1): - """ - 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 peut prendre les valeurs suivantes : - - - valeur 1 si le validateur trouve l item et la liste correctes - - valeur 0 si le validateur trouve la valeur de l item incorrecte - - valeur -1 si le validateur trouve la liste incorrecte - """ - valeur = name - commentaire="Valeur incorrecte : ajout à la liste refusé" - testvalide=1 - - # Pas de traitement des valeurs nulles ( a priori clic involontaire - if (valeur == None or valeur =="") : - commentaire = "Pas de saisie des valeurs nulles" - encorevalide = -2 - testtype=0 - else : - testtype,comment = self.node.item.object.verif_type(valeur) - if not testtype : - commentaire =comment - 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 - 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é" - - if testvalide and (encorevalide == 1): - min,max = self.node.item.GetMinMax() - - if testtype : - liste_valeurs = self.Liste_valeurs.get_liste() - if len(liste_valeurs) >= max : - commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé" - else : - if (self.Liste_valeurs.selection != None): - ligne=self.Liste_valeurs.cherche_selected_item() - liste_valeurs.insert(ligne,valeur) - else : - liste_valeurs.append(valeur) - try : - self.set_valeur_texte(str(self.entry.get())) - except : - pass - self.Liste_valeurs.put_liste(liste_valeurs) - self.erase_valeur() - commentaire="Nouvelle valeur acceptée" - else : - commentaire ="Type de la valeur incorrecte" - - self.parent.appli.affiche_infos(commentaire) - - def sup_valeur_sans_into(self,name=None): - """ - Méthode qui sert à retirer de la liste des valeurs la valeur sélectionnée - """ - try: - self.Liste_valeurs.remove_selected_item() - self.display_valeur(self.selected_valeur) - self.selected_valeur = None - except: - # la valeur sélectionnée n'est pas dans la liste - return - - def display_valeur(self,val=None): - """ - Affiche la valeur passée en argument dans l'entry de saisie. - Par défaut affiche la valeur du mot-clé simple - """ - if not val : - #valeur = self.node.item.getval() - valeur = self.node.item.object.getval() - else: - valeur = val - self.entry.delete(0,END) - if not valeur : return - self.entry.insert(0,str(valeur)) - diff --git a/InterfaceTK/readercata.py b/InterfaceTK/readercata.py deleted file mode 100644 index b4d827ed..00000000 --- a/InterfaceTK/readercata.py +++ /dev/null @@ -1,444 +0,0 @@ -# -*- 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 sert à lire un catalogue et à construire - un objet CataItem pour Eficas. - Il s'appuie sur la classe READERCATA -""" -# Modules Python -import time -import os,sys,py_compile -import traceback -import cPickle -import Pmw -import re - -# Modules Eficas -from Editeur import analyse_catalogue -from Editeur import autre_analyse_cata -from Editeur import uiinfo -from Noyau.N_CR import CR -from widgets import showinfo,showerror -from widgets import Fenetre -import fontes - -from Editeur.utils import init_rep_cata_dev - - -class READERCATA: - - menu_defs=[ - ('Catalogue',[ - ("Rapport de validation catalogue",'visuCRCATA'), - ] - ) - ] - - button_defs=[] - - def __init__(self,appli,parent): - self.appli=appli - self.parent=parent - self.code=self.appli.code - self.appli.format_fichier.set('python') - self.version_code=self.appli.version_code - self.fic_cata=None - self.version_cata=None - self.OpenCata() - self.cataitem=None - - def OpenCata(self): - """ - Ouvre le catalogue standard du code courant, cad le catalogue présent - dans le répertoire Cata - """ - if self.appli.ihm == "TK" : - import splash - message1 = "Compilation des fichiers Eficas \n\n Veuillez patienter ..." - if self.appli.test == 0 and self.appli.ihm=="TK" : - splash._splash.configure(text = message1) - self.configure_barre(4) - - liste_cata_possibles=[] - for catalogue in self.appli.CONFIGURATION.catalogues: - if catalogue[0] == self.code : - liste_cata_possibles.append(catalogue) - - if len(liste_cata_possibles)==0: - showerror("Import du catalogue","Pas de catalogue defini pour le code %s" % self.code) - self.appli.quit() - sys.exit(1) - - if self.version_code is not None: - # La version a ete fixee - for cata in liste_cata_possibles: - if self.version_code == cata[1]: - self.fic_cata = cata[2] - self.appli.format_fichier.set(cata[3]) - elif len(liste_cata_possibles)==1: - self.fic_cata = liste_cata_possibles[0][2] - self.version_code = liste_cata_possibles[0][1] - self.appli.format_fichier.set(liste_cata_possibles[0][3]) - else: - # plusieurs catalogues sont disponibles : il faut demander à l'utilisateur - # lequel il veut utiliser ... - self.ask_choix_catalogue() - - if self.fic_cata == None : - print "Pas de catalogue pour code %s, version %s" %(self.code,self.version_code) - sys.exit(0) - - # Determinination du repertoire materiau - v_codeSansPoint=self.version_code - v_codeSansPoint=re.sub("\.","",v_codeSansPoint) - chaine="rep_mat_"+v_codeSansPoint - if hasattr(self.appli.CONFIGURATION,chaine): - a=getattr(self.appli.CONFIGURATION,chaine) - else : - try : - a=self.appli.CONFIGURATION.dRepMat[self.version_code] - except : - if self.code == "ASTER" : - print "Probleme avec le repertoire materiau" - a='.' - self.appli.CONFIGURATION.rep_mat=a - - # détermination de fic_cata_c et fic_cata_p - self.fic_cata_c = self.fic_cata + 'c' - self.fic_cata_p = os.path.splitext(self.fic_cata)[0]+'_pickled.py' - - # import du catalogue - if self.appli.test == 0 and self.appli.ihm=="TK" : - splash._splash.configure(text = "Debut import_cata: %d s" % time.clock()) - self.cata = self.import_cata(self.fic_cata) - self.update_barre() - if self.appli.test == 0 and self.appli.ihm=="TK" : - 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) - self.appli.quit() - sys.exit(1) - # - # analyse du catalogue (ordre des mots-clés) - # - if self.appli.test == 0 and self.appli.ihm=="TK" : - splash._splash.configure(text = "Debut Retrouve_Ordre: %d s" % time.clock()) - # Retrouve_Ordre_Cata_Standard fait une analyse textuelle du catalogue - # remplacé par Retrouve_Ordre_Cata_Standard_autre qui utilise une numerotation - # des mots clés à la création - #self.Retrouve_Ordre_Cata_Standard() - self.Retrouve_Ordre_Cata_Standard_autre() - self.update_barre() - if self.appli.test == 0 and self.appli.ihm=="TK" : - splash._splash.configure(text = "Fin Retrouve_Ordre: %d s" % time.clock()) - # - # analyse des données liées à l'IHM : UIinfo - # - uiinfo.traite_UIinfo(self.cata) - self.update_barre() - - # - # traitement des clefs documentaires - # - self.traite_clefs_documentaires() - - # chargement et analyse des catalogues développeur (le cas échéant) - # - if self.appli.CONFIGURATION.isdeveloppeur == 'OUI' : - init_rep_cata_dev(self.fic_cata,self.appli.CONFIGURATION.path_cata_dev) - fic_cata_dev = os.path.join(self.appli.CONFIGURATION.path_cata_dev,'cata_developpeur.py') - if os.path.isfile(fic_cata_dev): - # il y a bien un catalogue développeur : il faut récupérer le module_object associé ... - test = self.compile_cata(fic_cata_dev,fic_cata_dev+'c') - if not test : - showinfo("Compilation catalogue développeur", - "Erreur dans la compilation du catalogue développeur") - self.cata = (self.cata,) - else: - self.cata_dev =self.import_cata(fic_cata_dev) - #self.Retrouve_Ordre_Cata_Developpeur() - self.Retrouve_Ordre_Cata_Developpeur_autre() - self.cata = (self.cata,self.cata_dev) - else: - self.cata = (self.cata,) - else: - self.cata = (self.cata,) - titreSuite=" avec le catalogue " + os.path.basename(self.fic_cata) - titre=self.appli.titre+titreSuite - if self.appli.top: - self.appli.top.title(titre) - self.appli.titre=titre - - - def import_cata(self,cata): - """ - Réalise l'import du catalogue dont le chemin d'accès est donné par cata - """ - if self.appli.test == 0 and self.appli.ihm=="TK" : - import splash - splash._splash.configure(text = "Chargement du catalogue") - nom_cata = os.path.splitext(os.path.basename(cata))[0] - rep_cata = os.path.dirname(cata) - sys.path[:0] = [rep_cata] - try : - o=__import__(nom_cata) - return o - except Exception,e: - traceback.print_exc() - return 0 - - def Retrouve_Ordre_Cata_Standard_autre(self): - """ - Construit une structure de données dans le catalogue qui permet - à EFICAS de retrouver l'ordre des mots-clés dans le texte du catalogue. - Pour chaque entité du catlogue on crée une liste de nom ordre_mc qui - contient le nom des mots clés dans le bon ordre - """ - self.cata_ordonne_dico,self.appli.liste_simp_reel=autre_analyse_cata.analyse_catalogue(self.cata) - - def Retrouve_Ordre_Cata_Standard(self): - """ - Retrouve l'ordre des mots-clés dans le catalogue, cad : - - si ce dernier a été modifié, relance l'analyse du catalogue pour déterminer - l'ordre des mots-clés dans le catalogue - - s'il n'a pas été modifié, relie le fichier pickle - """ - time1 = os.path.getmtime(self.fic_cata) - try : - time2 = os.path.getmtime(self.fic_cata_p) - except: - time2 = 0 - if time2 > time1 : - # l'objet catalogue n'a pas été modifié depuis le dernier "pickle" - self.Get_Ordre_Cata() - else : - # le catalogue a été modifié depuis le dernier "pickle" : - # il faut retrouver l'ordre du catalogue et refaire pickle - self.Get_Ordre_Cata(mode='cata') - self.appli.affiche_infos("Catalogue standard chargé") - - def Retrouve_Ordre_Cata_Developpeur(self): - """ - Retrouve l'ordre des mots-clés dans le catalogue, cad : - - si ce dernier a été modifié, relance l'analyse du catalogue pour déterminer - l'ordre des mots-clés dans le catalogue - - s'il n'a pas été modifié, relie le fichier pickle - """ - if self.code != 'ASTER' : return - fic_cata = os.path.join(self.appli.CONFIGURATION.path_cata_dev,'cata_developpeur.py') - message="Chargement catalogue développeur présent dans :\n %s..." % self.appli.CONFIGURATION.path_cata_dev - if self.appli.test == 0 and self.appli.ihm=="TK" : - splash._splash.configure(text = message,barre='oui') - cata_dev_ordonne = analyse_cata.analyse_catalogue(self,self.fic_cata) - self.cata_dev_ordonne_cr = cata_dev_ordonne.cr - cata_dev_ordonne_dico = cata_dev_ordonne.entites - self.cata_ordonne_dico.update(cata_dev_ordonne_dico) - self.appli.affiche_infos(" catalogue(s) développeur(s) chargé(s)" ) - - def Retrouve_Ordre_Cata_Developpeur_autre(self): - """ - Retrouve l'ordre des mots-clés dans le catalogue, cad : - - si ce dernier a été modifié, relance l'analyse du catalogue pour déterminer - l'ordre des mots-clés dans le catalogue - - s'il n'a pas été modifié, relie le fichier pickle - """ - if self.code != 'ASTER' : return - message="Chargement catalogue développeur présent dans :\n %s..." % self.appli.CONFIGURATION.path_cata_dev - if self.appli.test == 0 and self.appli.ihm=="TK": - splash._splash.configure(text = message,barre='oui') - cata_dev_ordonne_dico,self.appli.liste_simp_reel=autre_analyse_cata.analyse_catalogue(self.cata) - self.cata_ordonne_dico.update(cata_dev_ordonne_dico) - self.appli.affiche_infos(" catalogue(s) développeur(s) chargé(s)" ) - - def Get_Ordre_Cata(self,mode='pickle'): - """ - Retrouve l'ordre du catalogue : - - mode='pickle ': tente de relire le fichier pickle et sinon lance l'analyse du catalogue - - mode='cata' : force l'analyse du catalogue directement sans relire le pickle - """ - if mode == 'pickle' : - try: - f = open(self.fic_cata_p) - u = cPickle.Unpickler(f) - if self.appli.test == 0 and self.appli.ihm=="TK" : - splash._splash.configure(text = "Analyse du catalogue") - self.cata_ordonne_dico = u.load() - f.close() - except : - # on peut ne pas arriver à relire le fichier pickle s'il a été altéré - # ou (le plus probable) s'il a été créé sous un autre OS - self.Get_Ordre_Cata(mode='cata') - elif mode == 'cata': - if self.appli.test == 0 and self.appli.ihm=="TK" : - splash._splash.configure(text = "Analyse du catalogue",barre='oui') - cata_ordonne = analyse_catalogue.analyse_catalogue(self,self.fic_cata) - self.cata_ordonne_cr = cata_ordonne.cr - self.cata_ordonne_dico = cata_ordonne.entites - splash._splash.configure(text = "Sauvegarde des informations sur le catalogue") - f = open(self.fic_cata_p,'w+') - p = cPickle.Pickler(f) - p.dump(self.cata_ordonne_dico) - f.close() - else : - raise Exception("Appel à un mode inconnu de Get_Ordre_Cata : %s" % mode) - return - - def ask_choix_catalogue(self): - """ - Ouvre une fenêtre de sélection du catalogue dans le cas où plusieurs - ont été définis dans Accas/editeur.ini - """ - # construction du dictionnaire et de la liste des catalogues - self.dico_catalogues = {} - defaut = None - for catalogue in self.appli.CONFIGURATION.catalogues: - if catalogue[0] == self.code : - self.dico_catalogues[catalogue[1]] = catalogue - if len(catalogue) == 5 : - if catalogue[4]=='defaut' : defaut = catalogue[1] - liste_choix = self.dico_catalogues.keys() - liste_choix.sort() - # test si plusieurs catalogues ou non - if len(liste_choix) == 0: - showerror("Aucun catalogue déclaré pour %s" %self.code) - self.appli.quit() - sys.exit(1) - elif len(liste_choix) == 1: - self.fic_cata = self.dico_catalogues[liste_choix[0]][2] - self.version_code = liste_choix[0] - return - # création d'une boîte de dialogue modale - import splash - self.fenetre_choix_cata = Pmw.Dialog(splash._splash, #avec self.parent, ne marche pas sous Windows - buttons=('OK','ANNULER'), - defaultbutton = 'OK', - title = "Choix d'une version du code %s" %self.code, - command = self.chooseCata) - # construction des radioboutons - label = `len(liste_choix)`+' versions du code %s sont disponibles\n' %self.code - label = label + 'Veuillez choisir celle avec laquelle vous souhaitez travailler :' - self.radiobutton = Pmw.RadioSelect(self.fenetre_choix_cata.interior(), - buttontype='radiobutton', - labelpos = 'w', - label_text = label, - label_font = fontes.standard, - orient='vertical') - for choix in liste_choix : - self.radiobutton.add(choix) - if defaut == None : - # aucun catalogue par défaut n'a été spécifié dans Accas/editeur.ini - defaut = liste_choix[0] - self.radiobutton.invoke(defaut) - self.radiobutton.pack(fill='x',padx=10,pady=10) - # centrage de la fenêtre - self.fenetre_choix_cata.activate(geometry='centerscreenalways') - - def chooseCata(self,txt): - """ - Méthode activée lorsque l'utilisateur a fait son choix et cliqué sur 'OK' ou sur 'ANNULER' - """ - if txt == 'OK' : - version_cata = self.radiobutton.getcurselection() - self.fic_cata = self.dico_catalogues[version_cata][2] - self.version_code = version_cata - self.appli.format_fichier.set(self.dico_catalogues[version_cata][3]) - self.fenetre_choix_cata.destroy() - else: - self.parent.destroy() - - def compile_cata(self,cata,catac): - """ - Teste si le catalogue a bien besoin d'être recompilé et si oui, le compile et - affiche un message dans le splash . Retourne 1 si la compilation s'est bien déroulée, - 0 sinon. - """ - time1 = os.path.getmtime(cata) - try: - time2 = os.path.getmtime(catac) - except: - time2 = 0 - if time1 > time2: - try: - # le catalogue doit être recompilé avant d'être importé - if self.appli.test == 0 and self.appli.ihm=="TK" : - splash._splash.configure(text="Compilation du catalogue\nCela peut prendre plusieurs secondes ...") - py_compile.compile(cata) - except: - return 0 - return 1 - - -#-------------------------------------------------------------------------------- -# Méthodes concernant la barre de progression lors de l'analyse du catalogue -#-------------------------------------------------------------------------------- - - def configure_barre(self,nbcommandes): - """ Configure la barre de progression en lui passant comme paramètre le - nombre de commandes du catalogue qui lui sert à déterminer la longueur de son incrément """ - try: - if self.appli.test == 0 and self.appli.ihm=="TK" : - splash._splash.configure(barre='oui',ratio = nbcommandes) - except: - pass - - def update_barre(self): - """ Update la position de la barre de progression : la fait progresser de son incrément """ - try: - if self.appli.test == 0 and self.appli.ihm=="TK" : - splash._splash.update_barre() - except: - pass - - def visuCRCATA(self): - """ - Méthode permettant l'affichage du rapport de validation - """ - cr = CR( debut = "Début rapport de validation du catalogue", - fin = "Fin rapport de validation du catalogue") - titre="rapport de validation du catalogue" - if hasattr(self,'cata_ordonne_cr') : - cr.add(self.cata_ordonne_cr) - if hasattr(self,'cata_dev_ordonne_cr') : - cr.add(self.cata_dev_ordonne_cr) - for cata in self.cata: - if hasattr(cata,'JdC'): - cr.add(cata.JdC.report()) - texte_cr = str(cr) - self.visu_texte_cr = Fenetre(self.appli,titre=titre,texte=texte_cr) - - - def traite_clefs_documentaires(self): - try: - self.fic_cata_clef=os.path.splitext(self.fic_cata_c)[0]+'_clefs_docu' - f=open(self.fic_cata_clef) - except: - #print "Pas de fichier associé contenant des clefs documentaires" - return - - dict_clef_docu={} - for l in f.readlines(): - clef=l.split(':')[0] - docu=l.split(':')[1] - docu=docu[0:-1] - dict_clef_docu[clef]=docu - for oper in self.cata.JdC.commandes: - if dict_clef_docu.has_key(oper.nom): - oper.docu=dict_clef_docu[oper.nom] diff --git a/InterfaceTK/shellpanel.py b/InterfaceTK/shellpanel.py deleted file mode 100644 index 6bd5a104..00000000 --- a/InterfaceTK/shellpanel.py +++ /dev/null @@ -1,95 +0,0 @@ -# -*- 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 -import string,types,os -from Tkinter import * -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -#import panels -#import images -#from widgets import ListeChoix -#from widgets import FenetreDeSelection - -from Noyau.N_CR import justify_text -from Editeur.utils import substract_list -from newsimppanel import newSIMPPanel - - -class SHELLPanel(newSIMPPanel): - """ - Classe Panel utilisé pour les mots-clés simples qui attendent un shell pour valeur - """ - - def makeValeurPage(self,page): - """ - Affiche la page concernant l'objet pointé par self qui attend un shell - """ - objet_mc = self.node.item.get_definition() - aide = self.gen_aide() - aide = justify_text(texte=aide) - self.frame = Frame(page) - self.frame.place(relx=0,rely=0,relwidth=1,relheight=1) - label_aide = Label(self.frame,text = aide) - label_aide.place(relx=0.5,rely=0.1,anchor='center') - self.text = Text(self.frame,bg='gray95') - self.text.place(relx=0.2,rely=0.2,relwidth=0.6,relheight=0.6) - but_val = Button(self.frame,text='Valider',command = self.valide_shell) - but_ann = Button(self.frame,text='Annuler',command = self.annule_shell) - but_val.place(relx=0.35,rely=0.9,anchor='center') - but_ann.place(relx=0.65,rely=0.9,anchor='center') - self.display_valeur() - - def gen_aide(self): - """ - Retourne une chaîne de caractères d'aide sur la valeur qu'attend l'objet - pointé par self - """ - return "Un shell est attendu" - - def valide_shell(self,event=None): - """ - Récupère la valeur saisie par l'utilisateur dans self.text - et la stocke dans l'objet MCSIMP courant - """ - texte = self.text.get(1.0,END) - self.record_valeur(texte) - - def annule_shell(self,event=None): - """ - Annule toute saisie dans self.text - """ - self.text.delete(0,END) - - def display_valeur(self,val=None): - """ - Affiche la valeur de l'objet pointé par self - """ - if val != None : - valeur = val - else: - valeur = self.node.item.get_valeur() - if valeur == None or valeur == '': return - self.text.insert(END,valeur) - diff --git a/InterfaceTK/splash.py b/InterfaceTK/splash.py deleted file mode 100644 index 2918ddfe..00000000 --- a/InterfaceTK/splash.py +++ /dev/null @@ -1,150 +0,0 @@ -# -*- 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 permet de créer, mettre à jour et détruire - un écran Splash -""" -from Tkinter import * - -from centerwindow import centerwindow -from Tools.foztools.foztools import Slider -import fontes -import images - -_splash=None - -def init_splash(*pos,**args): - global _splash - _splash=SplashScreen(*pos,**args) - -def fini_splash(): - global _splash - _splash.quit() - _splash=None - -class SplashScreen(Toplevel): - """ - Provides a splash screen. Usage: - Subclass and override 'CreateWidgets()' - In constructor of main window/application call - - S = SplashScreen(main=self) (if caller is Toplevel) - - S = SplashScreen(main=self.master) (if caller is Frame) - - S.quit() after you are done creating your widgets etc. - """ - def __init__(self, master=None,**args): - Toplevel.__init__(self, master, relief='groove', - borderwidth=5) - self.main = master - if self.main != None : - self.main.iconify() - self.withdraw() - self.frame = Frame(self) - self.frame.pack(expand=1,fill='both') - self.init(args) - self.geometry("300x200") - self.resizable(0,0) - centerwindow(self) - self.CreateWidgets() - self.deiconify() - - def init(self,args={}): - self.text = StringVar() - self.text.set('') - self.text2 = StringVar() - self.text2.set('') - self.icone = 'logo_edf.gif' - self.barre = 'non' - if args == {} : return - if args.has_key('text'): - self.text.set(args['text']) - if args.has_key('info'): - self.text2.set(args['info']) - if args.has_key('titre'): - self.title(args['titre']) - if args.has_key('code'): - self.code = args['code'] - else: - self.code = 'inconnu' - if args.has_key('icone'): - self.icone = args['icone'] - if self.code == 'ASTER' : - self.icone = 'code_aster.gif' - elif self.code == 'SATURNE': - self.icone = 'code_saturne.gif' - elif self.code == 'DESCARTES': - self.icone = 'code_descartes.gif' - - def CreateWidgets(self): - self.catIcon = images.get_image(self.icone) - self.label = Label(self.frame, image=self.catIcon) - self.label.pack(side=TOP) - self.label = Label(self.frame, textvariable=self.text,font = fontes.standard_gras) - self.label.pack(side=TOP,expand=1,fill='both') - self.label2 = Label(self.frame, textvariable=self.text2,font = fontes.standard_italique) - self.label2.pack(side=TOP,expand=1,fill='both') - self.progress = Slider(self.frame,value=0,max=100,orientation='horizontal', - fillColor='#00008b',width=200,height=30, - background='white',labelColor='red') - centerwindow(self) - - def update_barre(self,event=None): - """ Permet de faire avancer la barre de progression """ - try: - self.progress.value = self.progress.value+self.increment - self.progress.update() - except: - pass - - def configure_barre(self): - """ - Calcule l'incrément de progression de la barre en fonction - du nombre d'opérations à effectuer afin que le compteur - soit à 100% à la fin des opérations - """ - self.increment = 100./self.ratio - self.progress.update() - - def configure(self,**args): - if args.has_key('text'): - self.text.set(args['text']) - if args.has_key('info'): - self.text2.set(args['info']) - if args.has_key('titre'): - self.title(args['titre']) - if args.has_key('barre'): - old = self.barre - self.barre = args['barre'] - if self.barre == 'oui' and old == 'non': - self.progress.frame.pack(in_=self.frame,side='top') - elif self.barre == 'non' and old == 'oui': - self.progress.frame.pack_forget() - if args.has_key('ratio'): - self.ratio = args['ratio'] - self.configure_barre() - self.update() - - def quit(self): - self.progress = None - self.destroy() - if self.main: - centerwindow(self.main,parent='sans') - self.main.deiconify() - diff --git a/InterfaceTK/statusbar.py b/InterfaceTK/statusbar.py deleted file mode 100644 index e3b809b8..00000000 --- a/InterfaceTK/statusbar.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- 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 -import Tkinter -import types - -class STATUSBAR: - 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, - fg='black', - text='', - justify='left', - relief='sunken', - height=3, - bg='gray95') - self.label.pack(side='left',expand=1,fill='both') - - def affiche_infos(self,texte): - if len(texte)>150 : - texte_infos=texte[0:150] - else : - texte_infos=texte - self.label.configure(text=texte_infos,font=self.police) - - def reset_affichage_infos(self): - """ Efface tout message présent dans le panneau en bas d'EFICAS """ - self.affiche_infos('') - diff --git a/InterfaceTK/styles.py b/InterfaceTK/styles.py deleted file mode 100644 index c1fccf34..00000000 --- a/InterfaceTK/styles.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -import os -import prefs -name='prefs_'+prefs.code -prefsCode=__import__(name) -import basestyle -from basestyle import STYLE,style - -inistylefile=os.path.join(prefsCode.repIni,"style.py") -if os.path.isfile(inistylefile): - execfile(inistylefile) - -userstylefile=os.path.expanduser("~/.Eficas_install/style.py") -if os.path.isfile(userstylefile): - execfile(userstylefile) - -import fontes -for attr in dir(style): - if attr[0]=='_':continue - if not hasattr(fontes,attr):continue - setattr(fontes,attr,getattr(style,attr)) - - diff --git a/InterfaceTK/toolbar.py b/InterfaceTK/toolbar.py deleted file mode 100644 index 74248a09..00000000 --- a/InterfaceTK/toolbar.py +++ /dev/null @@ -1,145 +0,0 @@ -# -*- 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 -import string -from Tkinter import * -import Pmw - -# Modules Eficas -import images - -class TOOLBAR: - def __init__(self,appli,parent): - # parent représente l'objet graphique parent - self.parent=parent - # appli représente l'objet application parent - self.appli=appli - self.balloon = None - self.l_boutons_a_activer = [] - self.barreboutons=Frame(self.parent,relief='ridge',bd=2) - self.barreboutons.pack(anchor='nw',expand=0,fill=X) - # bouton Infos à l'extrême droite de la barre des boutons - b = Button(self.barreboutons, - image = images.get_image('About24'), - command = self.view_infos) - b.pack(side='right') - texte = "Infos EFICAS" - b.bind("",lambda e,s=self,but=b,t=texte : s.affiche_balloon(e,but,t,pos='right')) - b.bind("", self.efface_balloon) - - def appelle_commande(self,e,b,c): - try : - c() - except : - pass - - def inactive_boutons(self): - """ - Inactive les boutons de la liste self.l_boutons_a_activer - --> cette méthode est appelée dès qu'il n'y a pas de JDC courant - """ - for but in self.l_boutons_a_activer: - but.configure(state='disabled') - - def active_boutons(self): - """ - Active les boutons de la liste self.l_boutons_a_activer - --> cette méthode est appelée dès qu'il y a un JDC courant - """ - for but in self.l_boutons_a_activer: - but.configure(state='normal') - - def affiche_balloon(self,event,bouton,bulle,pos='left'): - """ - Affiche le balloon bulle associé au bouton bouton - """ - etat = bouton.cget('state') - if etat != 'normal' : return - geom = bouton.winfo_geometry() - l_args = string.split(geom,'+') - x = eval(l_args[1])+event.x+10 - self.balloon = Label(self.parent, - text = bulle, - background="yellow", - borderwidth=2, - relief='ridge') - if pos == 'left': - self.balloon.place(in_=self.parent,x=x,y=32) - else: - self.balloon.place(in_=self.parent,x=x,y=32,anchor='ne') - - def efface_balloon(self,event=None): - """ - Efface le balloon courant - """ - if self.balloon : - self.balloon.destroy() - self.balloon = None - - def view_infos(self): - """ - Permet d'afficher des infos sur la session courante d'EFICAS - """ - self.fen_infos = Pmw.Dialog(self.parent, - title = 'Informations session EFICAS', - buttons = ('Fermer',), - command = self.close_infos) - self.fen_infos.withdraw() - texte_infos = self.appli.get_texte_infos() - Label(self.fen_infos.interior(), - text = texte_infos, - anchor='center').pack(side='top',anchor='center') - self.fen_infos.activate(geometry = 'centerscreenalways') - - def close_infos(self,lbl): - """ - Ferme la fenêtre des infos - """ - self.fen_infos.destroy() - - def creer_boutons_appli_composant(self,l_boutons,appli_composant): - for bouton in l_boutons : - if not bouton : - # on veut afficher un bouton vide (=espace entre boutons) - Button(self.barreboutons, - image = images.get_image('Sep'), - state='disabled', - relief = 'flat').pack(side='left') - continue - nom_fic,commande,texte,statut = bouton - commande=getattr(appli_composant,commande) - b = Button(self.barreboutons, - image = images.get_image(nom_fic), - command = commande, - relief='flat') - b.pack(side='left') - b.bind("",lambda e,s=self,but=b,t=texte : s.affiche_balloon(e,but,t)) - b.bind("", self.efface_balloon) - b.bind("", lambda e,s=self,but=b,c=commande:s.appelle_commande(e,but,c)) - if statut != 'always': - self.l_boutons_a_activer.append(b) - - # inactive les boutons qui doivent l'être tant qu'aucun JDC courant - self.inactive_boutons() - - diff --git a/InterfaceTK/tooltip.py b/InterfaceTK/tooltip.py deleted file mode 100644 index 18fbabb5..00000000 --- a/InterfaceTK/tooltip.py +++ /dev/null @@ -1,127 +0,0 @@ -# -*- 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 propose la classe TOOLTIP pour - mettre en oeuvre les bulles d'aide -""" - -import Tkinter -import types - -def destruct(obj): - # assist in breaking circular references - if obj is not None: - assert type(obj) is types.InstanceType - for k in obj.__dict__.keys(): - obj.__dict__[k] = None - ##del obj.__dict__[k] - -def after(widget, ms, func, *args): - timer = apply(widget.after, (ms, func) + args) - command = widget._tclCommands[-1] - return (timer, command, widget) - -def after_cancel(t): - if t is not None: - t[2].after_cancel(t[0]) - try: - t[2].deletecommand(t[1]) - except Tkinter.TclError: - pass - -class TOOLTIP: - def __init__(self,widget,text=None): - self.widget=widget - self.text = text - self.timer = None - self.tooltip = None - self.label = None - self.bindings = [] - self.bindings.append(self.widget.bind("", self._enter)) - self.bindings.append(self.widget.bind("", self._leave)) - self.bindings.append(self.widget.bind("", self._leave)) - # user overrideable settings - self.time = 1000 # milliseconds - self.relief = Tkinter.SOLID - self.justify = Tkinter.LEFT - self.fg = "#000000" - self.bg = "#ffffe0" - self.xoffset = 20 - self.yoffset = 1 - - def setText(self, text): - self.text = text - - def _unbind(self): - if self.bindings and self.widget: - self.widget.unbind("", self.bindings[0]) - self.widget.unbind("", self.bindings[1]) - self.widget.unbind("", self.bindings[2]) - self.bindings = [] - - def destroy(self): - self._unbind() - self._leave() - - def _enter(self, *event): - after_cancel(self.timer) - self.timer = after(self.widget, self.time, self._showTip) - - def _leave(self, *event): - after_cancel(self.timer) - self.timer = None - if self.tooltip: - self.label.destroy() - destruct(self.label) - self.label = None - self.tooltip.destroy() - destruct(self.tooltip) - self.tooltip = None - - def _showTip(self): - if self.tooltip or not self.text: - return - c = self.widget.__class__ - if c in (Tkinter.Button,): - if self.widget["state"] == Tkinter.DISABLED: - return - x = self.widget.winfo_rootx() - y = self.widget.winfo_rooty() + self.widget.winfo_height() - x = x + self.xoffset - y = y + self.yoffset - self.tooltip = Tkinter.Toplevel() - self.tooltip.wm_iconify() - self.tooltip.wm_overrideredirect(1) - self.tooltip.wm_protocol("WM_DELETE_WINDOW", self.destroy) - self.label = Tkinter.Label(self.tooltip, text=self.text, - relief=self.relief, justify=self.justify, - fg=self.fg, bg=self.bg, bd=1, takefocus=0) - self.label.pack(ipadx=1, ipady=1) - self.tooltip.wm_geometry("%+d%+d" % (x, y)) - self.tooltip.wm_deiconify() - -if __name__ == "__main__": - root=Tkinter.Tk() - label = Tkinter.Label(root, text="coucou") - label.pack() - tp=TOOLTIP(label,"texte d'aide") - root.mainloop() - diff --git a/InterfaceTK/treeitemincanvas.py b/InterfaceTK/treeitemincanvas.py deleted file mode 100644 index db38e98f..00000000 --- a/InterfaceTK/treeitemincanvas.py +++ /dev/null @@ -1,73 +0,0 @@ -# -*- 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 -import Tkinter,Pmw - -# Modules Eficas -from Editeur import Objecttreeitem -import treewidget -Objecttreeitem.TreeItem.itemNode=treewidget.Node - -class TREEITEMINCANVAS: - def __init__(self,object,nom="",parent=None,appli=None,sel=None,rmenu=None): - self.object=object - self.nom=nom - - if not appli: - class Appli: - def affiche_infos(self,message): - pass - appli=Appli() - self.appli=appli - - if not parent: - parent=Tkinter.Tk() - Pmw.initialise(parent) - self.parent=parent - - self.item=Objecttreeitem.make_objecttreeitem(self.appli,self.nom,self.object) - self.canvas=Pmw.ScrolledCanvas(self.parent,borderframe=1,canvas_background='gray95') - self.canvas.pack(padx=10,pady=10,fill = 'both', expand = 1) - if not sel: - def sel(event=None): - return - self.tree=treewidget.Tree(self.appli,self.item,self.canvas,command=sel,rmenu=rmenu) - self.tree.draw() - - def mainloop(self): - self.parent.mainloop() - - def update(self): - """Cette methode est utilisee pour signaler une mise a jour des objets associes""" - self.tree.update() - - def supprime(self): - #print "supprime",self - self.tree.supprime() - self.tree=None - self.canvas.destroy() - self.canvas=None - - #def __del__(self): - # print "__del__",self - diff --git a/InterfaceTK/treewidget.py b/InterfaceTK/treewidget.py deleted file mode 100644 index 307727c7..00000000 --- a/InterfaceTK/treewidget.py +++ /dev/null @@ -1,948 +0,0 @@ -# -*- 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,string,re,types,traceback -from Tkinter import * - - -import fontes -import images -from Ihm import CONNECTOR - -# -__version__="$Name: V6_main $" -__Id__="$Id: treewidget.py,v 1.4 2009-06-19 08:36:50 pnoyret Exp $" -# - -Fonte_Standard = fontes.standard - -class Tree : - def __init__(self,appli,jdc_item,scrolledcanvas,command = None,rmenu=None): - self.item = jdc_item - self.scrolledcanvas = scrolledcanvas - self.canvas = self.scrolledcanvas.component('canvas') - #resolution - resolution= self.canvas.winfo_screenwidth()/(self.canvas.winfo_screenmmwidth()/25.4*72) - self.DDY=max(20,resolution*(Fonte_Standard[1]+4)) - self.id_up=self.canvas.bind("", self.page_up) - self.id_down=self.canvas.bind("", self.page_down) - self.id_um=self.canvas.bind("", self.mot_up) - self.id_dm=self.canvas.bind("", self.mot_down) - self.id_s=self.canvas.bind("<1>", self.canvas_select) - self.tree = self - self.command = command - self.rmenu=rmenu - self.appli = appli - self.parent = None - self.racine = self - self.node_selected = None - self.build_children() - - def canvas_select(self,event): - self.canvas.focus_set() - - def page_up(self,event): - event.widget.yview_scroll(-1, "page") - - def page_down(self,event): - event.widget.yview_scroll(1, "page") - - def unit_up(self,event): - event.widget.yview_scroll(-1, "unit") - - def unit_down(self,event): - event.widget.yview_scroll(1, "unit") - - def mot_down(self,event): - self.select_next(None) - self.canvas.focus_set() - - def mot_down_force(self): - self.select_next(None) - self.canvas.focus_set() - - def mot_up(self,event): - self.node_selected.select_mot_previous() - self.canvas.focus_set() - - def mot_up_force(self): - self.node_selected.select_mot_prev() - self.canvas.focus_set() - - def deplieReplieNode(self): - self.node_selected.deplieReplieNode() - - def build_children(self): - """ Construit la liste des enfants de self """ - self.children = [] - child = self.item.itemNode(self,self.item,self.command,self.rmenu) - self.children.append(child) - child.state='expanded' - - def draw(self): - """ Dessine l'arbre """ - lasty = 8 - x = 5 - for child in self.children: - child.draw(x,lasty) - lasty = child.lasty + 15 - self.children[0].select() - self.resizescrollregion() - - def deselectall(self): - """ déselectionne tous les éléments de l'arbre """ - if self.node_selected : - self.node_selected.deselect() - - def update(self): - """ Update tous les éléments de l'arbre """ - for child in self.children: - child.update() - - 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_um) - self.canvas.unbind("",self.id_dm) - self.canvas.unbind("<1>",self.id_s) - self.tree = None - self.racine = None - self.node_selected = None - self.item = None - self.scrolledcanvas = None - self.canvas = None - self.command = None - self.rmenu=None - for child in self.children: - child.supprime() - self.children=[] - - def update_valid(self) : - """Cette methode a pour but de mettre a jour la validite du noeud - et de propager la demande de mise à jour à son parent - """ - pass - - def resizescrollregion(self): - x0,y0,x1,y1=self.canvas.bbox(ALL) - # On ajoute une marge approximativement de la moitié du canvas - y1=y1+self.canvas.winfo_height()/2 - self.canvas.configure(scrollregion = (x0,y0,x1,y1)) - - def select_next(self,event): - self.node_selected.select_next() - self.canvas.focus_set() - - def select_previous(self,event): - self.node_selected.select_previous() - - def see(self,items): - x1, y1, x2, y2=apply(self.canvas.bbox, items) - while x2 > self.canvas.canvasx(0)+self.canvas.winfo_width(): - old=self.canvas.canvasx(0) - self.canvas.xview_scroll( 1, 'units') - # avoid endless loop if we can't scroll - if old == self.canvas.canvasx(0): - break - while y2 > self.canvas.canvasy(0)+self.canvas.winfo_height(): - old=self.canvas.canvasy(0) - self.canvas.yview_scroll( 1, 'units') - if old == self.canvas.canvasy(0): - break - # done in this order to ensure upper-left of object is visible - while x1 < self.canvas.canvasx(0): - old=self.canvas.canvasx(0) - self.canvas.xview_scroll( -1, 'units') - if old == self.canvas.canvasx(0): - break - while y1 < self.canvas.canvasy(0): - old=self.canvas.canvasy(0) - self.canvas.yview_scroll( -1, 'units') - if old == self.canvas.canvasy(0): - break - - #def __del__(self): - # print "__del__",self - - -class Node : - def __init__(self,parent,item,command=None,rmenu=None): - self.parent = parent - self.item = item - self.connect() - self.command = command - self.rmenu=rmenu - self.tree = self.parent.tree - self.appli = self.parent.appli - self.canvas = self.parent.canvas - self.init() - - def init(self): - self.state='collapsed' - self.displayed = 0 - self.selected = 0 - self.x = self.y =None - self.lasty = 0 - self.children = None - self.id = [] - if self.parent is self.tree: - self.racine=self - else: - self.racine = self.parent.racine - - def connect(self): - self.item.connect("add",self.onAdd,()) - self.item.connect("supp",self.onSupp,()) - self.item.connect("valid",self.onValid,()) - - #def __del__(self): - # print "__del__",self - - def force_select(self): - if self.selected: - # le noeud est selectionné. On force la reconstruction du panel associé - if self.command:apply(self.command,(None,)) - self.select() - - def onValid(self): - #print "onValid : l'item a changé de validité ",self.item,self.item.object,self.item.object.isvalid() - self.update_node_valid() - self.update_node_label() - self.update_node_texte() - if self.selected and self.command: - self.command(self) - - def onAdd(self,objet): - #print "onAdd : un objet a été ajouté aux fils de l'item ",self.item.object,objet - self.expand_node() - old_nodes=self.children - self.update_nodes() - self.redraw_children(old_nodes) - self.force_select() - - def onSupp(self,objet): - #print "onSupp : un objet a été supprimé des fils de l'item ",self.item.object,objet - self.expand_node() - old_nodes=self.children - self.update_nodes() - self.redraw_children(old_nodes) - self.force_select() - - def update_nodes(self): - #print "update_nodes",self - newnodes=[] - inodes=iter(self.children) - sublist=self.item._GetSubList() - iliste=iter(sublist) - - while(1): - old_item=item=None - for node in inodes: - old_item=node.item - if old_item in sublist:break - #print "item supprime",old_item - for item in iliste: - if item is old_item:break - #print "item ajoute",item - child = item.itemNode(self,item,self.command,self.rmenu) - newnodes.append(child) - - if old_item is None and item is None:break - if old_item is item: - #print "item conserve",item - newnodes.append(node) - - self.children=newnodes - self.connect() - - def supprime(self): - #print "supprime",self - self.efface_node() - self.racine = None - self.command = None - self.rmenu=None - if not self.children : return - for child in self.children: - child.supprime() - self.children=None - - def redraw_children(self,old_nodes): - #print "redraw_children",old_nodes - #print self.children - y = self.y + self.tree.DDY - x = self.x + 15 - supp_nodes=[] - - inodes=iter(old_nodes) - iliste=iter(self.children) - # on parcourt la liste des anciens noeuds (node) - # et la liste des nouveaux noeuds (new_node) en parallele (iterateurs) - - while(1): - new_node=node=None - for node in inodes: - #print "ancien noeud",node - if node in self.children:break # ancien noeud toujours present - #print "noeud supprime",node,node.item.GetLabelText()[0] - dy=node.y-node.lasty -self.tree.DDY - #print "deplacer noeuds",y,dy - node.move_nodes(y,dy) - node.supprime() - #supp_nodes.append(node) - - for new_node in iliste: - #print "nouveau noeud",new_node - if new_node in old_nodes: break # nouveau noeud deja present - #print "noeud ajoute",new_node,new_node.item.GetLabelText()[0] - y=self.draw_node(new_node,x,y) - - if node is None and new_node is None : break - - if node is new_node: # ancien noeud - #print "noeud conserve",node - node.update_node_label() - y=y+node.lasty-node.y +self.tree.DDY - - self.racine.update_coords() - self.canvas.delete('line') - self.racine.trace_ligne() - self.tree.resizescrollregion() - # Mettre à 1 pour verifier les cycles entre objets node - #withCyclops=0 - #if withCyclops: - #from Misc import Cyclops - #z = Cyclops.CycleFinder() - #print supp_nodes - #for o in supp_nodes: - #z.register(o) - #del supp_nodes - #del o - #z.find_cycles() - #z.show_stats() - #z.show_cycles() - - def tag_move_nodes(self,y): - """ Marque pour deplacement tous les noeuds au dela de l'ordonnée 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 - 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) - # on déplace tous les items de dy - self.canvas.move('move',0,dy) - - def draw_node(self,new_node,x,y): - """ Dessine le noeud new_node en x,y en deplacant les noeuds existants - en y et au dela - Retourne la position du premier des noeuds deplaces - """ - #print "draw_node",new_node,x,y - self.tag_move_nodes(y) - #if new_node.item.isactif(): - #new_node.state = 'expanded' - new_node.state = 'expanded' - new_node.draw(x,y) - dy=(new_node.get_nb_children()+1)*self.tree.DDY - #print "deplacer noeuds",y,dy - self.canvas.move('move',0,dy) - return new_node.lasty+self.tree.DDY - - def build_children(self): - """ Construit la liste des enfants de self """ - self.children = [] - sublist = self.item._GetSubList() - if not sublist : return - for item in sublist : - child = item.itemNode(self,item,self.command,self.rmenu) - self.children.append(child) - - #----------------------------------------------- - # Méthodes de sélection/déselection d'un noeud - #----------------------------------------------- - - def select(self, event=None): - """ - Rend le noeud courant (self) sélectionné et déselectionne - tous les autres - """ - #print "SELECT",self - if not self.children : self.build_children() - self.tree.deselectall() - self.selected = 1 - self.tree.node_selected = self - if self.command:apply(self.command,(self,)) - self.highlight() - self.make_visible() - - def deselect(self, event=None): - """ Déselectionne self """ - self.selected = 0 - 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 - """ - 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 ... - """ - if self.state=='expanded' and len(self.children) > ind: - self.children[ind].select() - else : - index = self.parent.children.index(self) + 1 - try : - if isinstance(self.parent,TREE) : - try: - self.children[ind].select() - except: - self.children[0].select() - except : - 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 : - self.parent.select() - except: - if self.parent is self.tree: - pass - else : - self.parent.select_previous() - - - def select_mot_previous(self): - index = self.parent.children.index(self) - 1 - try : - if index > -1 : - 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 : - self.parent.select_previous() - - def select_previous(self): - """ on doit d'abord sélectionner(dans l'ordre) : - - son frère aîné - - son père - """ - index = self.parent.children.index(self) - 1 - try : - self.parent.children[index].select() - except: - #self.parent.select() - if self.parent is self.tree: - pass - else : - self.parent.select_previous() - - def popup(self,event=None): - """ - Declenche le traitement associé au clic droit de la souris - sur l'icone du Node - """ - if not self.rmenu:return - apply(self.rmenu,(self,event)) - - #----------------------------------------------- - # Méthodes de recherche d'informations - #----------------------------------------------- - def geticonimage(self,name=None): - """ - Retourne l'image qui doit être associée à self - """ - if not name : - name = self.item.GetIconName() - if not name or name == 'aucune' : - return None - return images.get_image(name) - - def get_nb_children(self): - """ Retourne le nombre d'enfants affichés de self """ - nb = 0 - if self.state =='collapsed' : return nb - for child in self.children : - nb = nb + 1 + child.get_nb_children() - return nb - - def get_liste_id(self): - """ Retourne la liste de tous les id (filiation comprise) de self """ - liste = self.id - for child in self.children: - liste.extend(child.get_liste_id()) - return liste - - def get_node_fils(self,name) : - """ Retourne le fils de self de nom name s'il existe""" - for child in self.children: - if child.item.get_nom() == name: return child - return None - - #----------------------------------------------- - # Méthodes d'affichage d'un noeud - #----------------------------------------------- - def draw(self,x,y): - """ Permet de tracer le noeud self """ - # le début du noeud est en x,y - self.x = x - self.y = y - self.lasty = y - self.displayed = 1 - self.id=[] - # choix de l'icone à afficher : + ou - - if self.item.IsExpandable(): - if self.state == 'expanded': - iconname = "minusnode" - callback = self.collapse - else: - iconname = "plusnode" - callback = self.expand - image = self.geticonimage(name=iconname) - self.icone_id = self.canvas.create_image(self.x, self.y, image=image) - self.callback_id=self.canvas.tag_bind(self.icone_id, "<1>", callback) - self.id.append(self.icone_id) - # création de la ligne horizontale - self.ligne_id = self.canvas.create_line(self.x,self.y,self.x+10,self.y) - self.id.append(self.ligne_id) - self.canvas.tag_lower(self.ligne_id) - # affichage de l'icone (carre ,rond, ovale ...) de couleur - image = self.geticonimage() - if image != None : - self.image_id = self.canvas.create_image(self.x+15,self.y,image = image) - self.select_id2=self.canvas.tag_bind(self.image_id,"<1>",self.select) - self.popup_id2=self.canvas.tag_bind(self.image_id,"<3>",self.popup) - self.id.append(self.image_id) - else: - self.image_id = None - # affichage du texte : nom de l'objet (ETAPE ou MOT-CLE) et sa valeur - self.drawtext() - if self.state == 'expanded' : - if not self.children : self.build_children() - if len(self.children) > 0: - self.drawchildren() - self.lasty = self.children[-1].lasty - - def drawchildren(self): - """ Dessine les enfants de self """ - y = self.y + self.tree.DDY - x = self.x + 15 - for child in self.children: - child.draw(x,y) - nb = child.get_nb_children() - y = y + self.tree.DDY*(nb+1) - self.trace_ligne() - - def drawtext(self): - """ Affiche les deux zones de texte après l'icône de couleur de l'objet """ - if self.image_id != None : - textx = self.x + 30 - else: - textx = self.x + 15 - texty = self.y - # nom,fonte et couleur de l'objet du noeud à afficher - labeltext,fonte,couleur = self.item.GetLabelText() - if labeltext == '' : labeltext = ' ' - if fonte == None : fonte = Fonte_Standard - if couleur == None : couleur = 'black' - # création du widget label - self.label = Label(self.canvas, - text = labeltext, - fg = couleur, - bg = 'gray95', - font=fonte) - self.label_id = self.canvas.create_window(textx,texty,window=self.label,anchor='w') - self.id.append(self.label_id) - # bindings sur le widget label - self.select_id=self.label.bind("<1>", self.select) - self.popup_id=self.label.bind("<3>", self.popup) - self.enter_id=self.label.bind("",self.enter) - self.leave_id=self.label.bind("",self.leave) - # valeur de cet objet à afficher - x0, y0, x1, y1 = self.canvas.bbox(self.label_id) - textx = max(x1, 200) + 10 - text = self.item.GetText() or " " - self.text = Label(self.canvas, text=text, - bd=0, padx=2, pady=2,background='gray95', - font=fonte) - if self.selected: - self.highlight() - else: - self.dehighlight() - self.text_id = self.canvas.create_window(textx, texty,anchor="w", window=self.text) - self.id.append(self.text_id) - - def highlight(self,event=None): - """ Met en surbrillance self""" - if hasattr(self,'label'): - self.label.configure(fg='white',bg='#00008b') - if hasattr(self.item,'get_nom') and 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""" - if hasattr(self,'label'): - self.label.configure(fg='black',bg='gray95') - - def enter(self,event=None): - """ Met en surbrillance self et affiche le fr de l'objet """ - self.highlight() - fr = self.item.get_fr() - self.appli.affiche_infos(fr) - - def leave(self,event=None): - """ Rétablit l'affichage normal de self et efface le fr de l'objet """ - if not self.selected : - self.dehighlight() - self.appli.affiche_infos('') - - def collapse_children(self): - """ Collapse récursivement tous les descendants de self """ - if not self.children : return - for child in self.children: - child.state='collapsed' - child.collapse_children() - - def deplieReplieNode(self): - if self.state == 'expanded': - self.collapse() - else : - self.expand_node() - - def collapse(self,event = None): - """ Collapse self et descendants et retrace self """ - nb = self.get_nb_children() - self.state = 'collapsed' - self.collapse_children() - self.redraw(-nb) - self.select() - - def expand_node(self,event = None): - """ Expanse self et le retrace """ - if self.state == 'expanded':return - #if not self.item.isactif() : return - if not self.children : self.build_children() - self.state = 'expanded' - nb = self.get_nb_children() - self.redraw(nb) - - def expand(self,event = None): - """ Expanse self et le retrace """ - self.expand_node() - self.select() - - def redraw(self,nb): - """ Redessine self : nb est le décalage à introduire - en dessous de self pour le redessiner """ - # nb = nombre d'items de décalage - self.move(self.tree.DDY*nb) - # on efface self et on le redessine - self.efface() - self.draw(self.x,self.y) - # Il n'est pas nécessaire d'appeler update - # il suffit d'updater les coordonnees et de retracer les lignes - self.racine.update_coords() - self.racine.trace_ligne() - self.update_valid() - self.tree.resizescrollregion() - - def update_coords(self): - """ Permet d'updater les coordonnes de self et de tous ses enfants""" - if self.displayed == 0 : return - if self.image_id != None : - coords = self.canvas.coords(self.image_id) - self.x = coords[0]-15 - else: - coords = self.canvas.coords(self.label_id) - self.x = coords[0]-15 - self.y = coords[1] - self.lasty = self.y - if self.state == 'expanded' : - for child in self.children: - if child.displayed != 0: - child.update_coords() - self.lasty = child.lasty - - def update_icone(self): - """ Met à jour les icônes de tous les noeuds : teste la validité de l'objet - Cette méthode est très lente, trop !!""" - if self.image_id != None : - image = self.geticonimage() - self.canvas.itemconfig(self.image_id,image=image) - if self.state == 'expanded': - for child in self.children: - if child.displayed != 0: - child.update_icone() - - def update_label_texte(self): - """ Met a jour le label du noeud et celui de tous ses fils ouverts """ - self.update_node_label() - if self.state == 'expanded' : - for child in self.children: - if child.displayed != 0 : child.update_label_texte() - - def update_texte(self): - """ Met à jour les noms des SD et valeurs des mots-clés """ - self.update_node_texte() - if self.state == 'expanded' : - for child in self.children: - if child.displayed != 0 : child.update_texte() - - def update_node_label(self): - """ Met a jour le label du noeud """ - if self.displayed == 0 : return - # nom,fonte et couleur de l'objet du noeud à afficher - labeltext,fonte,couleur = self.item.GetLabelText() - if labeltext == '' : labeltext = ' ' - if fonte == None : fonte = Fonte_Standard - if couleur == None : couleur = 'black' - if hasattr(self,'label') and self.label: - self.label.configure(text=labeltext,font=fonte) - - def update_node_texte(self): - """ Met à jour les noms des SD et valeurs des mots-clés """ - if self.displayed == 0 : return - text = self.item.GetText() - if text == None : text = '' - if hasattr(self,'text') and self.text: - self.text.configure(text=text) - - def update_node_valid(self) : - """Cette methode remet a jour la validite du noeud (icone) - Elle appelle isvalid - """ - if self.displayed == 0 : return - if hasattr(self,'image_id'): - if self.image_id != None : - image = self.geticonimage() - self.canvas.itemconfig(self.image_id,image=image) - - def update_valid(self) : - """Cette methode a pour but de mettre a jour la validite du noeud - et de propager la demande de mise à jour à son parent - """ - self.update_node_valid() - self.parent.update_valid() - - def update(self,event=None) : - """ Classe Node : - Cette méthode est appelée pour demander l update d un noeud - d'un jeu de commandes - Cette demande est transmise au noeud racine (le JDC) qui update - tout l arbre représentant le jeu de commandes - Pendant cette mise à jour, on appelle la méthode isvalid qui - fera l update de tous les objets déclarés modifiés lors des - actions précédentes - La métode isvalid est en général appelée par l intermédiaire de - update_icone -> geticonimage -> GetIconName - """ - #print "update",self - #traceback.print_stack() - self.racine.update_coords() - self.racine.trace_ligne() - self.racine.update_icone() - self.racine.update_texte() - self.racine.update_label_texte() - self.tree.resizescrollregion() - - def efface_node(self): - if self.displayed != 0: - self.label.unbind("<1>", self.select_id) - self.label.unbind("<3>", self.popup_id) - self.label.unbind("",self.enter_id) - self.label.unbind("",self.leave_id) - self.canvas.tag_unbind(self.image_id,"<1>",self.select_id2) - self.canvas.tag_unbind(self.image_id,"<3>",self.popup_id2) - if self.item.IsExpandable(): - self.canvas.tag_unbind(self.icone_id, "<1>", self.callback_id) - self.label.destroy() - self.text.destroy() - - for id in self.id : - self.canvas.delete(id) - self.id=[] - self.label_id=None - self.text_id=None - self.image_id=None - self.icone_id=None - self.label=None - self.text=None - self.displayed=0 - - def efface(self): - """ Efface du canvas les id associés à self : cad les siens et ceux - de ses enfants """ - self.efface_node() - if not self.children : return - for child in self.children: - child.efface() - - def move(self,dy): - """ Déplace de l'incrément dy tous les id en dessous de self """ - # il faut marquer tous les suivants de self - bbox1 = self.canvas.bbox(ALL) - self.canvas.dtag(ALL,'move') - self.canvas.delete('line') - try: - self.canvas.addtag_overlapping('move',bbox1[0],self.y +10,bbox1[2],bbox1[3]) - except: - print "Erreur dans move :" - print self - print self.item - print self.item.getObject() - print self.item.getObject().definition.label - print 'y=',self.y - print 'dy=',dy - # on déplace tous les items de dy - self.canvas.move('move',0,dy) - - def trace_ligne(self): - """ Dessine les lignes verticales entre frères et entre père et premier fils""" - if self.state=='collapsed' : return - if len(self.children)==0 : return - # on est bien dans le cas d'un noeud expansé avec enfants ... - # il faut rechercher l'ordonnée du dernier fils de self - y_end = self.children[-1].y - ligne = self.canvas.create_line(self.x+15,self.y,self.x+15,y_end,tags='line') - self.canvas.tag_lower(ligne) - for child in self.children : - try: - child.trace_ligne() - except: - print "Erreur dans trace_ligne :" - print child - print child.item.getObject() - - def last_child(self): - lchild=self - if self.state == 'expanded' and self.children: - lchild= self.children[-1].last_child() - return lchild - - #------------------------------------------------------------------ - # Méthodes de création et destruction de noeuds - # Certaines de ces méthodes peuvent être appelées depuis l'externe - #------------------------------------------------------------------ - def append_brother(self,name,pos='after',retour='non'): - """ - Permet d'ajouter un objet frère à l'objet associé au noeud self - par défaut on l'ajoute immédiatement après - Méthode externe - """ - # on veut ajouter le frère de nom name directement avant ou après self - index = self.parent.children.index(self) - if pos == 'before': - index = index - elif pos == 'after': - index = index +1 - else: - print str(pos)," n'est pas un index valide pour append_brother" - return 0 - return self.parent.append_child(name,pos=index) - - def append_child(self,name,pos=None,verif='oui',retour='non'): - """ - Methode pour ajouter un objet fils à l'objet associé au noeud self. - On peut l'ajouter en début de liste (pos='first'), en fin (pos='last') - ou en position intermédiaire. - Si pos vaut None, on le place à la position du catalogue. - """ - #print "append_child",self,self.children - if pos == 'first': - index = 0 - elif pos == 'last': - index = len(self.children) - elif type(pos) == types.IntType : - # position fixee - index = pos - elif type(pos) == types.InstanceType: - # pos est un item. Il faut inserer name apres pos - index = self.item.get_index(pos) +1 - elif type(name) == types.InstanceType: - index = self.item.get_index_child(name.nom) - else: - index = self.item.get_index_child(name) - obj=self.item.additem(name,index) - #print obj - if obj is None:obj=0 - if obj == 0:return 0 - #print "append_child",index,self.children - child=self.children[index] - child.select() - return child - - def delete(self): - """ - Méthode externe pour la destruction de l'objet associé au noeud - La mise à jour des noeuds est faite par onSupp sur notification - """ - index = self.parent.children.index(self) - 1 - if index < 0 : index =0 - - parent=self.parent - ret=parent.item.suppitem(self.item) - if ret == 0:return - - brothers=parent.children - if brothers: - toselect=brothers[index] - else: - toselect=parent - toselect.select() - diff --git a/InterfaceTK/uniqueassdpanel.py b/InterfaceTK/uniqueassdpanel.py deleted file mode 100644 index 581a7b98..00000000 --- a/InterfaceTK/uniqueassdpanel.py +++ /dev/null @@ -1,218 +0,0 @@ -# -*- coding: utf-8 -*- -# ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG -# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY -# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. -# -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. -# -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# -# ====================================================================== -# Modules Python -import string,types,os -from Tkinter import * -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import panels -import images -from widgets import ListeChoix -from widgets import FenetreDeSelection - -from Noyau.N_CR import justify_text -from Editeur.utils import substract_list - -# Import des panels -from uniquepanel import UNIQUE_Panel - - -class UNIQUE_ASSD_Panel(UNIQUE_Panel): - """ - Classe servant à définir le panneau associé aux objets qui attendent une valeur unique - d'un type dérivé d'ASSD - """ - def valid_valeur_automatique(self): - """ - Réalise la validation d'un concept sans remonter dans le - node parent dans le cas ou il n'y a qu'un concept possible (liste de longueur 1) - Identique à valid_valeur moins appel de self.node.parent.select() - On pourrait supposer que le seul concept présent est valide et donc ne pas - réaliser tous les tests de vérification. - """ - if self.parent.modified == 'n' : self.parent.init_modif() - valeur = self.get_valeur() - self.erase_valeur() - anc_val = self.node.item.get_valeur() - valeur,validite=self.node.item.eval_valeur_item(valeur) - test = self.node.item.set_valeur(valeur) - if not test : - mess = "impossible d'évaluer : %s " %`valeur` - self.parent.appli.affiche_infos("Valeur du mot-clé non autorisée :"+mess) - elif self.node.item.isvalid() : - self.parent.appli.affiche_infos('Valeur du mot-clé enregistrée') - #if self.node.item.get_position()=='global': - #self.node.etape.verif_all() - #elif self.node.item.get_position()=='global_jdc': - #self.node.racine.verif_all() - #else : - #self.node.parent.verif() - #self.node.update() - else : - cr = self.node.item.get_cr() - mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal() - self.reset_old_valeur(anc_val,mess=mess) - - def makeValeurPage(self,page,reel="non"): - """ - Génère la page de saisie de la valeur du mot-clé simple courant qui doit être une - SD de type dérivé d'ASSD - """ - # Récupération de l'aide associée au panneau, de l'aide destinée à l'utilisateur, - # et de la liste des SD du bon type (constituant la liste des choix) - bulle_aide=self.get_bulle_aide() - aide=self.get_aide() - aide= justify_text(texte=aide) - liste_noms_sd = self.node.item.get_sd_avant_du_bon_type() - - # Remplissage du panneau - self.valeur_choisie = StringVar() - self.valeur_choisie.set('') - min,max = self.node.item.GetMinMax() - if (min == 1 and min == max and len(liste_noms_sd)==1 ): - 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.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)) - self.frame_valeur.bind("",self.parent.appli.efface_aide) - self.listbox = Pmw.ScrolledListBox(self.frame_valeur, - items=liste_noms_sd, - labelpos='n', - label_text="Structures de données du type\n requis par l'objet courant :", - listbox_height = 6, - selectioncommand=self.select_valeur_from_list, - dblclickcommand=lambda s=self,c=self.valid_valeur : s.choose_valeur_from_list(c)) - self.listbox.place(relx=0.5,rely=0.3,relheight=0.4,anchor='center') - Label(self.frame_valeur,text='Structure de donnée choisie :').place(relx=0.05,rely=0.6) - Label(self.frame_valeur,textvariable=self.valeur_choisie).place(relx=0.5,rely=0.6) - self.but_val = Button(self.frame_valeur,text = "Valider",command= self.Choisir) - self.but_val.place(relx=0.3,rely=0.8,relwidth=0.35) - - # affichage de la valeur courante - 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.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()) - - - - def get_bulle_aide(self): - """ - Retourne l'aide associée au panneau - """ - return "Double-cliquez sur la structure de donnée désirée pour valoriser le mot-clé simple courant" - - def get_aide(self): - """ - Retourne la phrase d'aide indiquant de quel type doit être la valeur à donner par l'utilisateur - """ - mc = self.node.item.get_definition() - try : - 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) - type = type + ' ou '+l - commentaire="Un objet de type "+type+" est attendu" - aideval=self.node.item.aide() - commentaire=commentaire +"\n"+ aideval - return commentaire - - - def select_valeur_from_list(self): - """ - Affecte à valeur choisie la sélection courante dans la liste des choix proposée - """ - if len(self.listbox.get()) == 0 : return - 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): - """ - Affecte à valeur choisie la sélection courante dans la liste des choix proposée - 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,(),{}) - - def Choisir(self) : - #Appeler par le bouton Valider - self.choose_valeur_from_list(self.valid_valeur) - - def get_valeur(self): - """ - Retourne la valeur donnée par l'utilisateur au MCS - """ - return self.valeur_choisie.get() - - def display_valeur(self): - """ - Affiche la valeur de l'objet pointé par self - """ - valeur = self.node.item.get_valeur() - if valeur == None or valeur == '' : return # pas de valeur à afficher ... - self.valeur_choisie.set(getattr(valeur,"nom","unknown")) - - def erase_valeur(self): - pass - - def appel_make(self,page): - self.makeValeurPage(page,reel="oui") - -class UNIQUE_ASSD_Panel_Reel(UNIQUE_ASSD_Panel): - - def valid_valeur_reel(self): - if self.parent.modified == 'n' : self.parent.init_modif() - anc_val = self.node.item.get_valeur() - valeurentree = self.entry.get() - self.valeur_choisie.set(valeurentree) - self.valid_valeur() - - def display_valeur(self): - valeur = self.node.item.get_valeur() - if valeur == None or valeur == '' : return # pas de valeur à afficher ... - if type(valeur) == types.FloatType : - self.valeur_choisie.set(valeur) - else : - self.valeur_choisie.set(valeur.nom) - - - diff --git a/InterfaceTK/uniquebasepanel.py b/InterfaceTK/uniquebasepanel.py deleted file mode 100644 index 3b083d14..00000000 --- a/InterfaceTK/uniquebasepanel.py +++ /dev/null @@ -1,147 +0,0 @@ -# -*- 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 -import string,types,os -from Tkinter import * -from Tkinter import Widget -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import panels -import images -from widgets import FenetreDeParametre -from widgets import showerror - -from Noyau.N_CR import justify_text -from Editeur.utils import substract_list - -# Import des panels -from uniquepanel import UNIQUE_Panel - - -class UNIQUE_BASE_Panel(UNIQUE_Panel): - """ - Classe servant à définir le panneau associé aux mots-clés simples qui attendent - une valeur d'un type de base (entier, réel ou string). - """ - def makeValeurPage(self,page): - """ - Génère la page de saisie de la valeur du mot-clé simple courant qui doit être de type - de base cad entier, réel, string ou complexe - """ - # Récupération de l'aide associée au panneau, de l'aide destinée à l'utilisateur, - # et de la liste des SD du bon type (constituant la liste des choix) - bulle_aide=self.get_bulle_aide() - aide=self.get_aide() - aide= justify_text(texte=aide) - liste_noms_sd = self.node.item.get_sd_avant_du_bon_type() - # Remplissage du panneau - self.frame_valeur = Frame(page) - self.frame_valeur.pack(fill='both',expand=1) - self.frame_valeur.bind("",lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) - self.frame_valeur.bind("",self.parent.appli.efface_aide) - self.label = Label(self.frame_valeur,text='Valeur :') - self.label.grid(row=0,padx=5,pady=5) - self.entry = Entry(self.frame_valeur,relief='sunken') - self.entry.grid(row=0,column=1,padx=5,pady=5) - self.entry.bind("",lambda e,c=self.valid_valeur:c()) - self.entry.bind("",lambda e,c=self.valid_valeur:c()) - # aide associée au panneau - self.frame_valeur.update() - self.aide = Label(self.frame_valeur, - text = aide, - wraplength=int(self.frame_valeur.winfo_width()*0.8), - justify='center') - self.aide.grid(row=4,columnspan=2,padx=5,pady=5) - # bouton parametre - bouton_parametres = Button(self.frame_valeur, text="Parametres", command=self.affiche_parametre) - bouton_parametres.grid(row=2,columnspan=2,padx=5,pady=5) - bouton_val = Button(self.frame_valeur, text="Valider", command=self.valide) - bouton_val.grid(row=3,columnspan=2,padx=5,pady=5) - # affichage de la valeur du MCS - self.display_valeur() - - def valide(self): - self.valid_valeur() - - 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) - - def destroy(self): - try : - self.fenetreparam.destroy() - except : - pass - Widget.destroy(self) - - def get_aide(self): - """ - Retourne la phrase d'aide indiquant de quel type doit être la valeur - du mot-clé simple fournie par l'utilisateur - """ - mc = self.node.item.get_definition() - d_aides = { 'TXM' : "Une chaîne de caractères est attendue", - 'R' : "Un réel est attendu", - 'I' : "Un entier est attendu"} - type = mc.type[0] - commentaire=d_aides.get(type,"Type de base inconnu") - aideval=self.node.item.aide() - commentaire=commentaire +"\n"+ aideval - return commentaire - - def get_bulle_aide(self): - """ - Retourne la bulle d'aide associée au panneau et affichée par clic droit - """ - return """Saisissez la valeur que vous voulez affecter au mot-clé simple - dans la zone de saisie et pressez """ - - def display_valeur(self): - """ - Affiche la valeur de l'objet pointé par self - """ - valeur = self.node.item.get_valeur() - if valeur == None or valeur == '' : # pas de valeur à afficher ... - self.entry.delete(0,END) - self.entry.focus() - return - - valeur_texte=self.get_valeur_texte(valeur) - if valeur_texte != "": - valeur=valeur_texte - self.entry.delete(0,END) - self.entry.insert(0,valeur) - self.entry.focus() - diff --git a/InterfaceTK/uniquecomppanel.py b/InterfaceTK/uniquecomppanel.py deleted file mode 100644 index f8a70f82..00000000 --- a/InterfaceTK/uniquecomppanel.py +++ /dev/null @@ -1,170 +0,0 @@ -# -*- 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 -import string,types,os -from Tkinter import * -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import panels -import images -from widgets import ListeChoix -from widgets import FenetreDeSelection - -from Noyau.N_CR import justify_text -from Editeur.utils import substract_list - -# Import des panels -from uniquepanel import UNIQUE_Panel - - -class UNIQUE_COMP_Panel(UNIQUE_Panel): - """ - Classe servant à définir le panneau associé aux mots-clés simples - qui attendent une valeur de type complexe - """ - def makeValeurPage(self,page): - """ - Génère la page de saisie de la valeur du mot-clé simple courant qui doit être de type - de base cad entier, réel, string ou complexe - """ - # Récupération de l'aide associée au panneau et de l'aide destinée à l'utilisateur - bulle_aide=self.get_bulle_aide() - aide=self.get_aide() - aide= justify_text(texte=aide) - # Remplissage du panneau - self.frame_valeur = Frame(page) - self.frame_valeur.pack(fill='both',expand=1) - self.frame_valeur.bind("",lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) - self.frame_valeur.bind("",self.parent.appli.efface_aide) - self.label = Label(self.frame_valeur,text='Complexe de la forme : a+bj') - self.label1 = Label(self.frame_valeur,text='Imaginaire') - self.label2 = Label(self.frame_valeur,text='Phase') - self.label3 = Label(self.frame_valeur,text='OU') - self.label.place (relx=0.15,rely=0.1) - self.label1.place(relx=0.6,rely=0.50) - self.label2.place(relx=0.6,rely=0.57) - self.label3.place(relx=0.15,rely=0.4) - self.typ_cplx=StringVar() - self.typ_cplx.set('RI') - rb1 = Radiobutton(self.frame_valeur, text='RI : Réel',variable=self.typ_cplx,value='RI') - rb2 = Radiobutton(self.frame_valeur, text='MP : Module',variable=self.typ_cplx,value='MP') - rb1.place(relx=0.15,rely = 0.50) - rb2.place(relx=0.15,rely = 0.57) - self.entry1 = Pmw.EntryField(self.frame_valeur,validate='real') - self.entry2 = Pmw.EntryField(self.frame_valeur,validate='real') - self.entry3 = Pmw.EntryField(self.frame_valeur) - self.entry1.component('entry').bind("",lambda e,s=self:s.entry2.component('entry').focus()) - self.entry1.component('entry').bind("",lambda e,s=self:s.entry2.component('entry').focus()) - self.entry2.component('entry').bind("",lambda e,c=self.valid_valeur:c()) - self.entry2.component('entry').bind("",lambda e,c=self.valid_valeur:c()) - self.entry3.component('entry').bind("",lambda e,c=self.valid_complexe:c()) - self.entry3.component('entry').bind("",lambda e,c=self.valid_complexe:c()) - self.entry1.place(relx=0.15,rely = 0.65,relwidth=0.35) - self.entry2.place(relx=0.60,rely = 0.65,relwidth=0.35) - self.entry3.place(relx=0.15,rely = 0.20,relwidth=0.60) - self.entry1.focus() - self.bouton_val=Button(self.frame_valeur,text="Valider",command=self.valider,width=14) - self.bouton_val.place(relx=0.4,rely=0.8) - self.frame_valeur.update() - self.aide = Label(self.frame_valeur, - text = aide, - wraplength=int(self.frame_valeur.winfo_width()*0.8), - justify='center') - self.aide.place(relx=0.5,rely=0.9,anchor='n') - # affichage de la valeur du MCS - self.display_valeur() - - def valider(self): - if ((self.entry3.get() != None) and (self.entry3.get() != "" )): - self.erase_valeur() - self.valid_complexe() - else : - self.valid_valeur() - - - def display_valeur(self): - """ - Affiche la valeur de l'objet pointé par self - """ - valeur = self.node.item.get_valeur() - if valeur == None or valeur == '' : return # pas de valeur à afficher ... - self.entry1.delete(0,END) - self.entry2.delete(0,END) - self.entry3.delete(0,END) - if type(valeur) not in (types.ListType,types.TupleType) : - self.display_complexe() - else: - typ_cplx,x1,x2=valeur - self.typ_cplx.set(typ_cplx) - self.entry1.setentry(x1) - self.entry2.setentry(x2) - - def display_complexe(self): - valeur = self.node.item.get_valeur() - self.entry3.setentry(valeur) - - def get_bulle_aide(self): - """ - Retourne la bulle d'aide du panneau - """ - return """-Choisissez votre format de saisie du complexe : - \t 'RI' = parties réelle et imaginaire - \t 'MP' = module/phase (en degrés) - - Saisissez ensuite dans les deux zones de saisie les deux nombres attendus""" - - def get_aide(self): - """ - Retourne la phrase d'aide décrivant le type de la valeur que peut prendre - le mot-clé simple courant - """ - commentaire='Un complexe est attendu' - aideval=self.node.item.aide() - commentaire=commentaire +"\n"+ aideval - return commentaire - - def get_valeur(self): - """ - Retourne le complexe saisi par l'utilisateur - """ - l=[] - l.append(self.typ_cplx.get()) - try : - l.append(string.atof(self.entry1.get())) - l.append(string.atof(self.entry2.get())) - except : - return None - return `tuple(l)` - - def erase_valeur(self): - """ - Efface les entries de saisie - """ - self.typ_cplx.set('RI') - self.entry1.delete(0,END) - self.entry2.delete(0,END) - - def valid_complexe(self): - valeurentree=self.entry3.get() - self.valid_valeur(valeurentree=valeurentree) diff --git a/InterfaceTK/uniqueintopanel.py b/InterfaceTK/uniqueintopanel.py deleted file mode 100644 index ae8e3a76..00000000 --- a/InterfaceTK/uniqueintopanel.py +++ /dev/null @@ -1,95 +0,0 @@ -# -*- 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 -import string,types,os -from Tkinter import * -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import panels -import images -from widgets import ListeChoix -from widgets import FenetreDeSelection - -from Noyau.N_CR import justify_text -from Editeur.utils import substract_list - -# Import des panels -from uniquepanel import UNIQUE_Panel - -class UNIQUE_INTO_Panel(UNIQUE_Panel): - """ - Classe définissant le panel associé aux mots-clés qui demandent - à l'utilisateur de choisir une seule valeur parmi une liste de valeurs - discrètes - """ - def makeValeurPage(self,page): - """ - Génère la page de saisie d'une seule valeur parmi un ensemble - discret de possibles - """ - # récupération de la bulle d'aide et de l'objet mc - bulle_aide=self.get_bulle_aide() - objet_mc = self.node.item.get_definition() - # remplissage du panel - self.frame_valeur = Frame(page) - self.frame_valeur.pack(fill='both',expand=1) - self.frame_valeur.bind("",lambda e,s=self,a=bulle_aide : - s.parent.appli.affiche_aide(e,a)) - self.frame_valeur.bind("",self.parent.appli.efface_aide) - #l_choix=list(objet_mc.into) - #l_choix.sort() - l_choix=self.node.item.get_liste_possible([]) - self.label = Label(self.frame_valeur,text='Choisir une valeur :') - self.label.pack(side='top') - self.frame = Frame(page) - self.frame.place(relx=0.33,rely=0.2,relwidth=0.33,relheight=0.6) - - - liste_commandes = (("",self.selectChoix), - ("",self.deselectChoix), - ("",self.record_valeur)) - self.Liste_choix = ListeChoix(self,self.frame,l_choix, - liste_commandes = liste_commandes, - titre="Valeurs possibles",optionReturn="oui") - self.Liste_choix.affiche_liste() - if len(l_choix) == 1 : - self.Liste_choix.surligne(l_choix[0]) - self.bouton_val = Button(self.frame_valeur, - text = "Valider", - command=self.record_valeur_ligne, - width=14) - self.bouton_val.place(relx=0.33,rely=0.85) - - def record_valeur_ligne(self): - valeur=self.Liste_choix.arg_selected - self.record_valeur(valeur) - - def get_bulle_aide(self): - """ - Retourne la bulle d'aide affectée au panneau courant (affichée par clic droit) - """ - return """Double-cliquez sur la valeur désirée - pour valoriser le mot-clé simple courant""" - diff --git a/InterfaceTK/uniquepanel.py b/InterfaceTK/uniquepanel.py deleted file mode 100644 index a04c37fd..00000000 --- a/InterfaceTK/uniquepanel.py +++ /dev/null @@ -1,92 +0,0 @@ -# -*- 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 -import string,types,os -from Tkinter import * -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import panels -import images -from widgets import ListeChoix -from widgets import FenetreDeSelection - -from Noyau.N_CR import justify_text -from Editeur.utils import substract_list - -# Import des panels -from newsimppanel import newSIMPPanel - - -class UNIQUE_Panel(newSIMPPanel): - """ - Classe virtuelle servant de classe mère à toutes celles définissant un panneau - permettant l'affichage et la saisie d'une valeur unique pour le mot-clé simple - """ - - def erase_valeur(self): - """ - Efface l'entry de saisie - """ - self.entry.delete(0,END) - - def get_valeur(self): - """ - Retourne la valeur donnée par l'utilisateur - """ - return self.entry.get() - - - def valid_valeur(self,valeurentree=None): - """ - Teste si la valeur fournie par l'utilisateur est une valeur permise : - - si oui, l'enregistre - - si non, restaure l'ancienne valeur - """ - if self.parent.modified == 'n' : self.parent.init_modif() - anc_val = self.node.item.get_valeur() - if valeurentree== None : - valeurentree = self.get_valeur() - valeur,validite=self.node.item.eval_valeur(valeurentree) - if not validite : - commentaire = "impossible d'évaluer : %s " %`valeurentree` - self.display_valeur() - self.parent.appli.affiche_infos(commentaire) - return - - test = self.node.item.set_valeur(valeur) - if test : - self.set_valeur_texte(str(valeurentree)) - - if not test : - mess = "impossible d'évaluer : %s " %`valeur` - self.parent.appli.affiche_infos("Valeur du mot-clé non autorisée : "+mess) - elif self.node.item.isvalid() : - self.parent.appli.affiche_infos('Valeur du mot-clé enregistrée') - else : - cr = self.node.item.get_cr() - mess = "Valeur du mot-clé non autorisée "+cr.get_mess_fatal() - self.reset_old_valeur(anc_val,mess=mess) - - self.display_valeur() diff --git a/InterfaceTK/uniquesdcopanel.py b/InterfaceTK/uniquesdcopanel.py deleted file mode 100644 index 5dd20069..00000000 --- a/InterfaceTK/uniquesdcopanel.py +++ /dev/null @@ -1,245 +0,0 @@ -# -*- 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 -import string,types,os -from Tkinter import * -import Pmw -from copy import copy,deepcopy -import traceback - -# Modules Eficas -from Editeur import Objecttreeitem -import panels -import images -from widgets import ListeChoix -from widgets import FenetreDeSelection - -from Noyau.N_CR import justify_text -from Editeur.utils import substract_list - -# Import des panels -from uniqueassdpanel import UNIQUE_ASSD_Panel - - -class UNIQUE_SDCO_Panel(UNIQUE_ASSD_Panel): - """ - Classe servant à définir le panneau correspondant à un mot-clé simple - qui attend une valeur unique de type dérivé d'ASSD ou non encore - existante (type CO(...) utilisé dans les macros uniquement) - """ - def makeValeurPage(self,page): - """ - Génère la page de saisie de la valeur du mot-clé simple courant qui doit être une SD de type dérivé - d'ASSD - """ - # Récupération de l'aide associée au panneau, de l'aide destinée à l'utilisateur, - # et de la liste des SD du bon type (constituant la liste des choix) - bulle_aide=self.get_bulle_aide() - aide=self.get_aide() - aide= justify_text(texte=aide) - liste_noms_sd = self.node.item.get_sd_avant_du_bon_type() - # Remplissage du panneau - self.frame_valeur = Frame(page) - self.frame_valeur.pack(fill='both',expand=1) - self.frame_valeur.bind("",lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) - self.frame_valeur.bind("",self.parent.appli.efface_aide) - # affichage de la liste des SD existantes et du bon type - self.listbox = Pmw.ScrolledListBox(self.frame_valeur, - items=liste_noms_sd, - labelpos='n', - label_text="Structures de données du type\n requis par l'objet courant :", - listbox_height = 6, - selectioncommand=self.select_valeur_from_list, - dblclickcommand=lambda s=self,c=self.valid_valeur : s.choose_valeur_from_list(c)) - self.listbox.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) - else : - 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 = self.ask_new_concept) - if liste_noms_sd != [] : - self.b_co.place(relx=0.05,rely=0.6,anchor='w') - else : - self.b_co.place(relx=0.05,rely=0.3,anchor='w') - self.label_co = Label(self.frame_valeur,text='Nom du nouveau concept :') - self.entry_co = Entry(self.frame_valeur) - self.entry_co.bind('',self.valid_nom_concept_co) - self.entry_co.bind('',self.valid_nom_concept_co) - # affichage du label de la structure de donnée choisie - self.l_resu = Label(self.frame_valeur,text='Structure de donnée choisie :') - self.valeur_choisie = StringVar() - self.label_valeur = Label(self.frame_valeur,textvariable=self.valeur_choisie) - self.frame_valeur.update() - self.aide = Label(self.frame_valeur, - text = aide, - wraplength=int(self.frame_valeur.winfo_width()*0.8), - justify='center') - self.aide.place(relx=0.5,rely=0.85,anchor='n') - - self.but_val = Button(self.fr_but,text = "Valider",command= self.valid_nom_concept_co) - self.but_val.pack(side='right',padx=5, pady=5) - - # affichage de la valeur courante - self.display_valeur() - if liste_noms_sd == [] : - self.b_co.invoke('OUI') - - def get_bulle_aide(self): - """ - Retourne la bulle d'aide du panneau - """ - return """Double-cliquez sur la structure de donnée désirée - pour valoriser le mot-clé simple courant ou cliquez sur NOUVEAU CONCEPT pour - entrer le nom d'un concept non encore existant""" - - def valid_valeur(self): - """ - Teste si la valeur fournie par l'utilisateur est une valeur permise : - - si oui, l'enregistre - - si non, restaure l'ancienne valeur - """ - if self.parent.modified == 'n' : self.parent.init_modif() - valeur = self.get_valeur() - #print "valid_valeur",valeur - - self.erase_valeur() - anc_val = self.node.item.get_valeur() - test_CO=self.node.item.is_CO(anc_val) - #PN essai pour bug dans MACRO_PROJ_BASE - valeur,validite=self.node.item.eval_valeur(valeur) - test = self.node.item.set_valeur(valeur) - if not test : - mess = "impossible d'évaluer : %s " %`valeur` - self.parent.appli.affiche_infos("Valeur du mot-clé non autorisée :"+mess) - return - #PN essai pour bug dans MACRO_PROJ_BASE - #elif self.node.item.isvalid() : - elif validite: - self.parent.appli.affiche_infos('Valeur du mot-clé enregistrée') - if test_CO: - # il faut egalement propager la destruction de l'ancien concept - self.node.item.delete_valeur_co(valeur=anc_val) - # et on force le recalcul des concepts de sortie de l'etape - self.node.item.object.etape.get_type_produit(force=1) - # et le recalcul du contexte - self.node.item.object.etape.parent.reset_context() - self.node.parent.select() - else : - cr = self.node.item.get_cr() - mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal() - self.reset_old_valeur(anc_val,mess=mess) - return - - def valid_nom_concept_co(self,event=None): - """ - Lit le nom donné par l'utilisateur au concept de type CO qui doit être - la valeur du MCS courant et stocke cette valeur - """ - #print "valid_nom_concept_co" - if self.parent.modified == 'n' : self.parent.init_modif() - anc_val = self.node.item.get_valeur() - if anc_val != None: - # il faut egalement propager la destruction de l'ancien concept - self.node.item.delete_valeur_co(valeur=anc_val) - # et on force le recalcul des concepts de sortie de l'etape - self.node.item.object.etape.get_type_produit(force=1) - # et le recalcul du contexte - self.node.item.object.etape.parent.reset_context() - nom_concept = self.entry_co.get() - #print "valid_nom_concept_co",nom_concept - test,mess=self.node.item.set_valeur_co(nom_concept) - if not test: - # On n'a pas pu créer le concept - self.parent.appli.affiche_infos(mess) - return - elif self.node.item.isvalid() : - self.parent.appli.affiche_infos('Valeur du mot-clé enregistrée') - self.node.parent.select() - else : - cr = self.node.item.get_cr() - mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal() - self.reset_old_valeur(anc_val,mess=mess) - return - - 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 - """ - new_concept = self.b_co.getcurselection() - if new_concept == 'OUI': - self.label_co.place(relx=0.05,rely=0.7) - self.entry_co.place(relx=0.45,rely=0.7,relwidth=0.25) - self.l_resu.place_forget() - self.label_valeur.place_forget() - self.entry_co.focus() - elif new_concept == 'NON': - # On est passe de OUI à NON, on supprime la valeur -# PN correction de bug (on passe de non a non et cela supprime la valeur) -# ajout du if de le ligne suivane - if self.node.item.is_CO(): - self.node.item.delete_valeur_co() - self.record_valeur(name=None,mess="Suppression CO enregistrée") - self.label_co.place_forget() - self.entry_co.place_forget() - self.l_resu.place(relx=0.05,rely=0.7) - self.label_valeur.place(relx=0.45,rely=0.7) - - def display_valeur(self): - """ - Affiche la valeur de l'objet pointé par self - """ - valeur = self.node.item.get_valeur() - #print "display_valeur",valeur - if valeur == None or valeur == '': - self.valeur_choisie.set('') - return # pas de valeur à afficher ... - # il faut configurer le bouton si la valeur est un objet CO - # sinon afficher le nom du concept dans self.valeur_choisie - if self.node.item.is_CO(): - #print "display_valeur.is_CO" - self.b_co.invoke('OUI') - self.entry_co.insert(0,valeur.nom) - else: - self.valeur_choisie.set(valeur.nom) - - def record_valeur(self,name=None,mess='Valeur du mot-clé enregistrée'): - """ - Enregistre val comme valeur de self.node.item.object SANS faire de test de validité - """ - if self.parent.modified == 'n' : self.parent.init_modif() - if name != None: - valeur =name - else : - self.entry_co.delete(0,END) - valeur= self.entry_co.get() - self.node.item.set_valeur_co(valeur) - self.parent.appli.affiche_infos(mess) - # On met a jour le display dans le panneau - self.display_valeur() - if self.node.item.isvalid(): - self.node.parent.select() - - diff --git a/InterfaceTK/widgets.py b/InterfaceTK/widgets.py deleted file mode 100644 index a3317959..00000000 --- a/InterfaceTK/widgets.py +++ /dev/null @@ -1,1392 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== -# ---------------------------------------------------------- -# Cette classe sert à définir les widgets utilisés par -# EFICAS -# ---------------------------------------------------------- - -import Tkinter -from Tkinter import * -import Pmw -import os,sys,re,string -import types,fnmatch -import traceback -from tkFileDialog import * -from tkMessageBox import showinfo,askyesno,showerror,askretrycancel - -import fontes - -from Editeur.utils import save_in_file -from centerwindow import centerwindow - -from Noyau.N_utils import repr_float -from Accas import AsException - -# Surcharge de la fonction askyesno qui retourne un resultat errone en Python 2.3 avec Tk 8.4 -# et Tkinter.wantobject==1 -import tkMessageBox -def askyesno(title=None, message=None, **options): - "Ask a question; return true if the answer is yes" - s = tkMessageBox._show(title, message, tkMessageBox.QUESTION, tkMessageBox.YESNO, **options) - if s == tkMessageBox.YES:return 1 - if s == tkMessageBox.NO:return 0 - if s:return 1 - return 0 - - -class Fenetre : - """ Cette classe permet de créer une fenêtre Toplevel dans laquelle - on peut afficher un texte et qui permet de le sauver""" - def __init__(self,appli,titre="",texte="",wrap=WORD,width=100,height=30): - self.appli=appli - if self.appli.test==1 : return - self.fenetre = Toplevel() - self.fenetre.withdraw() - #self.fenetre.configure(width = 800,height=500) - self.fenetre.protocol("WM_DELETE_WINDOW", self.quit) - self.fenetre.title("Visualisation du "+titre) - self.texte = string.replace(texte,'\r\n','\n') - self.titre = titre - fonte=fontes.standardcourier10 - # définition des frames - self.frame_texte = Frame(self.fenetre) - self.frame_boutons = Frame(self.fenetre) - # définition de la zone texte et du scrollbar - self.zone_texte = Text(self.frame_texte,font=fonte,wrap=wrap, - height=height,width=width) - self.zone_texte.bind("", self.page_up) - self.zone_texte.bind("", self.page_down) - self.zone_texte.bind("", self.unit_up) - self.zone_texte.bind("", self.unit_down) - self.scroll_v = Scrollbar (self.frame_texte,command = self.zone_texte.yview) - #self.scroll_h = Scrollbar (self.frame_texte,command = self.zone_texte.xview) - self.scroll_v.pack(side='right',fill ='y') - #self.scroll_h.pack(side='bottom',fill ='x') - self.zone_texte.pack(side='top',fill='both',expand=1,padx=5,pady=10) - self.zone_texte.configure(yscrollcommand=self.scroll_v.set) - # définition des boutons - self.but_quit = Button(self.frame_boutons,text = "Fermer",command=self.quit, - default='active') - self.but_save = Button(self.frame_boutons,text = "Sauver",command = self.save) - self.but_quit.pack(side='left',padx=25, pady=5) - self.but_save.pack(side='right',padx=25, pady=5) - self.frame_boutons.pack(side='bottom',padx=5,pady=5) - self.frame_texte.pack(side='top',fill='both',expand=1,padx=5,pady=5) - self.zone_texte.focus_set() - self.fenetre.bind('',self.quit) #dismiss window - - # affichage du texte - self.affiche_texte(self.texte) - self.zone_texte.config(state=DISABLED) - centerwindow(self.fenetre) - self.fenetre.deiconify() - - def page_up(self,event): - event.widget.yview_scroll(-1, "page") - return "break" #Pour eviter la propagation de l'evenement a la fenetre principale - def page_down(self,event): - event.widget.yview_scroll(1, "page") - return "break" #Pour eviter la propagation de l'evenement a la fenetre principale - def unit_up(self,event): - event.widget.yview_scroll(-1, "unit") - return "break" #Pour eviter la propagation de l'evenement a la fenetre principale - def unit_down(self,event): - event.widget.yview_scroll(1, "unit") - return "break" #Pour eviter la propagation de l'evenement a la fenetre principale - - def wait(self): - self.fenetre.grab_set() - self.zone_texte.focus_set() - self.fenetre.wait_window(self.fenetre) - - def quit(self,event=None): - self.fenetre.destroy() - return "break" #Pour eviter la propagation de l'evenement a la fenetre principale - - def efface_scroll(self): - """ Efface le scroll lorsqu'il n'est pas nécessaire : ne marche pas""" - self.scroll_v.pack_forget() - #self.scroll_h.pack_forget() - - def affiche_texte(self,texte): - """ Affiche le texte dans la fenêtre """ - if texte != "" : - self.zone_texte.insert(END,texte) - self.fenetre.update_idletasks() - curline = int(self.zone_texte.index("insert").split('.')[0]) - if curline < int(self.zone_texte["height"]): - self.efface_scroll() - - def save(self): - """ Permet de sauvegarder le texte dans un fichier dont on a demandé le nom - à l'utilisateur """ - file = asksaveasfilename(parent=self.fenetre,defaultextension = '.comm', - #initialdir = self.appli.CONFIGURATION.rep_user, - initialdir = self.appli.CONFIGURATION.savedir, - title="Sauvegarde du "+self.titre) - if file : - 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",parent=self.fenetre) - else: - showinfo("Sauvegarde effectuée","Sauvegarde effectuée dans le fichier %s" %file,parent=self.fenetre) - - def destroy(self): - try : - self.fenetre.destroy() - except : - pass - -class FenetreSurLigneWarning(Fenetre): - - def affiche_texte(self,texte): - """ Affiche le texte dans la fenêtre """ - ligne=0 - if texte != "" : - texte_cr=texte.splitlines() - for l in texte_cr: - ligne=ligne+1 - l=l+"\n" - self.zone_texte.insert(END,l) - if (l.find("WARNING") > -1) or (l.find("ERROR") > -1) : - self.zone_texte.tag_add( "Rouge", str(ligne)+".0", "end-1c" ) - self.zone_texte.tag_config("Rouge", foreground='red') - try: - self.fenetre.update_idletasks() - x0,y0,x1,y1 = self.zone_texte.bbox(END) - if (y1-y0) < 300 : self.efface_scroll() - except: - pass - -class FenetreYesNo(Fenetre): - def __init__(self,appli,titre="",texte="",yes="Yes",no="No"): - self.appli=appli - self.fenetre = Toplevel() - self.fenetre.protocol("WM_DELETE_WINDOW", self.quit) - self.fenetre.title(titre) - self.texte = string.replace(texte,'\r\n','\n') - self.titre = titre - fonte=fontes.standardcourier10 - # définition des frames - self.frame_texte = Frame(self.fenetre) - self.frame_boutons = Frame(self.fenetre) - # définition de la zone texte et du scrollbar - self.zone_texte = Text(self.frame_texte,font=fonte) - self.zone_texte.bind("", self.page_up) - self.zone_texte.bind("", self.page_down) - self.zone_texte.bind("", self.unit_up) - self.zone_texte.bind("", self.unit_down) - self.scroll_v = Scrollbar (self.frame_texte,command = self.zone_texte.yview) - #self.scroll_h = Scrollbar (self.frame_texte,command = self.zone_texte.xview) - self.scroll_v.pack(side='right',fill ='y') - #self.scroll_h.pack(side='bottom',fill ='x') - self.zone_texte.pack(side='top',fill='both',expand=1,padx=5,pady=10) - self.zone_texte.configure(yscrollcommand=self.scroll_v.set) - # définition des boutons - self.but_yes = Button(self.frame_boutons,text = yes,command=self.yes) - self.but_no = Button(self.frame_boutons,text = no,command = self.no) - self.but_yes.pack(side="left",padx=5,pady=5) - self.but_no.pack(side="left",padx=5,pady=5) - self.frame_boutons.pack(side="top",padx=5,pady=5) - # affichage du texte - self.affiche_texte(self.texte) - self.frame_texte.pack(side="top",fill='both',padx=5,pady=5,expand=1) - centerwindow(self.fenetre) - - def yes(self): - self.result=1 - self.quit() - - def no(self): - self.result=0 - self.quit() - -class FenetreDeSelection(Fenetre): - """ Classe dérivée de Fenêtre permettant la récupération d'une zone de texte sélectionnée. - Cette classe est utilisée pour affecter une liste de valeurs à un mot-clé. - """ - def __init__(self,panel,item,appli,titre="",texte="",cardinal=1): - Fenetre.__init__(self,appli,titre=titre,texte=texte,width=20,height=15) - - self.cardinal=cardinal - #self.fenetre.configure(width = 320,height=400) - self.panel = panel - self.item = item - self.fenetre.title(titre) - self.but_save.configure(text="Ajouter",command=self.traite_selection) - # séparateur par défaut - self.separateur = ';' - # création de la zone de saisie du séparateur - l_separateurs_autorises = self.get_separateurs_autorises() - self.choix_sep = Pmw.ComboBox(self.frame_boutons, - label_text = "Séparateur :", - labelpos = 'w', - listheight = 100, - selectioncommand = self.choose_separateur, - scrolledlist_items = l_separateurs_autorises) - self.choix_sep.component('entry').configure(width=6) - self.choix_sep.grid(row=0,rowspan=2,padx=5,pady=5) - #self.choix_sep.selectitem(self.separateur) - # Replacement - self.but_quit.pack_forget() - self.but_save.pack_forget() - self.but_all = Button(self.frame_boutons,text = "Tout Sélectionner", command=self.tout) - self.but_save.grid(row=1,column=1,padx=5,pady=5) - self.but_quit.grid(row=1,column=2,padx=5,pady=5) - self.but_all.grid(row=0,column=1,columnspan=2,padx=5,pady=5) - self.choose_separateur('espace') - centerwindow(self.fenetre) - - - def get_separateurs_autorises(self): - """ - Retourne la liste des séparateurs autorisés - """ - return ['espace',';',','] - - def choose_separateur(self,nom_sep): - """ - Affecte à self.separateur le caractère séparateur correspondant à nom_sep - """ - if nom_sep == 'espace' : - self.separateur = ' ' - else: - self.separateur = nom_sep - - def 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) - - 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,liste = self.recupere_liste() - if self.test_probleme(message,"Sélectionnez des données") == 0: - return - # Vérifie que le nombre de données est dans les limites attendues - message = self.verif_liste(liste) - if self.test_probleme(message,"Vérifiez le nombre de données") == 0: - return - # Crée une liste de valeurs du type attendu - message,liste_valeurs = self.creation_liste_valeurs(liste) - if self.test_probleme(message,"Vérifiez le type des données") == 0: - return - # Vérifie que chaque valeur est dans le domaine exigé - message = self.verif_valeurs(liste_valeurs) - if self.test_probleme(message,"Vérifiez le domaine des valeurs") == 0: - return - # Ajoute les valeurs dans la liste de valeurs du mot-clé - if self.cardinal != 1 : - nb=self.cardinal - l_valeurs=[] - # a ameliorer - if (len(liste_valeurs)%nb != 0): - message="La cardinalité n'est pas correcte" - self.test_probleme(message,"On attend des tuples") - return - for i in range(len(liste_valeurs)/nb) : - if (nb==2): - t=(liste_valeurs[i*nb], liste_valeurs[i*nb+1]) - elif (nb ==3): - t=(liste_valeurs[i*nb], liste_valeurs[i*nb+1], liste_valeurs[i*nb+2]) - else : - print "probleme : prevenir la maintenance Eficas" - return - l_valeurs.append(t) - liste_valeurs=l_valeurs - self.ajouter_valeurs(liste_valeurs) - self.appli.affiche_infos("Liste de valeurs acceptée") - - def test_probleme(self, message, message_eficas): - """ Cette méthode affiche un message d'erreur si message != '' - et retourne 0, sinon retourne 1 sans rien afficher. - """ - if message != "": - showinfo("Problème",message,parent=self.fenetre) - self.fenetre.tkraise() - self.appli.affiche_infos(message_eficas) - return 0 - else: - return 1 - - def recupere_liste(self): - """ Cette méthode récupère le texte de la zone sélectionnée, construit et - retourne une liste avec les chaines qui se trouvent entre les séparateurs. - S'il n'y a pas de données selectionnées, elle retourne un message d'erreur - et une liste vide. - """ - message = "" - try: - selection=self.fenetre.selection_get() - except: - message = "Pas de donnée sélectionnée" - return message,None - # les retours chariots doivent être interprétés comme des séparateurs - selection = string.replace(selection,'\n',self.separateur) - # on splitte la sélection suivant le caractère séparateur - liste_chaines = string.split(selection,self.separateur) - l_chaines = [] - for chaine in liste_chaines: - chaine = string.strip(chaine) - if chaine != '' : l_chaines.append(chaine) - return message,l_chaines - - def verif_liste(self, liste): - """ Cette méthode effectue des tests sur le nombre d'éléments de la liste - et retourne 1 si la liste est correcte, sinon 0 et le message d'erreur - correspondant. - """ - message = "" - # nombre d'éléments sélectionnés - nombre_elements = len(liste) - # nombre d'éléments déja dans la liste du panel - nombre_in_liste = len(self.panel.Liste_valeurs.get_liste()) - multiplicite = self.item.GetMultiplicite() - if (nombre_elements % multiplicite) != 0: - message = "Vous devez sélectionner "+str(multiplicite)+" * n données" - return message - nombre_valeurs = nombre_elements / multiplicite - cardinalite = self.item.GetMinMax() - if nombre_valeurs < cardinalite[0]: - message = "Vous devez sélectionner au moins "+str(cardinalite[0])+" valeurs" - return message - if cardinalite[1] != "**" and nombre_valeurs > (long(cardinalite[1])-nombre_in_liste): - message = "La liste ne peut avoir plus de "+str(cardinalite[1])+" valeurs" - return message - - return message - - def creation_liste_valeurs(self, liste): - """ Cette méthode crée et retourne une liste de valeurs du type attendu - par le mot-clé. La liste de valeurs est créée à partir de la liste - de chaines de caractères transmise. - """ - type_attendu = self.item.GetType()[0] - if type_attendu == 'R': - return self.convertir(liste, f_conversion= float) - elif type_attendu == 'I': - return self.convertir(liste, f_conversion= int) - elif type_attendu == 'TXM': - return self.convertir(liste) - else: - message = "Seuls les entiers, les réels et les chaines de caractères sont convertis" - return message,None - - def convertir(self, liste, f_conversion=None): - """ Cette méthode essaie de convertir les éléments de la liste avec la - fonction f_conversion si elle existe, et retourne la liste des - éléments dans le type voulu en cas de succès, sinon retourne None. - """ - liste_valeurs = [] - message = "" - for chaine in liste: - if f_conversion: - try: - liste_valeurs.append(f_conversion(chaine)) - except: - message = "Impossible de convertir "+chaine+" dans le type attendu" - return message,None - else: - liste_valeurs.append(chaine) - return message,liste_valeurs - - def verif_valeurs(self, liste_valeurs): - """ Cette méthode teste la validité de tous les éléments de la liste, - retourne un message vide s'ils sont valides - ou un message non vide au premier élément non valide rencontré - """ - message = "" - for valeur in liste_valeurs: - test,message = self.item.object.verif_type(valeur) - if test == 0: return message - return message - - def ajouter_valeurs(self, liste_valeurs): - """ Cette méthode ajoute les nouvelles valeurs à la liste existante.""" - liste = self.panel.Liste_valeurs.get_liste() - liste.extend(liste_valeurs) - self.panel.Liste_valeurs.put_liste(liste) - -class FenetreDeParametre(Fenetre) : - def __init__(self,parent,item,appli,texte): - self.parent=parent - self.appli=appli - self.fenetre = Toplevel() - #self.fenetre.configure(width = 250,height=100) - self.fenetre.protocol("WM_DELETE_WINDOW", self.quit) - self.fenetre.title("Parametres") - self.titre = "Parametres" - self.texte = string.replace(texte,'\r\n','\n') - fonte=fontes.standardcourier10 - - # définition des frames - self.frame_texte = Frame(self.fenetre) - # définition de la zone texte et du scrollbar - self.zone_texte = Text(self.frame_texte,font=fonte,width=40) - self.zone_texte.bind("", self.page_up) - self.zone_texte.bind("", self.page_down) - self.zone_texte.bind("", self.unit_up) - self.zone_texte.bind("", self.unit_down) - self.scroll_v = Scrollbar (self.frame_texte,command = self.zone_texte.yview) - self.scroll_v.pack(side='right',fill ='y') - self.zone_texte.pack(side='top',fill='both',expand=1,padx=5,pady=10) - self.zone_texte.configure(yscrollcommand=self.scroll_v.set) - # affichage du texte - self.affiche_texte(self.texte) - self.zone_texte.config(state="disabled") - - # définition des boutons - self.frame_boutons = Frame(self.fenetre) - self.label1 = Label(self.frame_boutons,text="surligner la\nligne entière",justify=LEFT) - 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_quit.pack(side='right',padx=5, pady=5) - self.but_save.pack(side='right',padx=5, pady=5) - self.label1.pack(side='right',padx=5, pady=5) - self.frame_boutons.pack(side='bottom') - self.frame_texte.pack(side='top',expand=1,fill='both') - - - def Choisir(self): - try: - selection=self.zone_texte.selection_get() - except: - showerror("Pas de donnée sélectionnée", - "Selectionner un parametre") - l_param = "" - for param in selection.splitlines(): - 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() - - def affiche_texte(self,texte): - """ Affiche le texte dans la fenêtre """ - if texte != "" : - self.zone_texte.insert(END,texte) - self.fenetre.update_idletasks() - curline = int(self.zone_texte.index("insert").split('.')[0]) - if curline < int(self.zone_texte["height"]): - self.zone_texte["height"]=curline - self.efface_scroll() - -class Formulaire: - """ - Cette classe permet de créer une boîte Dialog dans laquelle - 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 - self.texte = texte - self.fen_pere = fen_pere - self.obj_pere = obj_pere - self.mode= mode - self.command = commande - self.display() - - def display(self): - self.init_validateurs() - self.init_fenetre() - self.init_texte() - self.init_items_formulaire() - self.fenetre.activate(geometry='centerscreenalways') - - def init_validateurs(self): - """ - Crée le dictionnaire des validateurs des objets reconnus par le formulaire - """ - self.d_validateurs = {} - self.d_validateurs['rep'] = self.repvalidator - self.d_validateurs['file'] = self.filevalidator - self.d_validateurs['cata']= self.catavalidator - 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): - """ - Crée la fenêtre Dialog - """ - if self.mode == 'query': - buttons=('Valider','Annuler') - defaultbutton = 'Valider' - elif self.mode == 'display': - if self.command : - buttons=(self.command[0],'OK') - defaultbutton = 'OK' - else: - buttons=('OK') - defaultbutton = 'OK' - self.fenetre = Pmw.Dialog(self.fen_pere, - buttons=buttons, - defaultbutton = defaultbutton, - title = self.titre, - command = self.execute) - self.fenetre.withdraw() - - def init_texte(self): - """ - Crée le label qui affiche le texte à l'intérieur du panneau - """ - fonte=fontes.standard - fr_texte = Frame(self.fenetre.interior(),height=60) - fr_texte.pack(side='top',fill='x',expand=1) - Label(fr_texte,text = self.texte, font=fonte).place(relx=0.5,rely=0.5,anchor='center') - - def init_items_formulaire(self): - """ - Crée et affiche les items dans la boîte de dialogue - """ - self.radiobut = 0 - self.widgets = [] - self.item_widgets = {} - length_maxi = 0 - for item in self.items: - if len(item[0])>length_maxi : length_maxi = len(item[0]) - window = self.fenetre.interior() - for item in self.items : - if len(item) == 4 : - label,nature,nom_var,defaut = item - 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','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) - self.widgets.append(e_item) - self.item_widgets[item] = e_item - if defaut : e_item.insert(0,str(defaut)) - elif nature == 'YesNo': - # création de la StringVar - var = StringVar() - setattr(self,'item_'+nom_var,var) - var.set(defaut) - # création du radiobouton - rb1 = Radiobutton(fr_item,text=chaine,variable=var,value='OUI') - rb2 = Radiobutton(fr_item,text=chaine2,variable=var,value='NON') - rb1.place(relx=0.65,rely=0.5,anchor='center') - rb2.place(relx=0.80,rely=0.5,anchor='center') - self.widgets.append((rb1,rb2)) - self.item_widgets[item] = var - # détermination de la méthode à appliquer sur les boutons - if self.mode == 'query': - function = self.active - elif self.mode == 'display': - function = self.inactive - else: - return - # on applique la méthode sur les boutons (activation ou désactivation) - for widget in self.widgets : - if type(widget) == types.TupleType: - for widg in widget : - apply(function,(widg,),{}) - else: - apply(function,(widget,),{}) - - def active(self,widget): - """ - Active le widget passé en argument - """ - widget.configure(state='normal',bg='white') - - def inactive(self,widget): - """ - Inactive le widget passé en argument - """ - if not isinstance(widget,Radiobutton) : - widget.configure(state='disabled',bg='gray95') - else : - widget.configure(state='disabled') - -# -------------------------------------------------------------------------------- -# Validateurs des noms de répertoire, de fichiers et de catalogues -# ------------------------------------------------------------------------------- - - def 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 - Retourne 1 si valide, 0 sinon - """ - return os.path.isdir(text),'Répertoire introuvable : %s' %text - - def filevalidator(self,text): - """ - Teste si text peut faire référence à un fichier ou non - Retourne 1 si valide, 0 sinon - """ - return os.path.isfile(text),'Fichier introuvable : %s' %text - - def catavalidator(self,text): - """ - Teste si text est un chemin d'accès valide à un catalogue - Retourne 1 si valide, 0 sinon - """ - return os.path.isfile(text),"Catalogue introuvable : %s" %text - -# -------------------------------------------------------------------------------- -# Méthodes callbacks des boutons et de fin -# -------------------------------------------------------------------------------- - - def execute(self,txt): - """ - Cette commande est activée à chaque clic sur un bouton. - Redirige l'action sur la bonne méthode en fonction du bouton activé - """ - if txt == 'Valider': - self.fini() - elif txt in ('OK','Annuler'): - self.quit() - elif txt == 'Modifier': - self.resultat = apply(self.command[1],(),{}) - self.fenetre.destroy() - else : - self.quit() - - def fini(self): - """ - Commande qui termine le panneau et sauvegarde les nouvelles options - dans l'objet resultat (dictionnaire) - """ - dico={} - for item,widget in self.item_widgets.items(): - nom_var = item[2] - type_var = item[1] - valeur = widget.get() - if self.d_validateurs.has_key(type_var): - test = self.d_validateurs[type_var](valeur) - if not test : - # une entrée n'est pas valide --> on la met en surbrillance et on quitte la méthode - # sans tuer la fenêtre bien sûr - widget.selection_range(0,END) - return - dico[nom_var] = valeur - self.fenetre.destroy() - self.resultat=dico - - def quit(self): - self.fenetre.destroy() - self.resultat=None - -class ListeChoix : - """ Cette classe est utilisée pour afficher une liste de choix passée en paramètre - en passant les commandes à lancer suivant différents bindings """ - def __init__(self,parent,page,liste,liste_commandes=[],liste_marques =[],active ='oui',filtre='non',titre='', - optionReturn=None, fonte_titre=fontes.standard_gras_souligne): - self.parent = parent - self.page = page - self.liste = liste - self.dico_labels={} - self.dico_mots={} - self.nBlabel = 0 - self.dico_place={} - self.dico_mots={} - self.selection = None - self.liste_commandes = liste_commandes - self.liste_marques = liste_marques - self.arg_selected='' - self.active = active - self.titre = titre - self.filtre = filtre - self.optionReturn = optionReturn - self.fonte_titre=fonte_titre - self.init() - - def init(self): - self.make_label_titre() - self.make_entry_filtre() - self.make_text_box() - try: - self.entry.component('entry').focus() - except: - pass - - def make_label_titre(self): - """ Crée le label correspondant au titre """ - if self.titre == '' : return - self.label = Label(self.page, - text = self.titre, - font = self.fonte_titre) - self.label.pack(side='top',pady=2) - - def make_entry_filtre(self): - """ Crée l'entry permettant à l'utilisateur d'entrer un filtre de sélection dans la liste """ - if self.filtre != 'oui' : return - self.entry = Pmw.EntryField(self.page,labelpos='w', - label_text="Filtre :", - command=self.entry_changed) - self.entry.pack(side='top',pady=2) - - def make_text_box(self): - """ Crée la fenêtre texte dans laquelle sera affichée la liste """ - self.MCbox = Text (self.page,relief='sunken',bg='gray95',bd=2) - self.MCscroll = Scrollbar (self.page,command = self.MCbox.yview) - self.MCscroll.pack(side='right',fill ='y',pady=2) - self.MCbox.pack(fill='y',expand=1,padx=2,pady=2) - self.MCbox.configure(yscrollcommand=self.MCscroll.set) - - - def affiche_liste(self): - """ Affiche la liste dans la fenêtre""" - liste_labels=[] - self.MCbox.config(state=NORMAL) - self.MCbox.delete(1.0,END) - self.nBlabel = 0 - self.dico_place={} - for objet in self.liste : - if type(objet) == types.InstanceType: - try: - mot = objet.nom - except: - mot = str(objet) - elif type(objet) in (types.StringType,types.IntType): - mot = objet - elif type(objet) == types.FloatType : - mot = self.parent.get_valeur_texte(objet) - if mot == "" : - mot = str(objet) - elif type(objet) == types.TupleType : - mot="(" - premier=1 - for val in objet: - if (not premier): - mot=mot+"," - else: - premier=0 - valtexte = self.parent.get_valeur_texte(val) - if valtexte != "" : - mot=mot+valtexte - else: - mot=mot+str(val) - mot=mot+")" - elif string.find(str(type(objet)),".SD.") : - mot=objet.nom - else : - mot=`objet` - label = Label(self.MCbox, - text = mot, - fg = 'black',bg = 'gray95',justify = 'left') - self.dico_labels[mot]=label - self.dico_place[mot]=self.nBlabel - self.dico_mots[label]=mot - self.nBlabel=self.nBlabel+1 - liste_labels.append(label) - self.MCbox.window_create(END, - window=label, - stretch = 1) - self.MCbox.insert(END,'\n') - if self.optionReturn != None : - label.bind("",lambda e,s=self,c=self.liste_commandes[2][1],x=objet,l=label : s.chooseitemsurligne(x,l,c)) - label.bind("",lambda e,s=self,c=self.liste_commandes[2][1],x=objet,l=label : s.chooseitemsurligne(x,l,c)) - label.bind("",lambda e,s=self,x=objet,l=label : s.selectNextItem(x,l)) - label.bind("",lambda e, s=self,x=objet,l=label : s.selectNextItem(x,l)) - label.bind("" ,lambda e,s=self,x=objet,l=label : s.selectPrevItem(x,l)) - label.bind("" ,lambda e,s=self,x=objet,l=label : s.selectPrevItem(x,l)) - if self.active == 'oui': - label.bind(self.liste_commandes[0][0],lambda e,s=self,c=self.liste_commandes[0][1],x=objet,l=label : s.selectitem(x,l,c)) - label.bind(self.liste_commandes[1][0],lambda e,s=self,c=self.liste_commandes[1][1],x=objet,l=label : s.deselectitem(l,x,c)) - label.bind(self.liste_commandes[2][0],lambda e,s=self,c=self.liste_commandes[2][1],x=objet,l=label : s.chooseitem(x,l,c)) - - for marque in self.liste_marques: - try: - self.markitem(liste_labels[marque]) - except: - pass - - self.MCbox.config(state=DISABLED) - self.selection = None - self.dontselect=0 - for event,callback in self.liste_commandes: - if event == "": - self.selection=None,None,callback - break - - def clear_marque(self): - try: - self.dico_labels[self.arg_selected].configure(bg='gray95',fg='black') - self.arg_selected = '' - except : - pass - - def surligne(self,marque): - try : - self.highlightitem(self.dico_labels[marque]) - self.arg_selected = marque - except: - pass - - def chooseitemsurligne(self,mot,label,commande): - """ Active la méthode de choix passée en argument""" - try: - mot=self.arg_selected - commande(mot) - except AsException,e: - raison=str(e) - showerror(raison.split('\n')[0],raison) - - def chooseitem(self,mot,label,commande): - """ Active la méthode de choix passée en argument""" - try: - commande(mot) - except AsException,e: - raison=str(e) - 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: - labelsuivant=self.dico_labels[mot] - index = self.MCbox.index(labelsuivant) - self.MCbox.see(index) - except : - posmot=self.dico_place[mot] - totale=self.nBlabel + 0.0 - self.MCbox.yview_moveto(posmot/totale) - - def selectNextItem(self,mot,label): - index=self.liste.index(mot) - indexsuivant=index+1 - if indexsuivant > len(self.liste) -1: - indexsuivant=0 - motsuivant=self.liste[indexsuivant] - labelsuivant=self.dico_labels[motsuivant] - self.afficheMot(motsuivant) - self.selectthis(motsuivant,labelsuivant,self.selection[2],) - self.dontselect=1 - - def selectPrevItem(self,mot,label): - index=self.liste.index(mot) - indexprec=index-1 - motprec=self.liste[indexprec] - labelprec=self.dico_labels[motprec] - self.afficheMot(motprec) - self.selectthis(motprec,labelprec,self.selection[2],) - self.dontselect=1 - - def selectthis(self,mot,label,commande) : - self.clear_marque() - if self.selection != None : - self.deselectitem(self.selection[1],self.selection[0],self.selection[2],) - self.highlightitem(label) - self.selection = (mot,label,commande) - self.arg_selected = mot - if commande : commande(mot) - - def selectitem(self,mot,label,commande) : - """ Met l'item sélectionné (représenté par son label) en surbrillance - et lance la commande associée au double-clic""" - if self.dontselect: - self.dontselect=0 - return - self.selectthis(mot,label,commande) - - def highlightitem(self,label) : - """ Met l'item représenté par son label en surbrillance """ - label.focus_set() - label.configure(bg='#00008b',fg='white') - - def markitem(self,label): - """ Met l'item (représenté par son label) en rouge """ - label.configure(bg='gray95',fg='red') - - def deselectitem(self,label,mot='',commande=None) : - """ Remet l'item (représenté par son label) en noir""" - if label:label.configure(bg='gray95',fg='black') - self.arg_selected = '' - if commande and mot : commande(mot) - - def cherche_selected_item(self): - try : - index=self.MCbox.index(self.selection[1]) - lign,col=map(int,string.split(index,'.')) - except : - label=self.dico_labels[self.arg_selected] - mot=self.dico_mots[label] - lign=self.dico_place[mot]+1 - return lign - - def remove_selected_item(self): - try : - index=self.MCbox.index(self.selection[1]) - lign,col=map(int,string.split(index,'.')) - except : - label=self.dico_labels[self.arg_selected] - mot=self.dico_mots[label] - lign=self.dico_place[mot]+1 - del self.liste[lign-1] - self.affiche_liste() - - def entry_changed(self,event=None): - """ Cette méthode est invoquée chaque fois que l'utilisateur modifie le contenu - de l'entry et frappe """ - if self.arg_selected != '' : self.deselectitem(self.dico_labels[self.arg_selected]) - filtre = self.entry.get()+"*" - FILTRE = string.upper(filtre) - self.dontselect=0 - for arg in self.liste : - if fnmatch.fnmatch(arg,filtre) or fnmatch.fnmatch(arg,FILTRE) : - label=self.dico_labels[arg] - self.afficheMot(arg) - self.selectitem(arg,label,self.selection[2]) - break - - #try : - #self.dico_labels[self.arg_selected].focus_set() - #except : - #pass - - - # PN attention à la gestion des paramétres - # cela retourne H = 1 , et ni H, ni 1 - # print repr(val) - # print val.__class__.__name__ - def get_liste(self): - l=[] - for val in self.liste: -# try: -# v = eval(val) -# l.append(v) -# except: - l.append(val) - return l - - def put_liste(self,liste): - self.liste = liste - self.affiche_liste() - -class Affichage : - """ Cette classe permet d'afficher au lancement d'EFICAS le message - d'attente et la barre de progression""" - def __init__(self,master,message,barre ='oui'): - from Tools.foztools.foztools import Slider - fonte=fontes.standard12_gras - self.master=master - self.frame = Frame(self.master) - self.frame.pack(expand=1,fill='both') - self.mess = Label(self.frame,text=message,justify='center', - bd=2,relief='groove',font=fonte) - self.mess.pack(in_ = self.frame,side='top',expand=1,fill='both') - self.progress = Slider(self.frame,value=0,max=100,orientation='horizontal', - fillColor='#00008b',width=200,height=30, - background='white',labelColor='red') - if barre == 'oui': - self.progress.frame.pack(in_=self.frame,side='top') - self.master.update() - if barre == 'oui': - self.progress.frame.after(1000,self.update) - - def configure(self,**options): - if options.has_key('message'): - self.mess.configure(text=options['message']) - if options.has_key('barre'): - if options['barre'] == 'oui' : - self.progress.frame.pack(in_=self.frame,side='top') - elif options['barre'] == 'non' : - self.progress.frame.pack_forget() - self.master.update_idletasks() - - def quit(self): - self.frame.destroy() - self.master.update() - - def update(self,event=None): - """ Permet de faire avancer la barre de progression """ - try : - bar=self.progress - bar.value = bar.value+self.increment - bar.update() - self.master.after(100,self.update) - except: - pass - - def configure_barre(self,nb): - """ Calcule l'incrément de progression de la barre en fonction - du nombre d'opérations à effectuer afin que le compteur - soit à 100% à la fin des opérations""" - self.increment = 100./nb - self.progress.update() - -class Ask_Format_Fichier : - """ - Cette classe permet de créer une fenêtre Toplevel dans laquelle - on propose le choix du format de fichier de commandes à ouvrir - """ - def __init__(self,appli): - self.fenetre = Toplevel() - self.fenetre.configure(width = 250,height=150) - self.fenetre.protocol("WM_DELETE_WINDOW", self.quit) - self.fenetre.title("Choix du format du fichier de commandes") - # définition des frames - self.frame_texte = Frame(self.fenetre) - self.frame_radioboutons = Frame(self.fenetre) - self.frame_bouton_ok = Frame(self.fenetre) - self.frame_texte.place(relx=0,rely=0,relwidth=1,relheight=0.3) - self.frame_radioboutons.place(relheight=0.5,relx=0,rely=0.3,relwidth=1.) - self.frame_bouton_ok.place(relheight=0.2,relx=0,rely=0.8,relwidth=1.) - # définition de la zone texte et du scrollbar - zone_texte = Label(self.frame_texte,text = "Format du fichier à ouvrir :") - zone_texte.pack(side='top',fill='both',expand=1,padx=5,pady=10) - # définition des radioboutons - Radiobutton(self.frame_radioboutons,text='Format Aster (Code_Aster --> v5)', - variable=appli.format_fichier,value='Aster').pack(anchor='n') - Radiobutton(self.frame_radioboutons,text='Format Python (Code_Aster v6-->)', - variable=appli.format_fichier,value='Python').pack(anchor='n') - # création du bouton OK - Button(self.frame_bouton_ok,text='OK',command=self.quit).pack(anchor='n') - # centrage de la fenêtre - centerwindow(self.fenetre) - - def quit(self): - self.fenetre.destroy() - -class BARRE_K2000(Toplevel): - def __init__(self,master=None,text = ""): - Toplevel.__init__(self,master,relief='groove') - self.master.iconify() - self.geometry("250x100+0+0") - self.protocol("WM_DELETE_WINDOW",self.quit) - # frame principale dans self (= Toplevel) - self.frame = Frame(self) - self.frame.place(relwidth=1,relheight=1) - # frame contenant le texte à afficher - self.frame_text = Frame(self.frame) - self.frame_text.place(relwidth=1,relheight=0.75,rely=0) - # frame contenant le canvas de la barre - self.frame_canv = Frame(self.frame) - self.frame_canv.place(relwidth=1,relheight=0.25,rely=0.75) - # canvas dans lequel sera affichée la barre K2000 - self.canvas = Canvas(self.frame_canv) - self.canvas.place(relx=0.5,rely=0.5,relheight=0.8,relwidth=0.8,anchor='center') - # on affiche le texte et la barre - self.build_text(text) - self.build_batons() - #self.overrideredirect(1) - # on active la barre ... - self.master.after(1000,self.launch) - # on centre la fenêtre - centerwindow(self) - self.focus() - - def build_text(self,text): - """ - Affichage de text dans frame_text - """ - self.texte_var = StringVar() - self.texte_var.set(text) - Label(self.frame_text,textvariable=self.texte_var).place(relx=0.5,rely=0.5,anchor='center') - - def build_batons(self): - """ - Construit la suite de bâtons dans le canvas - """ - self.l_batons=[] - self.black = -1 - self.sens = 'D' - self.quit = 0 - for i in range(0,40): - id = self.canvas.create_rectangle(i*5,0,(i+1)*5,20,fill='gray90',outline='') - self.l_batons.append(id) - - def launch(self): - """ - Active la barre K2000 en affichant les bâtons avec des couleurs en dégradé - """ - if self.quit == 1 : - self.destroy() - self.master.deiconify() - return - if self.sens == 'D': - self.black = self.black+1 - l_bat = self.l_batons[0:self.black+1] - l_bat.reverse() - elif self.sens == 'G': - self.black = self.black-1 - l_bat = self.l_batons[self.black:] - i=0 - for bat in l_bat : - num_color = 5+i*10 - if num_color < 10 : color = 'black' - elif num_color > 90 : color = 'white' - else: color = 'gray'+`num_color` - self.canvas.itemconfigure(bat,fill=color) - i=i+1 - if self.black == len(self.l_batons) : - self.sens = 'G' - if self.black == 0 and self.sens == 'G':self.sens = 'D' - self.after(80,self.launch) - - def update_text(self,new_text): - """ - Remplace le texte affiché par new_text - """ - self.texte_var.set(new_text) - - def quit(self): - self.quit = 1 - -class ListeChoixParGroupes(ListeChoix) : - """ - Cette classe est utilisée pour afficher une liste de commandes classées par - groupes. L'utilisateur peut réaliser des actions de selection - qui déclenchent des actions spécifiées par les bindings contenus dans liste_commandes - Exemple de binding: - liste_commandes = (("",self.selectCmd), - ("",self.deselectCmd), - ("",self.defCmd)) - Il s'agit d'une liste de doublets dont le premier element est un evenement et le - deuxieme un callback a appeler sur l'evenement en question. - - """ - def __init__(self,parent,page,liste_groupes,dict_groupes,liste_commandes=[],liste_marques =[], - active ='oui',filtre='non',titre='',optionReturn=None,fonte_titre=fontes.standard_gras_souligne): - self.parent = parent - self.page = page - self.liste_groupes = liste_groupes - self.dict_groupes = dict_groupes - self.dico_labels={} - self.selection = None - self.liste_commandes = liste_commandes - self.liste_marques = liste_marques - self.arg_selected='' - self.active = active - self.titre = titre - self.filtre = filtre - self.optionReturn = optionReturn - self.fonte_titre=fonte_titre - self.init() - - def affiche_liste(self): - """ Affiche la liste dans la fenêtre""" - liste_labels=[] - self.dico_mots={} - self.MCbox.config(state=NORMAL) - self.MCbox.delete(1.0,END) - for grp in self.liste_groupes: - # On itère sur les groupes - if grp == "CACHE":continue - liste_commandes=self.dict_groupes[grp] - text="GROUPE<<<<<<<< "+grp+" " - text=text+">"*max(0,30-len(text)) - label = Label(self.MCbox, - text = text, - fg = 'black',bg = 'gray95',justify = 'left') - # On stocke la relation entre le nom de la commande et le label - self.dico_labels[grp]=label - liste_labels.append(label) - self.MCbox.window_create(END, - window=label, - stretch = 1) - self.MCbox.insert(END,'\n') - for cmd in liste_commandes: - label = Label(self.MCbox, - text = cmd, - fg = 'black',bg = 'gray95',justify = 'left') - # On stocke la relation entre le nom de la commande et le label - self.dico_labels[cmd]=label - self.dico_mots[label]=cmd - self.MCbox.window_create(END, - window=label, - stretch = 1) - self.MCbox.insert(END,'\n') - - def null(*tp,**args): return - - if self.active == 'oui': - # Traitement par defaut des evenements - label.bind("",lambda e,s=self,c=null,x=cmd,l=label: s.selectitem(x,l,c)) - label.bind("",lambda e,s=self,c=null,x=cmd,l=label: s.deselectitem(l,x,c)) - label.bind("",lambda e,s=self,c=null,x=cmd,l=label: s.chooseitem(x,l,c)) - label.bind("",lambda e,s=self,c=null,x=cmd,l=label: s.chooseitem(x,l,c)) - label.bind("",lambda e,s=self,c=null,x=cmd,l=label: s.chooseitem(x,l,c)) - label.bind("",lambda e,s=self,c=null,x=cmd,l=label,gr=grp: s.selectNextItem(x,l,c,gr,x)) - label.bind("",lambda e,s=self,c=null,x=cmd,l=label,gr=grp: s.selectNextItem(x,l,c,gr,x)) - label.bind("",lambda e,s=self,c=null,x=cmd,l=label,gr=grp: s.selectPrevItem(x,l,c,gr,x)) - label.bind("",lambda e,s=self,c=null,x=cmd,l=label,gr=grp: s.selectPrevItem(x,l,c,gr,x)) - - # Si des callbacks sont definis on les utilise - for event,callback in self.liste_commandes: - if event == "": - label.bind("",lambda e,s=self,c=callback,x=cmd,l=label: s.selectitem(x,l,c)) - elif event == "": - label.bind("",lambda e,s=self,c=callback,x=cmd,l=label: s.deselectitem(l,x,c)) - elif event == "": - label.bind("",lambda e,s=self,c=callback,x=cmd,l=label: s.chooseitem(x,l,c)) - elif event == "": - label.bind("",lambda e,s=self,c=callback,x=cmd,l=label: s.chooseitem(x,l,c)) - elif event == "": - label.bind("",lambda e,s=self,c=callback,x=cmd,l=label: s.chooseitem(x,l,c)) - elif event == "": - label.bind("",lambda e,s=self,c=callback,x=cmd,l=label,gr=grp:s.selectNextItem(x,l,c,gr,x)) - elif event == "": - label.bind("",lambda e,s=self,c=callback,x=cmd,l=label,gr=grp:s.selectNextItem(x,l,c,gr,x)) - elif event == "": - label.bind("",lambda e,s=self,c=callback,x=cmd,l=label,gr=grp:s.selectPrevItem(x,l,c,gr,x)) - elif event == "": - label.bind("",lambda e,s=self,c=callback,x=cmd,l=label,gr=grp:s.selectPrevItem(x,l,c,gr,x)) - else: - label.bind(event,lambda e,s=self,c=callback,x=cmd,l=label: c()) - - for marque in self.liste_marques: - try: - self.markitem(liste_labels[marque]) - except: - pass - - self.MCbox.config(state=DISABLED) - self.selection = None - self.dontselect=0 - for event,callback in self.liste_commandes: - if event == "": - self.selection=None,None,callback - break - - def selectPrevItem(self,mot,label,callback,group,cmd): - g=self.liste_groupes.index(group) - liste_commandes=self.dict_groupes[group] - c=liste_commandes.index(cmd) - if c > 0: - co=liste_commandes[c-1] - else: - # debut de liste. On passe au groupe precedent - if g > 0: - gr=self.liste_groupes[g-1] - co=self.dict_groupes[gr][-1] - else: - # debut des groupes. On ne fait rien - return - # On a trouve l'item precedent - labelsuivant=self.dico_labels[co] - index = self.MCbox.index(labelsuivant) - self.MCbox.see(index) - self.selectthis(co,labelsuivant,self.selection[2],) - self.dontselect=1 - - def selectNextItem(self,mot,label,callback,group,cmd): - g=self.liste_groupes.index(group) - liste_commandes=self.dict_groupes[group] - c=liste_commandes.index(cmd) - try: - co=liste_commandes[c+1] - except: - # fin de liste. On passe au groupe suivant - try: - gr=self.liste_groupes[g+1] - co=self.dict_groupes[gr][0] - except: - # fin des groupes. On ne fait rien - return - # On a trouve l'item suivant - labelsuivant=self.dico_labels[co] - index = self.MCbox.index(labelsuivant) - self.MCbox.see(index) - self.selectthis(co,labelsuivant,self.selection[2],) - self.dontselect=1 - - def entry_changed(self,event=None): - """ - Cette méthode est invoquée chaque fois que l'utilisateur modifie le contenu - de l'entry et frappe - """ - if self.arg_selected != '' : self.deselectitem(self.dico_labels[self.arg_selected]) - - filtre = self.entry.get()+"*" - FILTRE = string.upper(filtre) - # - # On cherche d'abord dans les noms de groupe - # puis dans les noms de commande groupe par groupe - # - for grp in self.liste_groupes: - if fnmatch.fnmatch(grp,filtre) or fnmatch.fnmatch(grp,FILTRE) : - cmd=self.dict_groupes[grp][0] - label=self.dico_labels[cmd] - index = self.MCbox.index(label) - self.MCbox.see(index) - self.selectitem(cmd,label,self.selection[2]) - # On a trouve un groupe on arrete la recherche - return - - for grp in self.liste_groupes: - for cmd in self.dict_groupes[grp] : - if fnmatch.fnmatch(cmd,filtre) or fnmatch.fnmatch(cmd,FILTRE) : - label=self.dico_labels[cmd] - index = self.MCbox.index(label) - self.MCbox.see(index) - self.selectitem(cmd,label,self.selection[2]) - # On a trouve une commande on arrete la recherche - return - -if __name__ == "__main__": - root=Tkinter.Tk() - f=FenetreDeParametre(root,None,None,"\n".join(["coucouxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=2"]*15)) - #f=FenetreYesNo(None,titre="Le titre",texte="\n".join(["Le textexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"]*35),yes="Yes",no="No") - - - root.mainloop() - diff --git a/Pmw/Alpha_99_9_example/__init__.py b/Pmw/Alpha_99_9_example/__init__.py deleted file mode 100644 index 83d04e76..00000000 --- a/Pmw/Alpha_99_9_example/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# File to allow this directory to be treated as a python package. diff --git a/Pmw/Alpha_99_9_example/lib/Pmw.def b/Pmw/Alpha_99_9_example/lib/Pmw.def deleted file mode 100644 index 358a2b46..00000000 --- a/Pmw/Alpha_99_9_example/lib/Pmw.def +++ /dev/null @@ -1,9 +0,0 @@ -# Widgets whose name is the same as its module. -_widgets = ('AlphaExample',) - -# Widgets whose name is not the same as its module. -_extraWidgets = {} - -_functions = {} - -_modules = () diff --git a/Pmw/Alpha_99_9_example/lib/PmwAlphaExample.py b/Pmw/Alpha_99_9_example/lib/PmwAlphaExample.py deleted file mode 100644 index 5e4f88c1..00000000 --- a/Pmw/Alpha_99_9_example/lib/PmwAlphaExample.py +++ /dev/null @@ -1,24 +0,0 @@ -import string -import Pmw - -_default_text = "AlphaExample example alpha Pmw megawidget.\nPmw version: " + \ - Pmw.version() + '\nPmw Alpha versions: ' + \ - string.join(Pmw.version(alpha = 1), ' ') - -class AlphaExample(Pmw.MessageDialog): - # Dummy widget for illustrating use of Pmw alpha version directory - - def __init__(self, parent = None, **kw): - - # Define the megawidget options. - INITOPT = Pmw.INITOPT - optiondefs = ( - ('message_text', _default_text, None), - ) - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.MessageDialog.__init__(self, parent) - - # Check keywords and initialise options. - self.initialiseoptions(AlphaExample) diff --git a/Pmw/Alpha_99_9_example/lib/__init__.py b/Pmw/Alpha_99_9_example/lib/__init__.py deleted file mode 100644 index 83d04e76..00000000 --- a/Pmw/Alpha_99_9_example/lib/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# File to allow this directory to be treated as a python package. diff --git a/Pmw/CMakeLists.txt b/Pmw/CMakeLists.txt deleted file mode 100644 index e59468d7..00000000 --- a/Pmw/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== - -# Installation de tous les fichiers Python, texte et images du repertoire et des sous-repertoires (sauf CVS) -install ( - FILES - __init__.py - DESTINATION ${CMAKE_INSTALL_PREFIX}/Pmw - ) -add_subdirectory (Pmw_1_2) - -### Local Variables: -### mode: cmake -### End: diff --git a/Pmw/Pmw_1_2/CMakeLists.txt b/Pmw/Pmw_1_2/CMakeLists.txt deleted file mode 100644 index d61f5446..00000000 --- a/Pmw/Pmw_1_2/CMakeLists.txt +++ /dev/null @@ -1,41 +0,0 @@ -# -*- 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. -# -# -# ====================================================================== - -# Installation de tous les fichiers Python, texte et images du repertoire et des sous-repertoires (sauf CVS) -install ( - FILES - __init__.py - DESTINATION ${CMAKE_INSTALL_PREFIX}/Pmw/Pmw_1_2 - ) -install ( - DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin - ${CMAKE_CURRENT_SOURCE_DIR}/contrib - ${CMAKE_CURRENT_SOURCE_DIR}/demos - ${CMAKE_CURRENT_SOURCE_DIR}/doc - ${CMAKE_CURRENT_SOURCE_DIR}/lib - ${CMAKE_CURRENT_SOURCE_DIR}/tests - DESTINATION ${CMAKE_INSTALL_PREFIX}/Pmw/Pmw_1_2 -) - - -### Local Variables: -### mode: cmake -### End: diff --git a/Pmw/Pmw_1_2/__init__.py b/Pmw/Pmw_1_2/__init__.py deleted file mode 100644 index 83d04e76..00000000 --- a/Pmw/Pmw_1_2/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# File to allow this directory to be treated as a python package. diff --git a/Pmw/Pmw_1_2/bin/bundlepmw.py b/Pmw/Pmw_1_2/bin/bundlepmw.py deleted file mode 100755 index fdb7dc00..00000000 --- a/Pmw/Pmw_1_2/bin/bundlepmw.py +++ /dev/null @@ -1,169 +0,0 @@ -#!/usr/bin/env python - -# Helper script when freezing Pmw applications. It concatenates all -# Pmw megawidget files into a single file, 'Pmw.py', in the current -# directory. The script must be called with one argument, being the -# path to the 'lib' directory of the required version of Pmw. -# To freeze a Pmw application, you will also need to copy the -# following files to the application directory before freezing: -# -# PmwBlt.py PmwColor.py - -import os -import regsub -import string -import sys - -# The order of these files is significant. Files which reference -# other files must appear later. Files may be deleted if they are not -# used. -files = [ - 'Dialog', 'TimeFuncs', 'Balloon', 'ButtonBox', 'EntryField', - 'Group', 'LabeledWidget', 'MainMenuBar', 'MenuBar', 'MessageBar', - 'MessageDialog', 'NoteBook', 'OptionMenu', 'PanedWidget', 'PromptDialog', - 'RadioSelect', 'ScrolledCanvas', 'ScrolledField', 'ScrolledFrame', - 'ScrolledListBox', 'ScrolledText', 'HistoryText', 'SelectionDialog', - 'TextDialog', 'TimeCounter', 'AboutDialog', 'ComboBox', 'ComboBoxDialog', - 'Counter', 'CounterDialog', -] - -# Set this to 0 if you do not use any of the Pmw.Color functions: -needColor = 1 - -# Set this to 0 if you do not use any of the Pmw.Blt functions: -needBlt = 1 - -def expandLinks(path): - if not os.path.isabs(path): - path = os.path.join(os.getcwd(), path) - while 1: - if not os.path.islink(path): - break - dir = os.path.dirname(path) - path = os.path.join(dir, os.readlink(path)) - - return path - -def mungeFile(file): - # Read the file and modify it so that it can be bundled with the - # other Pmw files. - file = 'Pmw' + file + '.py' - text = open(os.path.join(srcdir, file)).read() - text = regsub.gsub('import Pmw\>', '', text) - text = regsub.gsub('INITOPT = Pmw.INITOPT', '', text) - text = regsub.gsub('\ -# -# Copyright 2001 MontaVista Software Inc. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# THIS SOFTWARE IS PROVIDED ``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 AUTHOR 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. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 675 Mass Ave, Cambridge, MA 02139, USA. -# - - -import os -import Tkinter -import Pmw - - -class DirBrowserDialog(Pmw.MegaToplevel): - def __init__(self, parent = None, **kw): - cwd = os.getcwd() - # Define the megawidget options. - INITOPT = Pmw.INITOPT - optiondefs = ( - ('path', cwd, None), - ('hidedotfiles', 1, INITOPT), - ('label', None, INITOPT), - #('labelmargin', 0, INITOPT), - #('labelpos', None, INITOPT), - ('borderx', 20, INITOPT), - ('bordery', 20, INITOPT), - ) - - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.MegaToplevel.__init__(self, parent) - - interior = self.interior() - - self.childframe = self.createcomponent('childframe', (), None, - Tkinter.Frame, - (interior,), - borderwidth = 1, - relief = 'raised', - ) - self.childframe.pack(expand = 1, - fill = 'both', - ) - - self.labelframe = self.createcomponent('labelframe', (), None, - Tkinter.Frame, - (self.childframe,), - borderwidth = 2, - relief = 'groove', - ) - self.labelframe.pack(padx = 10, pady = 10, expand = 1, fill = 'both') - - if self['label']: - self.label = self.createcomponent('label', (), None, - Tkinter.Label, - (self.childframe,), - text = self['label'], - ) - self.label.place(x = (10 + self['borderx']), y = 10, anchor = 'w') - - - self.workframe = self.createcomponent('workframe', (), None, - Tkinter.Frame, - (self.labelframe,), - #borderwidth = 2, - #relief = 'groove', - ) - self.workframe.pack(padx = self['borderx'], - pady = self['bordery'], - expand = 1, - fill = 'both', - ) - - self.buttonframe = self.createcomponent('buttonframe', (), None, - Tkinter.Frame, - (interior,), - borderwidth = 1, - relief = 'raised', - ) - self.buttonframe.pack(expand = 0, - fill = 'x', - ) - - self.optbox = self.createcomponent('optbox', (), None, - Pmw.OptionMenu, - (self.workframe,), - command = self.setpath, - ) - self.optbox.bind('', self._setMinimumSize) - - self.listbox = self.createcomponent('listbox', (), None, - Pmw.ScrolledListBox, - (self.workframe,), - dblclickcommand = self._select, - ) - - path = self['path'] - self.entry = self.createcomponent('entryfield', (), None, - Pmw.EntryField, - (self.workframe,), - value = path, - command = self.enteredpath, - labelpos = 'nw', - label_text = 'Current Path:', - ) - - #self.createlabel(self.workframe, childCols = 1, childRows = 3) - - self.buttonbox = self.createcomponent('buttonbox', (), None, - Pmw.ButtonBox, - (self.buttonframe,), - ) - self.buttonbox.add('OK', text = 'OK', - command = self.okbutton) - self.buttonbox.add('Cancel', text = 'Cancel', - command = self.cancelbutton) - self.buttonbox.add('New Directory', text = 'New Directory', - command = self.newdirbutton) - - self.buttonbox.alignbuttons() - self.buttonbox.pack(expand = 1, fill = 'x') - - self.optbox.grid(row = 2, column = 2, sticky = 'ew') - self.listbox.grid(row = 3, column = 2, sticky = 'news') - self.entry.grid(row = 5, column = 2, sticky = 'ew') - self.workframe.grid_rowconfigure(3, weight = 1) - self.workframe.grid_rowconfigure(4, minsize = 20) - self.workframe.grid_columnconfigure(2, weight = 1) - - - self.setpath(self['path']) - - # Check keywords and initialise options. - self.initialiseoptions() - - def setpath(self, path): - path = os.path.abspath(os.path.expanduser(path)) - - if os.path.isfile(path): - path = os.path.dirname(path) - - dirlist = [] - hidedotfiles = self['hidedotfiles'] - try: - posix = (os.name == 'posix') - for entry in os.listdir(path): - entryPath = path + '/' + entry - if hidedotfiles and entry[0] == '.': - # skip dot files if desired - continue - if not os.path.isdir(entryPath): - # skip files - continue - if not os.access(entryPath, os.R_OK | os.X_OK): - # skip directories we can't enter any way - continue - dirlist.append(entry) - - except: - self.entry.setentry(self['path']) - return - - self.entry.setentry(path) - - self['path'] = path - - dirlist.sort() - if path != '/': - dirlist.insert(0, '..') - - self.listbox.setlist(dirlist) - pathlist = [] - while path != '/': - pathlist.append(path) - path = os.path.dirname(path) - pathlist.append('/') - self.optbox.setitems(pathlist, 0) - - def _setMinimumSize(self, event): - # If the optionmenu changes width, make sure it does not - # shrink later. - owidth = self.optbox.winfo_width() - self.workframe.grid_columnconfigure(2, minsize = owidth) - - def _select(self): - sel = self.listbox.getcurselection() - if self['path'] == '/': - self['path'] = '' - if len(sel) > 0: - if sel[0] == '..': - self.setpath(os.path.dirname(self['path'])) - else: - self.setpath(self['path'] + '/' + sel[0]) - - - def getcurpath(self): - return self['path'] - - def enteredpath(self): - self.setpath(self.entry.get()) - - def okbutton(self): - self.deactivate(self['path']) - - def cancelbutton(self): - self.deactivate(None) - - def newdirbutton(self): - CreateDirectoryPopup(self.interior(), self['path']) - self.setpath(self['path']) - - - -class CreateDirectoryPopup: - def __init__(self, parent, path): - self.path = path - self.parent = parent - self.newdirpopup = Pmw.PromptDialog(parent, - buttons = ('OK', 'Cancel'), - defaultbutton = 'OK', - title = 'New Directory', - entryfield_labelpos = 'nw', - label_text = 'Enter new directory name for:\n%s'%self.path, - command = self._buttonpress - ) - - self.newdirpopup.activate() - - def _buttonpress(self, button): - if button == 'OK': - newdirname = self.newdirpopup.get() - dirlist = os.listdir(self.path) - if newdirname in dirlist: - ErrorPopup(self.parent, - 'Error: "%s", already exists as a file or directory.'%newdirname) - else: - try: - os.mkdir(self.path + '/' + newdirname) - except: - ErrorPopup(self.parent, - 'Error: Could not create directory: "%s"'%newdirname) - else: - self.newdirpopup.deactivate() - else: - self.newdirpopup.deactivate() - - -def ErrorPopup(parent, message): - error = Pmw.MessageDialog(parent, title = 'Error', - message_text = message, - defaultbutton = 0, - ) - error.activate() - -if __name__ == '__main__': - - rootWin = Tkinter.Tk() - - Pmw.initialise() - - rootWin.title('Directory Browser Dialog Demo') - - def buildBrowser(): - # Create the hierarchical directory browser widget - dirBrowserDialog = DirBrowserDialog(rootWin, - #labelpos = 'nw', - label = 'Select a directory', - title = 'Directory Selector', - #path = '~', - #hidedotfiles = 0, - ) - dir = dirBrowserDialog.activate() - print 'Selected Directory:', dir - - dirButton = Tkinter.Button(rootWin, text="Browser", command=buildBrowser) - dirButton.pack(side = 'left', padx = 10, pady = 10) - - exitButton = Tkinter.Button(rootWin, text="Quit", command=rootWin.quit) - exitButton.pack(side = 'left', padx = 10, pady = 10) - - rootWin.mainloop() diff --git a/Pmw/Pmw_1_2/contrib/MCListbox.py b/Pmw/Pmw_1_2/contrib/MCListbox.py deleted file mode 100644 index 166b8a04..00000000 --- a/Pmw/Pmw_1_2/contrib/MCListbox.py +++ /dev/null @@ -1,706 +0,0 @@ -# -# FILE: MCListbox.py -# -# DESCRIPTION: -# This file provides a generic Multi-Column Listbox widget. It is derived -# from a heavily hacked version of Pmw.ScrolledFrame -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# THIS SOFTWARE IS PROVIDED ``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 AUTHOR 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. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 675 Mass Ave, Cambridge, MA 02139, USA. -# - -import string -import Tkinter -import Pmw - -class MultiColumnListbox(Pmw.MegaWidget): - def __init__(self, parent = None, **kw): - colors = Pmw.Color.getdefaultpalette(parent) - - # Define the megawidget options. - INITOPT = Pmw.INITOPT - optiondefs = ( - #('borderframe', 1, INITOPT), - ('horizflex', 'fixed', self._horizflex), - ('horizfraction', 0.05, INITOPT), - ('hscrollmode', 'dynamic', self._hscrollMode), - ('labelmargin', 0, INITOPT), - ('labelpos', None, INITOPT), - ('scrollmargin', 2, INITOPT), - ('usehullsize', 0, INITOPT), - ('vertflex', 'fixed', self._vertflex), - ('vertfraction', 0.05, INITOPT), - ('vscrollmode', 'dynamic', self._vscrollMode), - ('labellist', None, INITOPT), - ('selectbackground', colors['selectBackground'], INITOPT), - ('selectforeground', colors['selectForeground'], INITOPT), - ('background', colors['background'], INITOPT), - ('foreground', colors['foreground'], INITOPT), - ('command', None, None), - ('dblclickcommand', None, None), - ) - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.MegaWidget.__init__(self, parent) - - self._numcolumns = len(self['labellist']) - self._columnlabels = self['labellist'] - self._lineid = 0 - self._numrows = 0 - self._lineitemframes = [] - self._lineitems = [] - self._lineitemdata = {} - self._labelframe = {} - self._cursel = [] - - # Create the components. - self.origInterior = Pmw.MegaWidget.interior(self) - - if self['usehullsize']: - self.origInterior.grid_propagate(0) - - # Create a frame widget to act as the border of the clipper. - self._borderframe = self.createcomponent('borderframe', - (), None, - Tkinter.Frame, - (self.origInterior,), - relief = 'sunken', - borderwidth = 2, - ) - self._borderframe.grid(row = 2, column = 2, - rowspan = 2, sticky = 'news') - - # Create the clipping windows. - self._hclipper = self.createcomponent('hclipper', - (), None, - Tkinter.Frame, - (self._borderframe,), - width = 400, - height = 300, - ) - self._hclipper.pack(fill = 'both', expand = 1) - - self._hsframe = self.createcomponent('hsframe', (), None, - Tkinter.Frame, - (self._hclipper,), - ) - - - self._vclipper = self.createcomponent('vclipper', - (), None, - Tkinter.Frame, - (self._hsframe,), - #width = 400, - #height = 300, - highlightthickness = 0, - borderwidth = 0, - ) - - self._vclipper.grid(row = 1, column = 0, - columnspan = self._numcolumns, - sticky = 'news')#, expand = 1) - self._hsframe.grid_rowconfigure(1, weight = 1)#, minsize = 300) - - - gridcolumn = 0 - for labeltext in self._columnlabels: - lframe = self.createcomponent(labeltext+'frame', (), None, - Tkinter.Frame, - (self._hsframe,), - borderwidth = 1, - relief = 'raised', - ) - label = self.createcomponent(labeltext, (), None, - Tkinter.Label, - (lframe,), - text = labeltext, - ) - label.pack(expand = 0, fill = 'y', side = 'left') - lframe.grid(row = 0, column = gridcolumn, sticky = 'ews') - self._labelframe[labeltext] = lframe - #lframe.update() - #print lframe.winfo_reqwidth() - self._hsframe.grid_columnconfigure(gridcolumn, weight = 1) - gridcolumn = gridcolumn + 1 - - lframe.update() - self._labelheight = lframe.winfo_reqheight() - self.origInterior.grid_rowconfigure(2, minsize = self._labelheight + 2) - - self.origInterior.grid_rowconfigure(3, weight = 1, minsize = 0) - self.origInterior.grid_columnconfigure(2, weight = 1, minsize = 0) - - # Create the horizontal scrollbar - self._horizScrollbar = self.createcomponent('horizscrollbar', - (), 'Scrollbar', - Tkinter.Scrollbar, - (self.origInterior,), - orient='horizontal', - command=self._xview - ) - - # Create the vertical scrollbar - self._vertScrollbar = self.createcomponent('vertscrollbar', - (), 'Scrollbar', - Tkinter.Scrollbar, - (self.origInterior,), - #(self._hclipper,), - orient='vertical', - command=self._yview - ) - - self.createlabel(self.origInterior, childCols = 3, childRows = 4) - - # Initialise instance variables. - self._horizScrollbarOn = 0 - self._vertScrollbarOn = 0 - self.scrollTimer = None - self._scrollRecurse = 0 - self._horizScrollbarNeeded = 0 - self._vertScrollbarNeeded = 0 - self.startX = 0 - self.startY = 0 - self._flexoptions = ('fixed', 'expand', 'shrink', 'elastic') - - # Create a frame in the clipper to contain the widgets to be - # scrolled. - self._vsframe = self.createcomponent('vsframe', - (), None, - Tkinter.Frame, - (self._vclipper,), - #height = 300, - #borderwidth = 4, - #relief = 'groove', - ) - - # Whenever the clipping window or scrolled frame change size, - # update the scrollbars. - self._hsframe.bind('', self._reposition) - self._vsframe.bind('', self._reposition) - self._hclipper.bind('', self._reposition) - self._vclipper.bind('', self._reposition) - - #elf._vsframe.bind('', self._vsframeselect) - - # Check keywords and initialise options. - self.initialiseoptions() - - def destroy(self): - if self.scrollTimer is not None: - self.after_cancel(self.scrollTimer) - self.scrollTimer = None - Pmw.MegaWidget.destroy(self) - - # ====================================================================== - - # Public methods. - - def interior(self): - return self._vsframe - - # Set timer to call real reposition method, so that it is not - # called multiple times when many things are reconfigured at the - # same time. - def reposition(self): - if self.scrollTimer is None: - self.scrollTimer = self.after_idle(self._scrollBothNow) - - - - def insertrow(self, index, rowdata): - #if len(rowdata) != self._numcolumns: - # raise ValueError, 'Number of items in rowdata does not match number of columns.' - if index > self._numrows: - index = self._numrows - - rowframes = {} - for columnlabel in self._columnlabels: - celldata = rowdata.get(columnlabel) - cellframe = self.createcomponent(('cellframeid.%d.%s'%(self._lineid, - columnlabel)), - (), ('Cellframerowid.%d'%self._lineid), - Tkinter.Frame, - (self._vsframe,), - background = self['background'], - #borderwidth = 1, - #relief = 'flat' - ) - - cellframe.bind('', self._cellframedblclick) - cellframe.bind('', self._cellframeselect) - - if celldata: - cell = self.createcomponent(('cellid.%d.%s'%(self._lineid, - columnlabel)), - (), ('Cellrowid.%d'%self._lineid), - Tkinter.Label, - (cellframe,), - background = self['background'], - foreground = self['foreground'], - text = celldata, - ) - - cell.bind('', self._celldblclick) - cell.bind('', self._cellselect) - - cell.pack(expand = 0, fill = 'y', side = 'left', padx = 1, pady = 1) - rowframes[columnlabel] = cellframe - - self._lineitemdata[self._lineid] = rowdata - self._lineitems.insert(index, self._lineid) - self._lineitemframes.insert(index, rowframes) - self._numrows = self._numrows + 1 - self._lineid = self._lineid + 1 - - self._placedata(index) - - def _placedata(self, index = 0): - gridy = index - for rowframes in self._lineitemframes[index:]: - gridx = 0 - for columnlabel in self._columnlabels: - rowframes[columnlabel].grid(row = gridy, - column = gridx, - sticky = 'news') - gridx = gridx + 1 - gridy = gridy + 1 - - - - def addrow(self, rowdata): - self.insertrow(self._numrows, rowdata) - - def delrow(self, index): - rowframes = self._lineitemframes.pop(index) - for columnlabel in self._columnlabels: - rowframes[columnlabel].destroy() - self._placedata(index) - self._numrows = self._numrows - 1 - del self._lineitems[index] - if index in self._cursel: - self._cursel.remove(index) - - - def curselection(self): - # Return a tuple of just one element as this will probably be the - # interface used in a future implementation when multiple rows can - # be selected at once. - return tuple(self._cursel) - - def getcurselection(self): - # Return a tuple of just one row as this will probably be the - # interface used in a future implementation when multiple rows can - # be selected at once. - sellist = [] - for sel in self._cursel: - sellist.append(self._lineitemdata[self._lineitems[sel]]) - return tuple(sellist) - - # ====================================================================== - - # Configuration methods. - - def _hscrollMode(self): - # The horizontal scroll mode has been configured. - - mode = self['hscrollmode'] - - - if mode == 'static': - if not self._horizScrollbarOn: - self._toggleHorizScrollbar() - elif mode == 'dynamic': - if self._horizScrollbarNeeded != self._horizScrollbarOn: - self._toggleHorizScrollbar() - elif mode == 'none': - if self._horizScrollbarOn: - self._toggleHorizScrollbar() - else: - message = 'bad hscrollmode option "%s": should be static, dynamic, or none' % mode - raise ValueError, message - - def _vscrollMode(self): - # The vertical scroll mode has been configured. - - mode = self['vscrollmode'] - - if mode == 'static': - if not self._vertScrollbarOn: - self._toggleVertScrollbar() - elif mode == 'dynamic': - if self._vertScrollbarNeeded != self._vertScrollbarOn: - self._toggleVertScrollbar() - elif mode == 'none': - if self._vertScrollbarOn: - self._toggleVertScrollbar() - else: - message = 'bad vscrollmode option "%s": should be static, dynamic, or none' % mode - raise ValueError, message - - def _horizflex(self): - # The horizontal flex mode has been configured. - - flex = self['horizflex'] - - if flex not in self._flexoptions: - message = 'bad horizflex option "%s": should be one of %s' % \ - mode, str(self._flexoptions) - raise ValueError, message - - self.reposition() - - def _vertflex(self): - # The vertical flex mode has been configured. - - flex = self['vertflex'] - - if flex not in self._flexoptions: - message = 'bad vertflex option "%s": should be one of %s' % \ - mode, str(self._flexoptions) - raise ValueError, message - - self.reposition() - - - - # ====================================================================== - - # Private methods. - - def _reposition(self, event): - gridx = 0 - for col in self._columnlabels: - maxwidth = self._labelframe[col].winfo_reqwidth() - for row in self._lineitemframes: - cellwidth = row[col].winfo_reqwidth() - if cellwidth > maxwidth: - maxwidth = cellwidth - self._hsframe.grid_columnconfigure(gridx, minsize = maxwidth) - gridwidth = self._hsframe.grid_bbox(column = gridx, row = 0)[2] - if self['horizflex'] in ('expand', 'elastic') and gridwidth > maxwidth: - maxwidth = gridwidth - self._vsframe.grid_columnconfigure(gridx, minsize = maxwidth) - gridx = gridx + 1 - - - - self._vclipper.configure(height = self._hclipper.winfo_height() - self._labelheight) - - self.reposition() - - # Called when the user clicks in the horizontal scrollbar. - # Calculates new position of frame then calls reposition() to - # update the frame and the scrollbar. - def _xview(self, mode, value, units = None): - - if mode == 'moveto': - frameWidth = self._hsframe.winfo_reqwidth() - self.startX = string.atof(value) * float(frameWidth) - else: - clipperWidth = self._hclipper.winfo_width() - if units == 'units': - jump = int(clipperWidth * self['horizfraction']) - else: - jump = clipperWidth - - if value == '1': - self.startX = self.startX + jump - else: - self.startX = self.startX - jump - - self.reposition() - - # Called when the user clicks in the vertical scrollbar. - # Calculates new position of frame then calls reposition() to - # update the frame and the scrollbar. - def _yview(self, mode, value, units = None): - - if mode == 'moveto': - frameHeight = self._vsframe.winfo_reqheight() - self.startY = string.atof(value) * float(frameHeight) - else: - clipperHeight = self._vclipper.winfo_height() - if units == 'units': - jump = int(clipperHeight * self['vertfraction']) - else: - jump = clipperHeight - - if value == '1': - self.startY = self.startY + jump - else: - self.startY = self.startY - jump - - self.reposition() - - def _getxview(self): - - # Horizontal dimension. - clipperWidth = self._hclipper.winfo_width() - frameWidth = self._hsframe.winfo_reqwidth() - if frameWidth <= clipperWidth: - # The scrolled frame is smaller than the clipping window. - - self.startX = 0 - endScrollX = 1.0 - - if self['horizflex'] in ('expand', 'elastic'): - relwidth = 1 - else: - relwidth = '' - else: - # The scrolled frame is larger than the clipping window. - - if self['horizflex'] in ('shrink', 'elastic'): - self.startX = 0 - endScrollX = 1.0 - relwidth = 1 - else: - if self.startX + clipperWidth > frameWidth: - self.startX = frameWidth - clipperWidth - endScrollX = 1.0 - else: - if self.startX < 0: - self.startX = 0 - endScrollX = (self.startX + clipperWidth) / float(frameWidth) - relwidth = '' - - # Position frame relative to clipper. - self._hsframe.place(x = -self.startX, relwidth = relwidth) - return (self.startX / float(frameWidth), endScrollX) - - def _getyview(self): - - # Vertical dimension. - clipperHeight = self._vclipper.winfo_height() - frameHeight = self._vsframe.winfo_reqheight() - if frameHeight <= clipperHeight: - # The scrolled frame is smaller than the clipping window. - - self.startY = 0 - endScrollY = 1.0 - - if self['vertflex'] in ('expand', 'elastic'): - relheight = 1 - else: - relheight = '' - else: - # The scrolled frame is larger than the clipping window. - - if self['vertflex'] in ('shrink', 'elastic'): - self.startY = 0 - endScrollY = 1.0 - relheight = 1 - else: - if self.startY + clipperHeight > frameHeight: - self.startY = frameHeight - clipperHeight - endScrollY = 1.0 - else: - if self.startY < 0: - self.startY = 0 - endScrollY = (self.startY + clipperHeight) / float(frameHeight) - relheight = '' - - # Position frame relative to clipper. - self._vsframe.place(y = -self.startY, relheight = relheight) - return (self.startY / float(frameHeight), endScrollY) - - # According to the relative geometries of the frame and the - # clipper, reposition the frame within the clipper and reset the - # scrollbars. - def _scrollBothNow(self): - self.scrollTimer = None - - # Call update_idletasks to make sure that the containing frame - # has been resized before we attempt to set the scrollbars. - # Otherwise the scrollbars may be mapped/unmapped continuously. - self._scrollRecurse = self._scrollRecurse + 1 - self.update_idletasks() - self._scrollRecurse = self._scrollRecurse - 1 - if self._scrollRecurse != 0: - return - - xview = self._getxview() - yview = self._getyview() - self._horizScrollbar.set(xview[0], xview[1]) - self._vertScrollbar.set(yview[0], yview[1]) - - self._horizScrollbarNeeded = (xview != (0.0, 1.0)) - self._vertScrollbarNeeded = (yview != (0.0, 1.0)) - - # If both horizontal and vertical scrollmodes are dynamic and - # currently only one scrollbar is mapped and both should be - # toggled, then unmap the mapped scrollbar. This prevents a - # continuous mapping and unmapping of the scrollbars. - if (self['hscrollmode'] == self['vscrollmode'] == 'dynamic' and - self._horizScrollbarNeeded != self._horizScrollbarOn and - self._vertScrollbarNeeded != self._vertScrollbarOn and - self._vertScrollbarOn != self._horizScrollbarOn): - if self._horizScrollbarOn: - self._toggleHorizScrollbar() - else: - self._toggleVertScrollbar() - return - - if self['hscrollmode'] == 'dynamic': - if self._horizScrollbarNeeded != self._horizScrollbarOn: - self._toggleHorizScrollbar() - - if self['vscrollmode'] == 'dynamic': - if self._vertScrollbarNeeded != self._vertScrollbarOn: - self._toggleVertScrollbar() - - def _toggleHorizScrollbar(self): - - self._horizScrollbarOn = not self._horizScrollbarOn - - interior = self.origInterior - if self._horizScrollbarOn: - self._horizScrollbar.grid(row = 5, column = 2, sticky = 'news') - interior.grid_rowconfigure(4, minsize = self['scrollmargin']) - else: - self._horizScrollbar.grid_forget() - interior.grid_rowconfigure(4, minsize = 0) - - def _toggleVertScrollbar(self): - - self._vertScrollbarOn = not self._vertScrollbarOn - - interior = self.origInterior - if self._vertScrollbarOn: - self._vertScrollbar.grid(row = 3, column = 4, sticky = 'news') - interior.grid_columnconfigure(3, minsize = self['scrollmargin']) - else: - self._vertScrollbar.grid_forget() - interior.grid_columnconfigure(3, minsize = 0) - - # ====================================================================== - - # Selection methods. - - #def _vsframeselect(self, event): - # print 'vsframe event x: %d y: %d'%(event.x, event.y) - # col, row = self._vsframe.grid_location(event.x, event.y) - # self._select(col, row) - - def _cellframeselect(self, event): - #print 'cellframe event x: %d y: %d'%(event.x, event.y) - x = event.widget.winfo_x() - y = event.widget.winfo_y() - #col, row = self._vsframe.grid_location(x + event.x, y + event.y) - self._select(x + event.x, y + event.y)#(col, row) - - def _cellselect(self, event): - #print 'cell event x: %d y: %d'%(event.x, event.y) - lx = event.widget.winfo_x() - ly = event.widget.winfo_y() - parent = event.widget.pack_info()['in'] - fx = parent.winfo_x() - fy = parent.winfo_y() - #col, row = self._vsframe.grid_location(fx + lx + event.x, fy + ly + event.y) - self._select(fx + lx + event.x, fy + ly + event.y)#(col, row) - - def _select(self, x, y): - col, row = self._vsframe.grid_location(x, y) - #print 'Clicked on col: %d row: %d'%(col,row) - cfg = {} - lineid = self._lineitems[row] - cfg['Cellrowid.%d_foreground'%lineid] = self['selectforeground'] - cfg['Cellrowid.%d_background'%lineid] = self['selectbackground'] - cfg['Cellframerowid.%d_background'%lineid] = self['selectbackground'] - #cfg['Cellframerowid%d_relief'%row] = 'raised' - - if self._cursel != []: - cursel = self._cursel[0] - lineid = self._lineitems[cursel] - if cursel != None and cursel != row: - cfg['Cellrowid.%d_foreground'%lineid] = self['foreground'] - cfg['Cellrowid.%d_background'%lineid] = self['background'] - cfg['Cellframerowid.%d_background'%lineid] = self['background'] - #cfg['Cellframerowid%d_relief'%cursel] = 'flat' - - apply(self.configure, (), cfg) - self._cursel = [row] - - cmd = self['command'] - if callable(cmd): - cmd() - - - - def _cellframedblclick(self, event): - #print 'double click cell frame' - cmd = self['dblclickcommand'] - if callable(cmd): - cmd() - - def _celldblclick(self, event): - #print 'double click cell' - cmd = self['dblclickcommand'] - if callable(cmd): - cmd() - -if __name__ == '__main__': - - rootWin = Tkinter.Tk() - - Pmw.initialise() - - rootWin.title('MultiColumnListbox Demo') - rootWin.configure(width = 500, height = 300) - rootWin.update() - - def dbl(): - print listbox.getcurselection() - - listbox = MultiColumnListbox(rootWin, - #usehullsize = 1, - labellist = ('Column 0', - 'Column 1', - 'Column 2', - 'Column 3', - 'Column 4', - #'Column 5', - #'Column 6', - #'Column 7', - #'Column 8', - #'Column 9', - ), - horizflex = 'expand', - #vertflex = 'elastic', - dblclickcommand = dbl, - ) - - - #print 'start adding item' - for i in range(20): - r = {} - for j in range(5): - r[('Column %d'%j)] = 'Really long item name %d'%i - listbox.addrow(r) - #print 'items added' - - listbox.pack(expand = 1, fill = 'both', padx = 10, pady = 10) - - - exitButton = Tkinter.Button(rootWin, text="Quit", command=rootWin.quit) - exitButton.pack(side = 'left', padx = 10, pady = 10) - - rootWin.mainloop() diff --git a/Pmw/Pmw_1_2/contrib/PmwFileDialog.py b/Pmw/Pmw_1_2/contrib/PmwFileDialog.py deleted file mode 100644 index dc7b4616..00000000 --- a/Pmw/Pmw_1_2/contrib/PmwFileDialog.py +++ /dev/null @@ -1,498 +0,0 @@ -# -__version__ = '$Id: PmwFileDialog.py,v 1.2 2002/08/23 15:03:35 gregm Exp $' -# -# Filename dialogs using Pmw -# -# (C) Rob W.W. Hooft, Nonius BV, 1998 -# -# Modifications: -# -# J. Willem M. Nissink, Cambridge Crystallographic Data Centre, 8/2002 -# Added optional information pane at top of dialog; if option -# 'info' is specified, the text given will be shown (in blue). -# Modified example to show both file and directory-type dialog -# -# No Guarantees. Distribute Freely. -# Please send bug-fixes/patches/features to -# -################################################################################ -import os,fnmatch,time -import Tkinter,Pmw -#Pmw.setversion("0.8.5") - -def _errorpop(master,text): - d=Pmw.MessageDialog(master, - title="Error", - message_text=text, - buttons=("OK",)) - d.component('message').pack(ipadx=15,ipady=15) - d.activate() - d.destroy() - -class PmwFileDialog(Pmw.Dialog): - """File Dialog using Pmw""" - def __init__(self, parent = None, **kw): - # Define the megawidget options. - optiondefs = ( - ('filter', '*', self.newfilter), - ('directory', os.getcwd(), self.newdir), - ('filename', '', self.newfilename), - ('historylen',10, None), - ('command', None, None), - ('info', None, None), - ) - self.defineoptions(kw, optiondefs) - # Initialise base class (after defining options). - Pmw.Dialog.__init__(self, parent) - - self.withdraw() - - # Create the components. - interior = self.interior() - - if self['info'] is not None: - rowoffset=1 - dn = self.infotxt() - dn.grid(row=0,column=0,columnspan=2,padx=3,pady=3) - else: - rowoffset=0 - - dn = self.mkdn() - dn.grid(row=0+rowoffset,column=0,columnspan=2,padx=3,pady=3) - del dn - - # Create the directory list component. - dnb = self.mkdnb() - dnb.grid(row=1+rowoffset,column=0,sticky='news',padx=3,pady=3) - del dnb - - # Create the filename list component. - fnb = self.mkfnb() - fnb.grid(row=1+rowoffset,column=1,sticky='news',padx=3,pady=3) - del fnb - - # Create the filter entry - ft = self.mkft() - ft.grid(row=2+rowoffset,column=0,columnspan=2,padx=3,pady=3) - del ft - - # Create the filename entry - fn = self.mkfn() - fn.grid(row=3+rowoffset,column=0,columnspan=2,padx=3,pady=3) - fn.bind('',self.okbutton) - del fn - - # Buttonbox already exists - bb=self.component('buttonbox') - bb.add('OK',command=self.okbutton) - bb.add('Cancel',command=self.cancelbutton) - del bb - - Pmw.alignlabels([self.component('filename'), - self.component('filter'), - self.component('dirname')]) - - def infotxt(self): - """ Make information block component at the top """ - return self.createcomponent( - 'infobox', - (), None, - Tkinter.Label, (self.interior(),), - width=51, - relief='groove', - foreground='darkblue', - justify='left', - text=self['info'] - ) - - def mkdn(self): - """Make directory name component""" - return self.createcomponent( - 'dirname', - (), None, - Pmw.ComboBox, (self.interior(),), - entryfield_value=self['directory'], - entryfield_entry_width=40, - entryfield_validate=self.dirvalidate, - selectioncommand=self.setdir, - labelpos='w', - label_text='Directory:') - - def mkdnb(self): - """Make directory name box""" - return self.createcomponent( - 'dirnamebox', - (), None, - Pmw.ScrolledListBox, (self.interior(),), - label_text='directories', - labelpos='n', - hscrollmode='none', - dblclickcommand=self.selectdir) - - def mkft(self): - """Make filter""" - return self.createcomponent( - 'filter', - (), None, - Pmw.ComboBox, (self.interior(),), - entryfield_value=self['filter'], - entryfield_entry_width=40, - selectioncommand=self.setfilter, - labelpos='w', - label_text='Filter:') - - def mkfnb(self): - """Make filename list box""" - return self.createcomponent( - 'filenamebox', - (), None, - Pmw.ScrolledListBox, (self.interior(),), - label_text='files', - labelpos='n', - hscrollmode='none', - selectioncommand=self.singleselectfile, - dblclickcommand=self.selectfile) - - def mkfn(self): - """Make file name entry""" - return self.createcomponent( - 'filename', - (), None, - Pmw.ComboBox, (self.interior(),), - entryfield_value=self['filename'], - entryfield_entry_width=40, - entryfield_validate=self.filevalidate, - selectioncommand=self.setfilename, - labelpos='w', - label_text='Filename:') - - def dirvalidate(self,string): - if os.path.isdir(string): - return Pmw.OK - else: - return Pmw.PARTIAL - - def filevalidate(self,string): - if string=='': - return Pmw.PARTIAL - elif os.path.isfile(string): - return Pmw.OK - elif os.path.exists(string): - return Pmw.PARTIAL - else: - return Pmw.OK - - def okbutton(self): - """OK action: user thinks he has input valid data and wants to - proceed. This is also called by in the filename entry""" - fn=self.component('filename').get() - self.setfilename(fn) - if self.validate(fn): - self.canceled=0 - self.deactivate() - - def cancelbutton(self): - """Cancel the operation""" - self.canceled=1 - self.deactivate() - - def tidy(self,w,v): - """Insert text v into the entry and at the top of the list of - the combobox w, remove duplicates""" - if not v: - return - entry=w.component('entry') - entry.delete(0,'end') - entry.insert(0,v) - list=w.component('scrolledlist') - list.insert(0,v) - index=1 - while indexself['historylen']: - list.delete(index) - else: - index=index+1 - w.checkentry() - - def setfilename(self,value): - if not value: - return - value=os.path.join(self['directory'],value) - dir,fil=os.path.split(value) - self.configure(directory=dir,filename=value) - - c=self['command'] - if callable(c): - c() - - def newfilename(self): - """Make sure a newly set filename makes it into the combobox list""" - self.tidy(self.component('filename'),self['filename']) - - def setfilter(self,value): - self.configure(filter=value) - - def newfilter(self): - """Make sure a newly set filter makes it into the combobox list""" - self.tidy(self.component('filter'),self['filter']) - self.fillit() - - def setdir(self,value): - self.configure(directory=value) - - def newdir(self): - """Make sure a newly set dirname makes it into the combobox list""" - self.tidy(self.component('dirname'),self['directory']) - self.fillit() - - def singleselectfile(self): - """Single click in file listbox. Move file to "filename" combobox""" - cs=self.component('filenamebox').curselection() - if cs!=(): - value=self.component('filenamebox').get(cs) - self.setfilename(value) - - def selectfile(self): - """Take the selected file from the filename, normalize it, and OK""" - self.singleselectfile() - value=self.component('filename').get() - self.setfilename(value) - if value: - self.okbutton() - - def selectdir(self): - """Take selected directory from the dirnamebox into the dirname""" - cs=self.component('dirnamebox').curselection() - if cs!=(): - value=self.component('dirnamebox').get(cs) - dir=self['directory'] - if not dir: - dir=os.getcwd() - if value: - if value=='..': - dir=os.path.split(dir)[0] - else: - dir=os.path.join(dir,value) - self.configure(directory=dir) - self.fillit() - - def askfilename(self,directory=None,filter=None): - """The actual client function. Activates the dialog, and - returns only after a valid filename has been entered - (return value is that filename) or when canceled (return - value is None)""" - if directory!=None: - self.configure(directory=directory) - if filter!=None: - self.configure(filter=filter) - self.fillit() - self.canceled=1 # Needed for when user kills dialog window - self.activate() - if self.canceled: - return None - else: - return self.component('filename').get() - - lastdir="" - lastfilter=None - lasttime=0 - def fillit(self): - """Get the directory list and show it in the two listboxes""" - # Do not run unnecesarily - if self.lastdir==self['directory'] and self.lastfilter==self['filter'] and self.lasttime>os.stat(self.lastdir)[8]: - return - self.lastdir=self['directory'] - self.lastfilter=self['filter'] - self.lasttime=time.time() - dir=self['directory'] - if not dir: - dir=os.getcwd() - dirs=['..'] - files=[] - try: - fl=os.listdir(dir) - fl.sort() - except os.error,arg: - if arg[0] in (2,20): - return - raise - for f in fl: - if os.path.isdir(os.path.join(dir,f)): - dirs.append(f) - else: - filter=self['filter'] - if not filter: - filter='*' - if fnmatch.fnmatch(f,filter): - files.append(f) - self.component('filenamebox').setlist(files) - self.component('dirnamebox').setlist(dirs) - - def validate(self,filename): - """Validation function. Should return 1 if the filename is valid, - 0 if invalid. May pop up dialogs to tell user why. Especially - suited to subclasses: i.e. only return 1 if the file does/doesn't - exist""" - return 1 - -class PmwDirDialog(PmwFileDialog): - """Directory Dialog using Pmw""" - def __init__(self, parent = None, **kw): - # Define the megawidget options. - optiondefs = ( - ('directory', os.getcwd(), self.newdir), - ('historylen',10, None), - ('command', None, None), - ('info', None, None), - ) - self.defineoptions(kw, optiondefs) - # Initialise base class (after defining options). - Pmw.Dialog.__init__(self, parent) - - self.withdraw() - - # Create the components. - interior = self.interior() - - if self['info'] is not None: - rowoffset=1 - dn = self.infotxt() - dn.grid(row=0,column=0,columnspan=2,padx=3,pady=3) - else: - rowoffset=0 - - dn = self.mkdn() - dn.grid(row=1+rowoffset,column=0,columnspan=2,padx=3,pady=3) - dn.bind('',self.okbutton) - del dn - - # Create the directory list component. - dnb = self.mkdnb() - dnb.grid(row=0+rowoffset,column=0,columnspan=2,sticky='news',padx=3,pady=3) - del dnb - - # Buttonbox already exists - bb=self.component('buttonbox') - bb.add('OK',command=self.okbutton) - bb.add('Cancel',command=self.cancelbutton) - del bb - - lastdir="" - def fillit(self): - """Get the directory list and show it in the two listboxes""" - # Do not run unnecesarily - if self.lastdir==self['directory']: - return - self.lastdir=self['directory'] - dir=self['directory'] - if not dir: - dir=os.getcwd() - dirs=['..'] - try: - fl=os.listdir(dir) - fl.sort() - except os.error,arg: - if arg[0] in (2,20): - return - raise - for f in fl: - if os.path.isdir(os.path.join(dir,f)): - dirs.append(f) - self.component('dirnamebox').setlist(dirs) - - def okbutton(self): - """OK action: user thinks he has input valid data and wants to - proceed. This is also called by in the dirname entry""" - fn=self.component('dirname').get() - self.configure(directory=fn) - if self.validate(fn): - self.canceled=0 - self.deactivate() - - def askfilename(self,directory=None): - """The actual client function. Activates the dialog, and - returns only after a valid filename has been entered - (return value is that filename) or when canceled (return - value is None)""" - if directory!=None: - self.configure(directory=directory) - self.fillit() - self.activate() - if self.canceled: - return None - else: - return self.component('dirname').get() - - def dirvalidate(self,string): - if os.path.isdir(string): - return Pmw.OK - elif os.path.exists(string): - return Pmw.PARTIAL - else: - return Pmw.OK - - def validate(self,filename): - """Validation function. Should return 1 if the filename is valid, - 0 if invalid. May pop up dialogs to tell user why. Especially - suited to subclasses: i.e. only return 1 if the file does/doesn't - exist""" - if filename=='': - _errorpop(self.interior(),"Empty filename") - return 0 - if os.path.isdir(filename) or not os.path.exists(filename): - return 1 - else: - _errorpop(self.interior(),"This is not a directory") - return 0 - -class PmwExistingFileDialog(PmwFileDialog): - def filevalidate(self,string): - if os.path.isfile(string): - return Pmw.OK - else: - return Pmw.PARTIAL - - def validate(self,filename): - if os.path.isfile(filename): - return 1 - elif os.path.exists(filename): - _errorpop(self.interior(),"This is not a plain file") - return 0 - else: - _errorpop(self.interior(),"Please select an existing file") - return 0 - -class PmwExistingDirDialog(PmwDirDialog): - def dirvalidate(self,string): - if os.path.isdir(string): - return Pmw.OK - else: - return Pmw.PARTIAL - - def validate(self,filename): - if os.path.isdir(filename): - return 1 - elif os.path.exists(filename): - _errorpop(self.interior(),"This is not a directory") - return 0 - else: - _errorpop(self.interior(),"Please select an existing directory") - -if __name__=="__main__": - root=Tkinter.Tk() - root.withdraw() - Pmw.initialise() - - f0=PmwFileDialog(root) - f0.title('File name dialog') - n=f0.askfilename() - print '\nFilename : ',repr(n),'\n' - - f1=PmwDirDialog(root,info='This is a directory dialog') - f1.title('Directory name dialog') - while 1: - n=f1.askfilename() - if n is None: - break - print "Dirname : ",repr(n) diff --git a/Pmw/Pmw_1_2/contrib/PmwFullTimeCounter.py b/Pmw/Pmw_1_2/contrib/PmwFullTimeCounter.py deleted file mode 100644 index 84e605a3..00000000 --- a/Pmw/Pmw_1_2/contrib/PmwFullTimeCounter.py +++ /dev/null @@ -1,492 +0,0 @@ -# Authors: Joe VanAndel, Greg McFarlane and Daniel Michelson - -import string -import sys -import time -import Tkinter -import Pmw - -class FullTimeCounter(Pmw.MegaWidget): - """Up-down counter - - A TimeCounter is a single-line entry widget with Up and Down arrows - which increment and decrement the Time value in the entry. - """ - - def __init__(self, parent = None, **kw): - - # Define the megawidget options. - INITOPT = Pmw.INITOPT - optiondefs = ( - ('autorepeat', 1, INITOPT), - ('buttonaspect', 1.0, INITOPT), - ('initwait', 300, INITOPT), - ('labelmargin', 0, INITOPT), - ('labelpos', None, INITOPT), - ('max', '', self._max), - ('min', '', self._min), - ('padx', 0, INITOPT), - ('pady', 0, INITOPT), - ('repeatrate', 50, INITOPT), - ('value', '', INITOPT), - ) - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.MegaWidget.__init__(self, parent) - - self.arrowDirection = {} - self._flag = 'stopped' - self._timerId = None - - self._createComponents() - - value = self['value'] - if value is None or value == '': - now = time.time() - value = time.strftime('%Y:%m:%d:%H:%M',time.gmtime(now)) - self._setTimeFromStr(value) - - # Check keywords and initialise options. - self.initialiseoptions() - - def _createComponents(self): - - # Create the components. - interior = self.interior() - - # If there is no label, put the arrows and the entry directly - # into the interior, otherwise create a frame for them. In - # either case the border around the arrows and the entry will - # be raised (but not around the label). - if self['labelpos'] is None: - frame = interior - else: - frame = self.createcomponent('frame', - (), None, - Tkinter.Frame, (interior,)) - frame.grid(column=2, row=2, sticky='nsew') - interior.grid_columnconfigure(2, weight=1) - interior.grid_rowconfigure(2, weight=1) - - frame.configure(relief = 'raised', borderwidth = 1) - - # Create the down arrow buttons. - - # Create the year down arrow. - self._downYearArrowBtn = self.createcomponent('downyeararrow', - (), 'Arrow', - Tkinter.Canvas, (frame,), - width = 16, height = 16, relief = 'raised', borderwidth = 2) - self.arrowDirection[self._downYearArrowBtn] = 0 - self._downYearArrowBtn.grid(column = 0, row = 2) - - # Create the month down arrow. - self._downMonthArrowBtn = self.createcomponent('downmontharrow', - (), 'Arrow', - Tkinter.Canvas, (frame,), - width = 16, height = 16, relief = 'raised', borderwidth = 2) - self.arrowDirection[self._downMonthArrowBtn] = 0 - self._downMonthArrowBtn.grid(column = 1, row = 2) - - # Create the day down arrow. - self._downDayArrowBtn = self.createcomponent('downdayarrow', - (), 'Arrow', - Tkinter.Canvas, (frame,), - width = 16, height = 16, relief = 'raised', borderwidth = 2) - self.arrowDirection[self._downDayArrowBtn] = 0 - self._downDayArrowBtn.grid(column = 2, row = 2) - - # Create the hour down arrow. - self._downHourArrowBtn = self.createcomponent('downhourarrow', - (), 'Arrow', - Tkinter.Canvas, (frame,), - width = 16, height = 16, relief = 'raised', borderwidth = 2) - self.arrowDirection[self._downHourArrowBtn] = 0 - self._downHourArrowBtn.grid(column = 3, row = 2) - - # Create the minute down arrow. - self._downMinuteArrowBtn = self.createcomponent('downminutearrow', - (), 'Arrow', - Tkinter.Canvas, (frame,), - width = 16, height = 16, relief = 'raised', borderwidth = 2) - self.arrowDirection[self._downMinuteArrowBtn] = 0 - self._downMinuteArrowBtn.grid(column = 4, row = 2) - - # Create the entry fields. - - # Create the year entry field. - self._yearCounterEntry = self.createcomponent('yearentryfield', - (('yearentry', 'yearentryfield_entry'),), None, - Pmw.EntryField, (frame,), validate='integer', entry_width = 4) - self._yearCounterEntry.grid(column = 0, row = 1, sticky = 'news') - - # Create the month entry field. - self._monthCounterEntry = self.createcomponent('monthentryfield', - (('monthentry', 'monthentryfield_entry'),), None, - Pmw.EntryField, (frame,), validate='integer', entry_width = 2) - self._monthCounterEntry.grid(column = 1, row = 1, sticky = 'news') - - # Create the day entry field. - self._dayCounterEntry = self.createcomponent('dayentryfield', - (('dayentry', 'dayentryfield_entry'),), None, - Pmw.EntryField, (frame,), validate='integer', entry_width = 2) - self._dayCounterEntry.grid(column = 2, row = 1, sticky = 'news') - - # Create the hour entry field. - self._hourCounterEntry = self.createcomponent('hourentryfield', - (('hourentry', 'hourentryfield_entry'),), None, - Pmw.EntryField, (frame,), validate='integer', entry_width = 2) - self._hourCounterEntry.grid(column = 3, row = 1, sticky = 'news') - - # Create the minute entry field. - self._minuteCounterEntry = self.createcomponent('minuteentryfield', - (('minuteentry', 'minuteentryfield_entry'),), None, - Pmw.EntryField, (frame,), validate='integer', entry_width = 2) - self._minuteCounterEntry.grid(column = 4, row = 1, sticky = 'news') - - # Create the up arrow buttons. - - # Create the year up arrow. - self._upYearArrowBtn = self.createcomponent('upyeararrow', - (), 'Arrow', - Tkinter.Canvas, (frame,), - width = 16, height = 16, relief = 'raised', borderwidth = 2) - self.arrowDirection[self._upYearArrowBtn] = 1 - self._upYearArrowBtn.grid(column = 0, row = 0) - - # Create the month up arrow. - self._upMonthArrowBtn = self.createcomponent('upmontharrow', - (), 'Arrow', - Tkinter.Canvas, (frame,), - width = 16, height = 16, relief = 'raised', borderwidth = 2) - self.arrowDirection[self._upMonthArrowBtn] = 1 - self._upMonthArrowBtn.grid(column = 1, row = 0) - - # Create the day up arrow. - self._upDayArrowBtn = self.createcomponent('updayarrow', - (), 'Arrow', - Tkinter.Canvas, (frame,), - width = 16, height = 16, relief = 'raised', borderwidth = 2) - self.arrowDirection[self._upDayArrowBtn] = 1 - self._upDayArrowBtn.grid(column = 2, row = 0) - - # Create the hour up arrow. - self._upHourArrowBtn = self.createcomponent('uphourarrow', - (), 'Arrow', - Tkinter.Canvas, (frame,), - width = 16, height = 16, relief = 'raised', borderwidth = 2) - self.arrowDirection[self._upHourArrowBtn] = 1 - self._upHourArrowBtn.grid(column = 3, row = 0) - - # Create the minute up arrow. - self._upMinuteArrowBtn = self.createcomponent('upminutearrow', - (), 'Arrow', - Tkinter.Canvas, (frame,), - width = 16, height = 16, relief = 'raised', borderwidth = 2) - self.arrowDirection[self._upMinuteArrowBtn] = 1 - self._upMinuteArrowBtn.grid(column = 4, row = 0) - - # Make it resize nicely. - padx = self['padx'] - pady = self['pady'] - for col in range(5): # YY, MM, DD, HH, mm - frame.grid_columnconfigure(col, weight = 1, pad = padx) - frame.grid_rowconfigure(0, pad = pady) - frame.grid_rowconfigure(2, pad = pady) - - frame.grid_rowconfigure(1, weight = 1) - - # Create the label. - self.createlabel(interior) - - # Set bindings. - - # Up year - self._upYearArrowBtn.bind('', - lambda event, s=self,button=self._upYearArrowBtn: - s._drawArrow(button, 1)) - self._upYearArrowBtn.bind('<1>', - lambda event, s=self,button=self._upYearArrowBtn: - s._countUp(button)) - self._upYearArrowBtn.bind('', - lambda event, s=self, button=self._upYearArrowBtn: - s._stopUpDown(button)) - - # Up month - self._upMonthArrowBtn.bind('', - lambda event, s=self,button=self._upMonthArrowBtn: - s._drawArrow(button, 1)) - self._upMonthArrowBtn.bind('<1>', - lambda event, s=self,button=self._upMonthArrowBtn: - s._countUp(button)) - self._upMonthArrowBtn.bind('', - lambda event, s=self, button=self._upMonthArrowBtn: - s._stopUpDown(button)) - - # Up day - self._upDayArrowBtn.bind('', - lambda event, s=self,button=self._upDayArrowBtn: - s._drawArrow(button, 1)) - self._upDayArrowBtn.bind('<1>', - lambda event, s=self,button=self._upDayArrowBtn: - s._countUp(button)) - self._upDayArrowBtn.bind('', - lambda event, s=self, button=self._upDayArrowBtn: - s._stopUpDown(button)) - - # Up hour - self._upHourArrowBtn.bind('', - lambda event, s=self,button=self._upHourArrowBtn: - s._drawArrow(button, 1)) - self._upHourArrowBtn.bind('<1>', - lambda event, s=self,button=self._upHourArrowBtn: - s._countUp(button)) - self._upHourArrowBtn.bind('', - lambda event, s=self, button=self._upHourArrowBtn: - s._stopUpDown(button)) - - # Up minute - self._upMinuteArrowBtn.bind('', - lambda event, s=self,button=self._upMinuteArrowBtn: - s._drawArrow(button, 1)) - self._upMinuteArrowBtn.bind('<1>', - lambda event, s=self,button=self._upMinuteArrowBtn: - s._countUp(button)) - self._upMinuteArrowBtn.bind('', - lambda event, s=self, button=self._upMinuteArrowBtn: - s._stopUpDown(button)) - - - # Down year - self._downYearArrowBtn.bind('', - lambda event, s=self,button=self._downYearArrowBtn: - s._drawArrow(button, 0)) - self._downYearArrowBtn.bind('<1>', - lambda event, s=self,button=self._downYearArrowBtn: - s._countDown(button)) - self._downYearArrowBtn.bind('', - lambda event, s=self, button=self._downYearArrowBtn: - s._stopUpDown(button)) - - # Down month - self._downMonthArrowBtn.bind('', - lambda event, s=self,button=self._downMonthArrowBtn: - s._drawArrow(button, 0)) - self._downMonthArrowBtn.bind('<1>', - lambda event, s=self,button=self._downMonthArrowBtn: - s._countDown(button)) - self._downMonthArrowBtn.bind('', - lambda event, s=self, button=self._downMonthArrowBtn: - s._stopUpDown(button)) - - # Down day - self._downDayArrowBtn.bind('', - lambda event, s=self,button=self._downDayArrowBtn: - s._drawArrow(button, 0)) - self._downDayArrowBtn.bind('<1>', - lambda event, s=self,button=self._downDayArrowBtn: - s._countDown(button)) - self._downDayArrowBtn.bind('', - lambda event, s=self, button=self._downDayArrowBtn: - s._stopUpDown(button)) - - # Down hour - self._downHourArrowBtn.bind('', - lambda event, s=self,button=self._downHourArrowBtn: - s._drawArrow(button, 0)) - self._downHourArrowBtn.bind('<1>', - lambda event, s=self,button=self._downHourArrowBtn: - s._countDown(button)) - self._downHourArrowBtn.bind('', - lambda event, s=self, button=self._downHourArrowBtn: - s._stopUpDown(button)) - - # Down minute - self._downMinuteArrowBtn.bind('', - lambda event, s=self,button=self._downMinuteArrowBtn: - s._drawArrow(button, 0)) - self._downMinuteArrowBtn.bind('<1>', - lambda event, s=self,button=self._downMinuteArrowBtn: s._countDown(button)) - self._downMinuteArrowBtn.bind('', - lambda event, s=self, button=self._downMinuteArrowBtn: - s._stopUpDown(button)) - - - self._yearCounterEntry.bind('', self.invoke) - self._monthCounterEntry.bind('', self.invoke) - self._dayCounterEntry.bind('', self.invoke) - self._hourCounterEntry.bind('', self.invoke) - self._minuteCounterEntry.bind('', self.invoke) - - self._yearCounterEntry.bind('', self._resizeArrow) - self._monthCounterEntry.bind('', self._resizeArrow) - self._dayCounterEntry.bind('', self._resizeArrow) - self._hourCounterEntry.bind('', self._resizeArrow) - self._minuteCounterEntry.bind('', self._resizeArrow) - - def _drawArrow(self, arrow, direction): - arrow.delete('arrow') - - fg = self._yearCounterEntry.cget('entry_foreground') - - bw = (string.atoi(arrow['borderwidth']) + - string.atoi(arrow['highlightthickness'])) / 2 - h = string.atoi(arrow['height']) + 2 * bw - w = string.atoi(arrow['width']) + 2 * bw - - if direction == 0: - # down arrow - arrow.create_polygon( - 0.25 * w + bw, 0.25 * h + bw, - 0.50 * w + bw, 0.75 * h + bw, - 0.75 * w + bw, 0.25 * h + bw, - fill=fg, tag='arrow') - else: - arrow.create_polygon( - 0.25 * w + bw, 0.75 * h + bw, - 0.50 * w + bw, 0.25 * h + bw, - 0.75 * w + bw, 0.75 * h + bw, - fill=fg, tag='arrow') - - def _resizeArrow(self, event = None): - for btn in (self._upYearArrowBtn, self._upMonthArrowBtn, - self._upDayArrowBtn, self._upHourArrowBtn, - self._upMinuteArrowBtn, self._downYearArrowBtn, - self._downMonthArrowBtn, self._downDayArrowBtn, - self._downHourArrowBtn, self._downMinuteArrowBtn): - bw = (string.atoi(btn['borderwidth']) + \ - string.atoi(btn['highlightthickness'])) - newHeight = self._yearCounterEntry.winfo_reqheight() - 2 * bw - newWidth = newHeight * self['buttonaspect'] - btn.configure(width=newWidth, height=newHeight) - self._drawArrow(btn, self.arrowDirection[btn]) - - def _min(self): - self._minVal = None - - def _max(self): - self._maxVal = None - - def _setTimeFromStr(self, str): - list = string.split(str, ':') - if len(list) != 5: - raise ValueError, 'invalid value: ' + str - - self._year = string.atoi(list[0]) - self._month = string.atoi(list[1]) - self._day = string.atoi(list[2]) - self._hour = string.atoi(list[3]) - self._minute = string.atoi(list[4]) - - self._setHMS() - - def getstring(self): - return '%04d:%02d:%02d:%02d:%02d' % (self._year, self._month, - self._day, self._hour, - self._minute) - - def getint(self): - pass - - def _countUp(self, button): - self._relief = self._upYearArrowBtn.cget('relief') - button.configure(relief='sunken') - if button == self._upYearArrowBtn: datetype = "year" - elif button == self._upMonthArrowBtn: datetype = "month" - elif button == self._upDayArrowBtn: datetype = "day" - elif button == self._upHourArrowBtn: datetype = "hour" - elif button == self._upMinuteArrowBtn: datetype = "minute" - self._count(1, datetype, 'start') - - def _countDown(self, button): - self._relief = self._downYearArrowBtn.cget('relief') - button.configure(relief='sunken') - if button == self._downYearArrowBtn: datetype = "year" - elif button == self._downMonthArrowBtn: datetype = "month" - elif button == self._downDayArrowBtn: datetype = "day" - elif button == self._downHourArrowBtn: datetype = "hour" - elif button == self._downMinuteArrowBtn: datetype = "minute" - self._count(-1, datetype, 'start') - - def _count(self, factor, datetype, newFlag=None): - if newFlag != 'force': - if newFlag is not None: - self._flag = newFlag - - if self._flag == 'stopped': - return - - if datetype == "year": self._year = self._year + factor - elif datetype == "month": self._month = self._month + factor - elif datetype == "day": self._day = self._day + factor - elif datetype == "hour": self._hour = self._hour + factor - elif datetype == "minute": self._minute = self._minute + factor - secs = time.mktime((self._year, self._month, self._day, self._hour, - self._minute, 0, 0, 0, -1)) - tt = time.localtime(secs) # NOT gmtime! - - self._year = tt[0] - self._month = tt[1] - self._day = tt[2] - self._hour = tt[3] - self._minute = tt[4] - self._setHMS() - - if newFlag != 'force': - if self['autorepeat']: - if self._flag == 'start': - delay = self['initwait'] - self._flag = 'running' - else: - delay = self['repeatrate'] - self._timerId = self.after( - delay, lambda self=self, factor=factor, datetype=datetype: - self._count(factor, datetype, 'running')) - - def _setHMS(self): - self._yearCounterEntry.setentry('%04d' % self._year) - self._monthCounterEntry.setentry('%02d' % self._month) - self._dayCounterEntry.setentry('%02d' % self._day) - self._hourCounterEntry.setentry('%02d' % self._hour) - self._minuteCounterEntry.setentry('%02d' % self._minute) - - def _stopUpDown(self, button): - if self._timerId is not None: - self.after_cancel(self._timerId) - self._timerId = None - button.configure(relief=self._relief) - self._flag = 'stopped' - - def invoke(self, event = None): - cmd = self['command'] - if callable(cmd): - cmd() - - def destroy(self): - if self._timerId is not None: - self.after_cancel(self._timerId) - self._timerId = None - Pmw.MegaWidget.destroy(self) - -if __name__=="__main__": - - def showString(): - stringVal = _time.getstring() - print stringVal - - root = Tkinter.Tk() - Pmw.initialise(root) - root.title('FullTimeCounter') - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - - _time = FullTimeCounter(root, - labelpos = 'n', - label_text = 'YYYY:MM:DD:HH:mm') - _time.pack(fill = 'both', expand = 1, padx=10, pady=5) - - button = Tkinter.Button(root, text = 'Show', command = showString) - button.pack() - root.mainloop() diff --git a/Pmw/Pmw_1_2/contrib/PmwVerticalGauge.py b/Pmw/Pmw_1_2/contrib/PmwVerticalGauge.py deleted file mode 100644 index b413f937..00000000 --- a/Pmw/Pmw_1_2/contrib/PmwVerticalGauge.py +++ /dev/null @@ -1,253 +0,0 @@ -""" -I needed a simple gauge, so I've made on with Pmw. -It might be useful for others to use as a base to develop more comples -gauges with. - -Is it worth cleaning up and submitting? - -cheers and thanks - -chris - -Dr. Chris Wright -Intensive Care Unit -Monash Medical Centre -Clayton. VIC Australia -""" - -import sys -import Tkinter -import Pmw -import time - - -if sys.platform == 'win32': - # MS-Windows specific fonts - label_font = "-family Ariel -size 12" - value_font = "-family Ariel -size 12" - small_font = "-family {MS Sans Serif} -size 9 -weight bold" - header_font = "-family {MS Sans Serif} -weight bold" -else: - # X-Windows specific fonts - label_font = "-*-helvetica-*-r-*-*-*-160-*-*-*-*-*-*" - value_font = "-*-courier-*-r-*-*-*-160-*-*-*-*-*-*" - small_font = "-*-helvetica-*-r-*-*-*-130-*-*-*-*-*-*" - header_font = "-*-helvetica-bold-r-*-*-*-150-*-*-*-*-*-*" - -class VerticalGauge(Pmw.MegaWidget): - """Vertical gauge with actual and desired settings""" - - def __init__(self, parent = None, **kw): - optiondefs = ( - ('min', 0, None), - ('max', 100, None), - ('majortickinterval', 10, None), - ('minortickinterval', 5, None), - ('units', '', None), - ('bg', 'grey', self._backgroundSet), - ('actualvalue', 50, self._actualSet), - ('desiredvalue', 50, self._desiredSet), - ('actualcolour', 'yellow1', None), - ('desiredcolour', 'turquoise1', None), - ('label', 'Label', None), - ) - self.defineoptions(kw, optiondefs) - Pmw.MegaWidget.__init__(self, parent) - - interior = self.interior() - interior.grid_rowconfigure(1, weight = 1) - for r in range(3): - interior.grid_columnconfigure(r, weight = 1) - - self.actuallabel = self.createcomponent('actualLabel', - (), None, - Tkinter.Label, (interior,), - text = '', - width = 3, - relief = 'sunken', - bd = 1, - fg = self['actualcolour'], - font = value_font) - self.actuallabel.grid(sticky = "nswe", row = 0, column = 0) - - self.label = self.createcomponent('label', - (), None, - Tkinter.Label, (interior,), - text = self['label'], - relief = 'raised', - font = label_font, - fg = 'navy', - bd = 2) - self.label.grid(sticky = "nsew", row = 0, column = 1) - - self.desiredlabel = self.createcomponent('desiredLabel', - (), None, - Tkinter.Label, (interior,), - text = '', - width = 3, - relief = 'sunken', - bd = 1, - fg = self['desiredcolour'], - font = value_font) - self.desiredlabel.grid(sticky = "nswe", row = 0, column = 2) - - self.canvas = self.createcomponent('canvas', - (), None, - Tkinter.Canvas, (interior,), - width = 100, - height = 300, - bg = 'grey') - - self.canvas.grid(sticky = "nsew", columnspan = 3, pady = 1) - self.canvas.bind("", self._createGaugeAxes) - - self._createGaugeAxes() - - self.initialiseoptions() - - def _createGaugeAxes(self, event = None): - min = self['min'] - max = self['max'] - units = self['units'] - majortickinterval = self['majortickinterval'] - - gauge_range = max - min - - c = self.canvas - c.delete("all") - if event: - h, w = event.height, event.width - else: - h = int(c.configure("height")[4]) - w = int(c.configure("width")[4]) - - self.lower = h - 15 - self.upper = 15 - self.middle = w / 2 - c.create_line(self.middle, self.lower, self.middle, self.upper) - - majortickcount = int((max - min) / majortickinterval) - self.axislength = self.lower - self.upper - self.majortickdistance = float(self.axislength) / majortickcount - self.majortickwidth = w / 5 - labeloffset = (w / 4) + 10 - - for i in range(majortickcount + 1): - v = min + i * majortickinterval - d = self.lower - i * self.majortickdistance - c.create_line(self.middle, d, self.middle + self.majortickwidth, d) - c.create_text(self.middle + labeloffset, d, font = small_font, text = str(v)) - - self._desiredSet(event) - self._actualSet(event) - - def _backgroundSet(self): - self.canvas.configure(bg = self['bg']) - - def _desiredSet(self, event = None): - c = self.canvas - desired = self['desiredvalue'] - desiredcolour = self['desiredcolour'] - - min = self['min'] - max = self['max'] - - if desired > max: desired = max - if desired < min: desired = min - gauge_range = max - min - - c = self.canvas - if event: - h, w = event.height, event.width - else: - h = int(c.configure("height")[4]) - w = int(c.configure("width")[4]) - - - desired_y = self.lower - (float(desired - min) / gauge_range) * self.axislength - - try: - c.delete('desiredBar') - except: - pass - - c.create_line(self.middle - self.majortickwidth, desired_y, - self.middle + self.majortickwidth, desired_y, - fill = desiredcolour, stipple = 'gray50', - width = 10, tag = 'desiredBar') - self.desiredlabel.configure(text = desired) - - def setActual(self, value): - self.configure(actualvalue = value) - - def getActual(self): - return self.cget('actualvalue') - - def _actualSet(self, event = None): - c = self.canvas - actual = self['actualvalue'] - actualcolour = self['actualcolour'] - - min = self['min'] - max = self['max'] - - if actual > max: actual = max - if actual < min: actual = min - gauge_range = max - min - - c = self.canvas - if event: - h, w = event.height, event.width - else: - h = int(c.configure("height")[4]) - w = int(c.configure("width")[4]) - - actual_y = self.lower - (float(actual - min) / gauge_range) * self.axislength - - try: - c.delete('actualPointer') - except: - pass - - triangle = ((self.middle, actual_y), - (self.middle - 1.4 * self.majortickwidth, actual_y - self.majortickwidth / 2), - (self.middle - 1.4 * self.majortickwidth, actual_y + self.majortickwidth / 2)) - - c.create_polygon(triangle, fill = actualcolour, tag = 'actualPointer') - self.actuallabel.configure(text = actual) - - -Pmw.forwardmethods(VerticalGauge, Tkinter.Canvas, 'canvas') - -if __name__ == '__main__': - - - # Initialise Tkinter and Pmw. - root = Pmw.initialise() - root.title('Pmw VerticalGauge demonstration') - - - def increase(): - av = g1.getActual() - g1.setActual(av + 1) - - def decrease(): - av = g1.getActual() - g1.setActual(av - 1) - - g1 = VerticalGauge(min = 0, - max = 30, - actualvalue = 15, - desiredvalue = 22, - majortickinterval = 2, - label = "Pms") - g1.grid(sticky = "nsew") - root.grid_rowconfigure(0, weight = 1) - root.grid_columnconfigure(0, weight = 1) - b1 = Tkinter.Button(text = "Increase", command = increase) - b1.grid() - b2 = Tkinter.Button(text = "Decrease", command = decrease) - b2.grid() - - # Let's go. - root.mainloop() diff --git a/Pmw/Pmw_1_2/contrib/README b/Pmw/Pmw_1_2/contrib/README deleted file mode 100644 index 2662f77e..00000000 --- a/Pmw/Pmw_1_2/contrib/README +++ /dev/null @@ -1,10 +0,0 @@ -This directory contains contributed Pmw megawidgets. - -DirBrowser.py directory selection dialog -MCListbox.py multi-column selectable listbox -PmwFileDialog.py file selection dialog -PmwFullTimeCounter.py time counter which includes year, month and day -PmwVerticalGauge.py a simple gauge indicating a value and a threshold -TreeBrowser.py generic hierarchical tree browser - -Each file can be executed and will display a demo of its megawidget. diff --git a/Pmw/Pmw_1_2/contrib/TreeBrowser.py b/Pmw/Pmw_1_2/contrib/TreeBrowser.py deleted file mode 100644 index 6d9fe89a..00000000 --- a/Pmw/Pmw_1_2/contrib/TreeBrowser.py +++ /dev/null @@ -1,732 +0,0 @@ -# -# FILE: TreeBrowser.py -# -# DESCRIPTION: -# This file provides a generic hierarchical tree browser widget. -# -# AUTHOR: Steve Kinneberg , -# MontaVista Software, Inc. -# -# Copyright 2001 MontaVista Software Inc. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# THIS SOFTWARE IS PROVIDED ``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 AUTHOR 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. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 675 Mass Ave, Cambridge, MA 02139, USA. -# - - -import types -import Tkinter -import Pmw - - -class _Branching: - def __init__(self): - # List of branch names - self._nodeNames = [] - - # Map from branch name to branch info - # branch Either _LeafNode or _BranchNode widget of the branch - # nodetype Either 'TreeNode' or 'LeafNode' - self._nodeAttrs = {} - - def addbranch(self, branchName = None, **kw): - kw['indent'] = self['indent'] - return apply(self._insertnode, - ('tree', branchName, len(self._nodeNames), - self._treeRoot), - kw) - - def addleaf(self, leafName = None, **kw): - return apply(self._insertnode, - ('leaf', leafName, len(self._nodeNames), - self._treeRoot), - kw) - - def insertbranch(self, branchName = None, before = 0, **kw): - kw['indent'] = self['indent'] - return apply(self._insertnode, - ('tree', branchName, before, self._treeRoot), - kw) - - def insertleaf(self, leafName = None, before = 0, **kw): - return apply(self._insertnode, - ('leaf', leafName, before, self._treeRoot), - kw) - - def _insertnode(self, type, nodeName, before, treeRoot, **kw): - if 'selectbackground' not in kw.keys(): - kw['selectbackground'] = self['selectbackground'] - - if 'selectforeground' not in kw.keys(): - kw['selectforeground'] = self['selectforeground'] - - if 'background' not in kw.keys(): - kw['background'] = self['background'] - - if 'foreground' not in kw.keys(): - kw['foreground'] = self['foreground'] - - if nodeName == None: - nodeName = self._nodeName + ".%d" % (len(self._nodeNames) + 1) - - if self._nodeAttrs.has_key(nodeName): - msg = 'Node "%s" already exists.' % nodeName - raise ValueError, msg - - # Do this early to catch bad spec before creating any items. - beforeIndex = self.index(before, 1) - attributes = {} - - last = (beforeIndex == len(self._nodeNames)) - if last and len(self._nodeNames) > 0: - # set the previous node to not last - self._nodeAttrs[self._nodeNames[-1]]['branch']._setlast(0) - - if(type == 'tree'): - node = apply(self.createcomponent, ('branch%d'%len(self._nodeNames), - (), None, - _BranchNode, - self._branchFrame, - nodeName, - treeRoot, - self, - last, - ), kw) - attributes['nodetype'] = 'TreeNode' - else: - node = apply(self.createcomponent, ('leaf%d'%len(self._nodeNames), - (), None, - _LeafNode, - self._branchFrame, - nodeName, - treeRoot, - self, - last, - ), kw) - attributes['nodetype'] = 'LeafNode' - - if len(self._nodeNames) == beforeIndex: - node.pack(anchor='w') - else: - bname = self._nodeNames[beforeIndex] - battrs = self._nodeAttrs[bname] - node.pack(anchor='w', before=battrs['branch']) - - attributes['branch'] = node - - self._nodeAttrs[nodeName] = attributes - self._nodeNames.insert(beforeIndex, nodeName) - self._sizechange() - return node - - def delete(self, *nodes): - curSel = self._treeRoot.curselection()[0] - for node in nodes: - index = self.index(node) - name = self._nodeNames.pop(index) - dnode = self._nodeAttrs[name]['branch'] - del self._nodeAttrs[name] - if dnode == curSel: - self._treeRoot._unhightlightnode(dnode) - dnode.destroy() - self._sizechange() - - def destroy(self): - for node in len(self._nodeNames): - self.delete(node) - Pmw.MegaWidget.destroy(self) - - def index(self, index, forInsert = 0): - if isinstance(index, _LeafNode): - index = index._nodeName - listLength = len(self._nodeNames) - if type(index) == types.IntType: - if forInsert and index <= listLength: - return index - elif not forInsert and index < listLength: - return index - else: - raise ValueError, 'index "%s" is out of range' % index - elif type(index) == types.StringType: - if index in self._nodeNames: - return self._nodeNames.index(index) - raise ValueError, 'bad branch or leaf name: %s' % index - elif index is Pmw.END: - if forInsert: - return listLength - elif listLength > 0: - return listLength - 1 - else: - raise ValueError, 'TreeNode has no branches' - #elif index is Pmw.SELECT: - # if listLength == 0: - # raise ValueError, 'TreeNode has no branches' - # return self._pageNames.index(self.getcurselection()) - else: - validValues = 'a name, a number, Pmw.END, Pmw.SELECT, or a reference to a TreeBrowser Leaf or Branch' - raise ValueError, \ - 'bad index "%s": must be %s' % (index, validValues) - - def getnodenames(self): - return self._nodeNames - - def getnode(self, node): - nodeName = self._nodeNames[self.index(node)] - return self._nodeAttrs[nodeName]['branch'] - - -class _LeafNode(Pmw.MegaWidget): - - def __init__(self, parent, nodeName, treeRoot, parentnode, last = 1, **kw): - colors = Pmw.Color.getdefaultpalette(parent) - - self._nodeName = nodeName - self._treeRoot = treeRoot - self._parentNode = parentnode - - self._last = last - # Define the megawidget options. - INITOPT = Pmw.INITOPT - optiondefs = ( - ('selectbackground', colors['selectBackground'], INITOPT), - ('selectforeground', colors['selectForeground'], INITOPT), - ('background', colors['background'], INITOPT), - ('foreground', colors['foreground'], INITOPT), - ('selectcommand', None, None), - ('deselectcommand', None, None), - ('labelpos', 'e', INITOPT), - ('labelmargin', 0, INITOPT), - ('label', None, None), - ) - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.MegaWidget.__init__(self, parent) - - # Create the components - interior = self._hull - - - labelpos = self['labelpos'] - - if self['label'] == None: - self._labelWidget = self.createcomponent('labelwidget', - (), None, - Pmw.LabeledWidget, - (interior,), - #background = self['background'], - #foreground = self['foreground'], - ) - else: - self._labelWidget = self.createcomponent('labelwidget', - (), None, - Pmw.LabeledWidget, - (interior,), - label_background = self['background'], - label_foreground = self['foreground'], - labelpos = labelpos, - labelmargin = self['labelmargin'], - label_text = self['label'], - ) - self._labelWidget.component('label').bind('', - self._selectevent) - - self._labelWidget.grid(column = 1, row = 0, sticky = 'w') - - self._labelWidget.update() - - self._labelheight = self._labelWidget.winfo_height() - - self._lineCanvas = self.createcomponent('linecanvas', - (), None, - Tkinter.Canvas, - (interior,), - width = self._labelheight, - height = self._labelheight, - ) - self._lineCanvas.grid( column = 0, row = 0, sticky = 'news') - self._lineCanvas.update() - - cw = int(self._lineCanvas['width']) - ch = int(self._lineCanvas['height']) - - self._lineCanvas.create_line(cw/2, ch/2, cw, ch/2, tag='hline') - if last: - self._lineCanvas.create_line(cw/2, 0, cw/2, ch/2, tag='vline') - else: - self._lineCanvas.create_line(cw/2, 0, cw/2, ch, tag='vline') - - # Check keywords and initialise options. - self.initialiseoptions() - - - def interior(self): - return self._labelWidget.interior() - - def select(self): - self._highlight() - - def getname(self): - return self._nodeName - - def getlabel(self): - return self['label'] - - def _selectevent(self, event): - self._highlight() - - def _highlight(self): - self._treeRoot._highlightnode(self) - #self._subHull.configure(background = self._selectbg, relief = 'raised') - if self['label'] != None: - self._labelWidget.configure(label_background = self['selectbackground']) - self._labelWidget.configure(label_foreground = self['selectforeground']) - #self._viewButton.configure(background = self._selectbg) - cmd = self['selectcommand'] - if callable(cmd): - cmd(self) - - def _unhighlight(self): - #self._subHull.configure(background = self._bg, relief = 'flat') - if self['label'] != None: - self._labelWidget.configure(label_background = self['background']) - self._labelWidget.configure(label_foreground = self['foreground']) - #self._viewButton.configure(background = self._bg) - cmd = self['deselectcommand'] - if callable(cmd): - cmd(self) - - def _setlast(self, last): - self._last = last - - cw = int(self._lineCanvas['width']) - ch = int(self._lineCanvas['height']) - - if last: - self._lineCanvas.create_line(cw/2, 0, cw/2, ch/2, tag='vline') - else: - self._lineCanvas.create_line(cw/2, 0, cw/2, ch, tag='vline') - - -class _BranchNode(_LeafNode, _Branching): #Pmw.MegaWidget): - - def __init__(self, parent, nodeName, treeRoot, parentnode, last = 1, **kw): - # Define the megawidget options. - INITOPT = Pmw.INITOPT - optiondefs = ( - ('view', 'collapsed', None), - ('expandcommand', None, None), - ('collapsecommand', None, None), - ('indent', 0, INITOPT) - ) - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - apply(_LeafNode.__init__, - (self, parent, nodeName, treeRoot, parentnode, last), - kw) - _Branching.__init__(self) - - # Create the components - interior = self._hull - - # Create the expand/collapse button - self._viewButton = self.createcomponent('viewbutton', (), None, - Tkinter.Canvas, - (interior,), - background = self['background'], - width = self._labelheight - 4, - height = self._labelheight - 4, - borderwidth = 2, - relief = 'raised') - - self._viewButton.grid(column = 0, row = 0, sticky='se') - self._viewButton.bind('', self._showbuttonpress) - self._viewButton.bind('', self._toggleview) - - # The label widget is already created by the base class, however - # we do need to make some slight modifications. - if self['label'] != None: - self._labelWidget.component('label').bind('', - self._toggleview) - self._labelWidget.grid(column=1, row=0, columnspan = 3, sticky='sw') - - # A line canvas is already created for us, we just need to make - # some slight modifications - self._lineCanvas.delete('hline') - self._lineCanvas.grid_forget() - - - # Set the minsize of column 1 to control additional branch frame indentation - self.grid_columnconfigure(1, minsize = self['indent']) - - # Create the branch frame that will contain all the branch/leaf nodes - self._branchFrame = self.createcomponent('frame', (), None, - Tkinter.Frame, (interior,), - #borderwidth=2, - #relief='ridge', - ) - self.grid_columnconfigure(2,minsize=0, weight=1) - #self.grid_rowconfigure(0,minsize=0) - - if(self['view'] == 'expanded'): - Pmw.drawarrow(self._viewButton, - self['foreground'], - 'down', 'arrow') - self._branchFrame.grid(column = 2, row = 1, sticky='nw') - if not self._last: - self._branchFrame.update() - bh = self._branchFrame.winfo_height() - self._lineCanvas.configure(height = bh) - self._lineCanvas.grid(column = 0, row = 1, sticky='news') - cw = int(self._lineCanvas['width']) - ch = int(self._lineCanvas['height']) - #self._lineCanvas.create_line(cw/2, 1, cw/2, ch, tag = 'vline') - self._lineCanvas.coords('vline', cw/2, 1, cw/2, ch) - else: - Pmw.drawarrow(self._viewButton, - self['foreground'], - 'right', 'arrow') - self._viewButton.configure(relief = 'raised') - - - # Check keywords and initialise options. - self.initialiseoptions() - - - - def _showbuttonpress(self, event): - self._viewButton.configure(relief = 'sunken') - - def _toggleview(self, event): - self._viewButton.configure(relief = 'sunken') - self.select() - if(self['view'] == 'expanded'): - self.collapsetree() - else: - self.expandtree() - self._viewButton.configure(relief = 'raised') - - def expandtree(self): - if(self['view'] == 'collapsed'): - cmd = self['expandcommand'] - if cmd is not None: - cmd(self) - self['view'] = 'expanded' - Pmw.drawarrow(self._viewButton, - self['foreground'], - 'down', 'arrow') - self._branchFrame.grid(column = 2, row = 1, sticky='nw') - - if not self._last: - self._branchFrame.update() - bh = self._branchFrame.winfo_height() - self._lineCanvas.configure(height = bh) - self._lineCanvas.grid(column = 0, row = 1, sticky='news') - cw = int(self._lineCanvas['width']) - ch = int(self._lineCanvas['height']) - #self._lineCanvas.create_line( cw/2, 1, cw/2, ch, tag = 'vline') - self._lineCanvas.coords('vline', cw/2, 1, cw/2, ch) - self._parentNode._sizechange() - - def collapsetree(self): - if(self['view'] == 'expanded'): - cmd = self['collapsecommand'] - if cmd is not None: - cmd(self) - self['view'] = 'collapsed' - Pmw.drawarrow(self._viewButton, - self['foreground'], - 'right', 'arrow') - self._branchFrame.grid_forget() - if not self._last: - #self._lineCanvas.delete('vline') - self._lineCanvas.grid_forget() - self._parentNode._sizechange() - - def _setlast(self, last): - self._last = last - if self['view'] == 'expanded': - self._branchFrame.update() - bh = self._branchFrame.winfo_height() - self._lineCanvas.configure(height = bh) - cw = int(self._lineCanvas['width']) - ch = int(self._lineCanvas['height']) - self._lineCanvas.delete('vline') - if not last: - self._lineCanvas.create_line(cw/2, 1, cw/2, ch, tag='vline') - - - def _sizechange(self): - if not self._last and self['view'] == 'expanded': - self._branchFrame.update() - bh = self._branchFrame.winfo_height() - self._lineCanvas.configure(height = bh) - if self._lineCanvas.coords('vline')[3] < bh: - cw = int(self._lineCanvas['width']) - ch = int(self._lineCanvas['height']) - #self._lineCanvas.delete('vline') - #self._lineCanvas.create_line(cw/2, 1, cw/2, ch, tag='vline') - self._lineCanvas.coords('vline', cw/2, 1, cw/2, ch) - self._parentNode._sizechange() - -class TreeBrowser(Pmw.MegaWidget, _Branching): - - def __init__(self, parent = None, nodeName = '0', **kw): - colors = Pmw.Color.getdefaultpalette(parent) - - # Define the megawidget options. - INITOPT = Pmw.INITOPT - optiondefs = ( - ('indent', 0, INITOPT), - ('selectbackground', colors['selectBackground'], INITOPT), - ('selectforeground', colors['selectForeground'], INITOPT), - ('background', colors['background'], INITOPT), - ('foreground', colors['foreground'], INITOPT), - #('selectrelief', 'raised', INITOPT), - ) - - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.MegaWidget.__init__(self, parent) - _Branching.__init__(self) - - - # Create the components - interior = self._hull - - browserFrame = self.createcomponent('frame', (), None, - Pmw.ScrolledFrame, - (interior,), - ) - - browserFrame.pack(expand = 1, fill='both') - - self._branchFrame = browserFrame.interior() - - self._highlightedNode = None - self._treeRoot = self - self._nodeName = nodeName - # Check keywords and initialise options. - self.initialiseoptions() - - def _highlightnode(self, newNode): - if self._highlightedNode != newNode: - if self._highlightedNode != None: - self._highlightedNode._unhighlight() - self._highlightedNode = newNode - - def _unhighlightnode(self): - if self._highlightedNode != None: - self._highlightedNode._unhighlight() - self._highlightedNode = None - - def curselection(self): - retVal = None - if self._highlightedNode != None: - retVal = (self._highlightedNode, - self._highlightedNode._nodeName, - self._highlightedNode['label']) - return retVal - - def getname(self): - return self._nodeName - - # The top-level TreeBrowser widget only shows nodes in an expanded view - # but still provides collapsetree() and expandtree() methods so that users - # don't have to special case the top-level node - - def collapsetree(self): - return - - def expandtree(self): - return - - def _sizechange(self): - return - -if __name__ == '__main__': - - rootWin = Tkinter.Tk() - - Pmw.initialise() - - rootWin.title('TreeBrowser Demo') - - # Create the hierarchical tree browser widget - treeBrowser = TreeBrowser(rootWin, - #selectbackground = "darkgreen", - #selectforeground = 'lightgreen', - #background = 'green', - #indent = 10, - ) - - - def printselected(node): - selection = treeBrowser.curselection() - if selection != None: - print "Selected node name:", selection[1], " label:", selection[2] - - - def printdeselected(node): - selection = treeBrowser.curselection() - if selection != None: - print "Deselected node name:", selection[1], " label:", selection[2] - - def printexpanded(node): - print "Expanded node name:", node.getname(), " label:", node.getlabel() - - def printcollapsed(node): - print "Collapsed node name:", node.getname(), " label:", node.getlabel() - - - - for i in range(3): - # Add a tree node to the top level - treeNodeLevel1 = treeBrowser.addbranch(label = 'TreeNode %d'%i, - selectcommand = printselected, - deselectcommand = printdeselected, - expandcommand = printexpanded, - collapsecommand = printcollapsed, - ) - for j in range(3): - # Add a tree node to the second level - treeNodeLevel2 = treeNodeLevel1.addbranch(label = 'TreeNode %d.%d'%(i,j), - #selectforeground = 'yellow', - selectcommand = printselected, - deselectcommand = printdeselected, - expandcommand = printexpanded, - collapsecommand = printcollapsed, - ) - if i == 0 and j == 1: - dynamicTreeRootNode = treeNodeLevel1 - dynamicTreePosNode = treeNodeLevel2 - - for item in range((i+1)*(j+1)): - # Add a leaf node to the third level - leaf = treeNodeLevel2.addleaf(label = "Item %c"%(item+65), - #selectbackground = 'blue', - selectcommand = printselected, - deselectcommand = printdeselected) - for item in range(i+1): - # Add a leaf node to the top level - leaf = treeNodeLevel1.addleaf(label = "Item %c"%(item+65), - selectcommand = printselected, - deselectcommand = printdeselected) - - - treeNodeLevel1 = treeBrowser.addbranch(label = 'Check Button Label', - selectcommand = printselected, - deselectcommand = printdeselected, - expandcommand = printexpanded, - collapsecommand = printcollapsed, - ) - checkButton = Tkinter.Checkbutton(treeNodeLevel1.interior(), - text = 'Da Check Button', - relief = 'ridge', - command = treeNodeLevel1.select) - checkButton.pack() - - treeNodeLevel1.addleaf(label = 'Labeled Leaf', - selectcommand = printselected, - deselectcommand = printdeselected) - leaf = treeNodeLevel1.addleaf(label = 'Labeled Leaf w/ Checkbutton', - selectcommand = printselected, - deselectcommand = printdeselected) - checkButton = Tkinter.Checkbutton(leaf.interior(), - text = 'Da Check Button', - relief = 'ridge', - command = leaf.select) - checkButton.pack() - - - treeNodeLevel1 = treeBrowser.addbranch(selectcommand = printselected, - deselectcommand = printdeselected, - expandcommand = printexpanded, - collapsecommand = printcollapsed, - ) - checkButton = Tkinter.Checkbutton(treeNodeLevel1.interior(), - text = 'Check Button with no label', - relief = 'ridge', - command = treeNodeLevel1.select) - checkButton.pack() - - treeNodeLevel1 = treeBrowser.addbranch(label = 'Label', - selectcommand = printselected, - deselectcommand = printdeselected, - expandcommand = printexpanded, - collapsecommand = printcollapsed, - ) - - # setup dynamic tree node insertion and removal - class dynTree: - def __init__(self): - self.dyn = Tkinter.IntVar() - self.dtree = None - - self.dLeaf = treeBrowser.addleaf(selectcommand = self.dynSelected, - deselectcommand = self.dynDeselected) - - self.dCheckButton = Tkinter.Checkbutton(self.dLeaf.interior(), - text = 'Enable Dynamic Tree', - variable = self.dyn, - command = self.ChkBtnHandler) - self.dCheckButton.pack() - - - def dynSelected(self, node): - self.dCheckButton.configure(background = self.dLeaf.configure('selectbackground')[4]) - printselected(node) - - def dynDeselected(self, node): - self.dCheckButton.configure(background = self.dLeaf.configure('background')[4]) - printdeselected(node) - - def ChkBtnHandler(self): - self.dLeaf.select() - if self.dyn.get() == 1: - self.dtree = dynamicTreeRootNode.insertbranch(label = 'Dynamic Tree Node', - selectcommand = printselected, - deselectcommand = printdeselected, - expandcommand = printexpanded, - collapsecommand = printcollapsed, - before = dynamicTreePosNode) - self.dtree.addleaf(label = 'Dynamic Leaf 1', - selectcommand = printselected, - deselectcommand = printdeselected) - self.dtree.addleaf(label = 'Dynamic Leaf 2', - selectcommand = printselected, - deselectcommand = printdeselected) - else: - if self.dtree != None: - dynamicTreeRootNode.delete(self.dtree) - self.dtree = None - - - foo = dynTree() - - - treeBrowser.pack(expand = 1, fill='both') - - exitButton = Tkinter.Button(rootWin, text="Quit", command=rootWin.quit) - exitButton.pack() - - rootWin.mainloop() diff --git a/Pmw/Pmw_1_2/demos/AboutDialog.py b/Pmw/Pmw_1_2/demos/AboutDialog.py deleted file mode 100644 index 1760befe..00000000 --- a/Pmw/Pmw_1_2/demos/AboutDialog.py +++ /dev/null @@ -1,43 +0,0 @@ -title = 'Pmw.AboutDialog demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create dialog. - Pmw.aboutversion('9.9') - Pmw.aboutcopyright('Copyright My Company 1999\nAll rights reserved') - Pmw.aboutcontact( - 'For information about this application contact:\n' + - ' My Help Desk\n' + - ' Phone: +61 2 9876 5432\n' + - ' email: help@my.company.com.au' - ) - self.about = Pmw.AboutDialog(parent, applicationname = 'My Application') - self.about.withdraw() - - # Create button to launch the dialog. - w = Tkinter.Button(parent, text = 'Show about dialog', - command = self.execute) - w.pack(padx = 8, pady = 8) - - def execute(self): - self.about.show() - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/All.py b/Pmw/Pmw_1_2/demos/All.py deleted file mode 100755 index f94955cf..00000000 --- a/Pmw/Pmw_1_2/demos/All.py +++ /dev/null @@ -1,310 +0,0 @@ -#!/usr/bin/env python - -# ------------------------------------------------------------------ -# Display a splash screen as quickly as possible (before importing -# modules and initialising Pmw). - -import Tkinter -root = Tkinter.Tk(className = 'Demo') -root.withdraw() - -splash = Tkinter.Toplevel() -splash.withdraw() -splash.title('Welcome to the Pmw demos') -text = Tkinter.Label(splash, - font=('Helvetica', 16, 'bold'), - relief = 'raised', - borderwidth = 2, - padx=50, pady=50, - text = - 'Welcome to the Pmw megawidgets demo.\n' - '\n' - 'In a moment the main window will appear.\n' - 'Please enjoy yourself while you wait.\n' - 'You may be interested to know that splash screens\n' - '(as this window is called) were first devised to draw\n' - 'attention away from the fact the certain applications\n' - 'are slow to start. They are normally flashier and more\n' - 'entertaining than this one. This is a budget model.' -) -text.pack(fill = 'both', expand = 1) -splash.update_idletasks() - -width = splash.winfo_reqwidth() -height = splash.winfo_reqheight() -x = (root.winfo_screenwidth() - width) / 2 - root.winfo_vrootx() -y = (root.winfo_screenheight() - height) / 3 - root.winfo_vrooty() -if x < 0: - x = 0 -if y < 0: - y = 0 -geometry = '%dx%d+%d+%d' % (width, height, x, y) - -splash.geometry(geometry) -splash.update_idletasks() -splash.deiconify() -root.update() - -# ------------------------------------------------------------------ - -# Now crank up the application windows. - -import imp -import os -import re -import string -import sys -import types -import Tkinter -import DemoVersion -import Args - -# Find where the other scripts are, so they can be listed. -if __name__ == '__main__': - script_name = sys.argv[0] -else: - script_name = imp.find_module('DemoVersion')[1] - -script_name = os.path.normpath(script_name) -script_name = DemoVersion.expandLinks(script_name) -script_dir = os.path.dirname(script_name) -script_dir = DemoVersion.expandLinks(script_dir) - -# Add the '../../..' directory to the path. -package_dir = os.path.dirname(script_dir) -package_dir = DemoVersion.expandLinks(package_dir) -package_dir = os.path.dirname(package_dir) -package_dir = DemoVersion.expandLinks(package_dir) -package_dir = os.path.dirname(package_dir) -package_dir = DemoVersion.expandLinks(package_dir) -sys.path[:0] = [package_dir] - -# Import Pmw after modifying sys.path (it may not be in the default path). -import Pmw -DemoVersion.setPmwVersion() - -class Demo(Pmw.MegaWidget): - - def __init__(self, parent=None, **kw): - - # Define the megawidget options. - optiondefs = () - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.MegaWidget.__init__(self, parent) - - # Create the contents. - top = self.interior() - - panes = Pmw.PanedWidget(top, orient = 'horizontal') - panes.pack(fill = 'both', expand = 1) - - panes.add('widgetlist') - self._widgetlist = Pmw.ScrolledListBox(panes.pane('widgetlist'), - selectioncommand = Pmw.busycallback(self.startDemo), - label_text = 'Select a widget:', - labelpos = 'nw', - vscrollmode = 'dynamic', - hscrollmode = 'none', - listbox_exportselection = 0) - self._widgetlist.pack(fill = 'both', expand = 1, padx = 8) - - panes.add('info') - self._status = Tkinter.Label(panes.pane('info')) - self._status.pack(padx = 8, anchor = 'w') - - self._example = Tkinter.Frame(panes.pane('info'), - borderwidth = 2, - relief = 'sunken', - background = 'white') - self._example.pack(fill = 'both', expand = 1, padx = 8) - - self.buttonBox = Pmw.ButtonBox(top) - self.buttonBox.pack(fill = 'x') - - # Add the buttons and make them all the same width. - self._traceText = 'Trace tk calls' - self._stopTraceText = 'Stop trace' - self.buttonBox.add('Trace', text = self._traceText, - command = self.trace) - self.buttonBox.add('Code', text = 'Show code', command = self.showCode) - self.buttonBox.add('Exit', text = 'Exit', command = sys.exit) - self.buttonBox.alignbuttons() - - # Create the window to display the python code. - self.codeWindow = Pmw.TextDialog(parent, - title = 'Python source', - buttons = ('Dismiss',), - scrolledtext_labelpos = 'n', - label_text = 'Source') - self.codeWindow.withdraw() - self.codeWindow.insert('end', '') - - self.demoName = None - self._loadDemos() - - # Check keywords and initialise options. - self.initialiseoptions() - - def startDemo(self): - # Import the selected module and create and instance of the module's - # Demo class. - - sels = self._widgetlist.getcurselection() - if len(sels) == 0: - print 'No demonstrations to display' - return - demoName = sels[0] - - # Ignore if this if it is a sub title. - if demoName[0] != ' ': - self._widgetlist.bell() - return - - # Strip the leading two spaces. - demoName = demoName[2:] - - # Ignore if this demo is already being shown. - if self.demoName == demoName: - return - - self.demoName = demoName - - self.showStatus('Loading ' + demoName) - # Busy cursor - self.update_idletasks() - - for window in self._example.winfo_children(): - window.destroy() - - frame = Tkinter.Frame(self._example) - frame.pack(expand = 1) - exec 'import ' + demoName - # Need to keep a reference to the widget, so that variables, etc - # are not deleted. - self.widget = eval(demoName + '.Demo(frame)') - title = eval(demoName + '.title') - self.showStatus(title) - - if self.codeWindow.state() == 'normal': - self.insertCode() - - def showStatus(self, text): - self._status.configure(text = text) - - def showCode(self): - if self.codeWindow.state() != 'normal': - if self.demoName is None: - print 'No demonstration selected' - return - self.insertCode() - - self.codeWindow.show() - - def insertCode(self): - self.codeWindow.clear() - fileName = os.path.join(script_dir, self.demoName + '.py') - self.codeWindow.importfile(fileName) - self.codeWindow.configure(label_text = self.demoName + ' source') - - def trace(self): - text = self.buttonBox.component('Trace').cget('text') - if text == self._traceText: - self.buttonBox.configure(Trace_text = self._stopTraceText) - Pmw.tracetk(root, 1) - self.showStatus('Trace will appear on standard output') - else: - self.buttonBox.configure(Trace_text = self._traceText) - Pmw.tracetk(root, 0) - self.showStatus('Tk call tracing stopped') - - def _loadDemos(self): - files = os.listdir(script_dir) - files.sort() - megawidgets = [] - others = [] - for file in files: - if re.search('.py$', file) is not None and \ - file not in ['All.py', 'DemoVersion.py', 'Args.py']: - demoName = file[:-3] - index = string.find(demoName, '_') - if index < 0: - testattr = demoName - else: - testattr = demoName[:index] - if hasattr(Pmw, testattr): - megawidgets.append(demoName) - else: - others.append(demoName) - - self._widgetlist.insert('end', 'Megawidget demos:') - for name in megawidgets: - self._widgetlist.insert('end', ' ' + name) - self._widgetlist.insert('end', 'Other demos:') - for name in others: - self._widgetlist.insert('end', ' ' + name) - self._widgetlist.select_set(1) - -class StdOut: - def __init__(self, displayCommand): - self.displayCommand = displayCommand - self.text = '\n' - - def write(self, text): - if self.text[-1] == '\n': - self.text = text - else: - self.text = self.text + text - if self.text[-1] == '\n': - text = self.text[:-1] - else: - text = self.text - self.displayCommand(text) - -if os.name == 'nt': - defaultFontSize = 16 -else: - defaultFontSize = 12 - -commandLineArgSpecs = ( - ('fontscheme', 0, 'scheme', 'fonts to use [eg pmw2] (Tk defaults)'), - ('fontsize', 0, 'num', 'size of fonts to use with fontscheme', defaultFontSize), - ('stdout', 0, Args.Bool, 'print messages rather than display in label'), -) - -program = 'All.py' -msg = Args.parseArgs(program, sys.argv, commandLineArgSpecs, 0) -if msg is not None: - print msg - sys.exit() - -size = Args.get('fontsize') -fontScheme = Args.get('fontscheme') -Pmw.initialise(root, size = size, fontScheme = fontScheme, useTkOptionDb = 1) - -root.title('Pmw ' + Pmw.version() + ' megawidget demonstration') -if size < 18: - geometry = '800x550' -else: - geometry = '1000x700' -root.geometry(geometry) - -demo = Demo(root) -demo.pack(fill = 'both', expand = 1) -demo.focus() - -# Redirect standard output from demos to status line (unless -stdout -# option given on command line). -if not Args.get('stdout'): - sys.stdout = StdOut(demo.showStatus) - -# Start the first demo. -demo.startDemo() - -# Get rid of the splash screen -root.deiconify() -root.update() -splash.destroy() - -root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/Args.py b/Pmw/Pmw_1_2/demos/Args.py deleted file mode 100644 index 1bbedf91..00000000 --- a/Pmw/Pmw_1_2/demos/Args.py +++ /dev/null @@ -1,191 +0,0 @@ -"""Handle command line arguments. - -This module contains functions to parse and access the arguments given -to the program on the command line. -""" - -import types -import string -import sys - -# Symbolic constants for the indexes into an argument specifier tuple. -NAME = 0 -MANDATORY = 1 -TYPE = 2 -HELP = 3 -DEFAULT = 4 -SPEC_LENGTH = 5 - -Bool = [] - -helpSpec = ( - ('help', 0, Bool, 'print help and exit'), -) - -def parseArgs(title, argv, argSpecs, filesOK): - """Parse and check command line arguments. - - Scan the command line arguments in *argv* according to the argument - specifier *argSpecs*. Return **None** if there are no errors in - the arguments, otherwise return an error string describing the error. - - This function must be called to initialise this module. - - title -- The name of the program. This is used when returning - error messages or help text. - - argv -- A sequence containing the arguments given to the program. - Normally **sys.argv**. - - argSpecs -- A sequence of argument specifiers. Each specifier describes - a valid command line argument and consists of 4 or 5 items: - - - The argument name (without a leading minus sign **-**). - - - A boolean value, true if the argument is mandatory. - - - This should be **Args.Bool** if the argument has no option. - Otherwise it should be a string describing the option - required for this argument. This is used when printing help. - - - A short string describing the argument. - - - The default value of the argument. This should only be used - for non-mandatory arguments expecting an option. - - For example: - ( - ('foreground', 0, 'colour', 'colour of text', 'black'), - ('geometry', 0, 'spec', 'geometry of initial window'), - ('server', 1, 'ompserver', 'ompserver to connect to'), - ('silent', 0, Args.Bool, 'do not sound bell'), - ) - """ - - global programName - global _fileList - - errMsg = title + ' command line error: ' - programName = argv[0]; - - argSpecs = helpSpec + argSpecs - argSpecDic = {} - for spec in argSpecs: - arg = spec[NAME] - argSpecDic[arg] = spec - if len(spec) >= SPEC_LENGTH: - set(arg, spec[DEFAULT]) - elif spec[TYPE] is Bool: - set(arg, 0) - else: - set(arg, None) - - knownKeys = argSpecDic.keys() - - i = 1 - _fileList = [] - argc = len(argv) - while i < argc: - arg = argv[i] - key = arg[1:] - if key in knownKeys: - spec = argSpecDic[key] - if spec[TYPE] is Bool: - set(key, 1) - else: - i = i + 1 - if i >= argc: - return errMsg + 'missing argument to \'' + arg + '\' option.' - value = argv[i] - if len(spec) >= SPEC_LENGTH: - try: - if type(spec[DEFAULT]) == types.IntType: - typeStr = 'integer' - value = string.atoi(value) - elif type(spec[DEFAULT]) == types.FloatType: - typeStr = 'float' - value = string.atof(value) - except: - sys.exc_traceback = None # Clean up object references - return errMsg + 'cannot convert string \'' + value + \ - '\' to ' + typeStr + ' for option \'-' + key + '\'.' - set(key, value) - else: - _fileList.append(arg) - i = i + 1 - - if get('help'): - return _helpString(title, argSpecs) - - if not filesOK and len(_fileList) > 0: - if len(_fileList) == 1: - return errMsg + 'unknown option \'' + str(_fileList[0]) + '\'.' - else: - return errMsg + 'unknown options ' + str(_fileList) + '.' - - - _missing = [] - for spec in argSpecs: - if spec[MANDATORY] and get(spec[NAME]) is None: - _missing.append(spec[NAME]) - if len(_missing) == 1: - return errMsg + 'required argument \'-' + \ - str(_missing[0]) + '\' is missing.' - elif len(_missing) > 1: - return errMsg + 'required arguments ' + \ - str(map(lambda s: '-' + s, _missing)) + ' are missing.' - - return None - -def fileList(): - return _fileList - -def _helpString(title, argSpecs): - max = 0 - for spec in argSpecs: - if spec[TYPE] is Bool: - width = len(spec[NAME]) + 1 - else: - width = len(spec[NAME]) + 4 + len(spec[TYPE]) - if width > max: - max = width - - rtn = title + ' command line arguments:' - format = '\n %-' + str(max) + 's %s' - for mandatory in (1, 0): - needHeader = 1 - for spec in argSpecs: - if mandatory and spec[MANDATORY] or not mandatory and not spec[MANDATORY]: - if needHeader: - if mandatory: - rtn = rtn + '\n Mandatory arguments:' - else: - rtn = rtn + '\n Optional arguments (defaults in parentheses):' - needHeader = 0 - if spec[TYPE] is Bool: - arg = '-%s' % spec[NAME] - else: - arg = '-%s <%s>' % (spec[NAME], spec[TYPE]) - if len(spec) >= SPEC_LENGTH: - if type(spec[DEFAULT]) == types.StringType: - definition = spec[HELP] + ' (' + spec[DEFAULT] + ')' - else: - definition = spec[HELP] + ' (' + str(spec[DEFAULT]) + ')' - else: - definition = spec[HELP] - rtn = rtn + format % (arg, definition) - - return rtn - -def exists(key): - return configDict.has_key(key) - -def get(key): - return configDict[key] - -def set(key, value): - global configDict - - configDict[key] = value - -configDict = {} diff --git a/Pmw/Pmw_1_2/demos/Balloon.py b/Pmw/Pmw_1_2/demos/Balloon.py deleted file mode 100644 index 71788f64..00000000 --- a/Pmw/Pmw_1_2/demos/Balloon.py +++ /dev/null @@ -1,185 +0,0 @@ -title = 'Pmw.Balloon demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create the Balloon. - self.balloon = Pmw.Balloon(parent) - - # Create some widgets and megawidgets with balloon help. - frame = Tkinter.Frame(parent) - frame.pack(padx = 10, pady = 5) - field = Pmw.EntryField(frame, - labelpos = 'nw', - label_text = 'Command:') - field.setentry('mycommand -name foo') - field.pack(side = 'left', padx = 10) - self.balloon.bind(field, 'Command to\nstart/stop', - 'Enter the shell command to control') - - start = Tkinter.Button(frame, text='Start') - start.pack(side='left', padx = 10) - self.balloon.bind(start, 'Start the command') - - stop = Tkinter.Button(frame, text='Stop') - stop.pack(side='left', padx = 10) - self.balloon.bind(stop, 'Stop the command') - - self.suicide = Tkinter.Button(frame, text='Kill me soon!', - command = self.killButton) - self.suicide.pack(side='left', padx = 10) - self.balloon.bind(self.suicide, 'Watch this button disappear!') - - scrolledCanvas = Pmw.ScrolledCanvas(parent, - canvas_width = 300, - canvas_height = 115, - ) - scrolledCanvas.pack() - canvas = scrolledCanvas.component('canvas') - self.canvas = canvas - - # Create some canvas items and individual help. - item = canvas.create_arc(5, 5, 35, 35, fill = 'red', extent = 315) - self.balloon.tagbind(canvas, item, 'This is help for\nan arc item') - item = canvas.create_bitmap(20, 150, bitmap = 'question') - self.balloon.tagbind(canvas, item, 'This is help for\na bitmap') - item = canvas.create_line(50, 60, 70, 80, 85, 20, width = 5) - self.balloon.tagbind(canvas, item, 'This is help for\na line item') - item = canvas.create_text(10, 90, text = 'Canvas items with balloons', - anchor = 'nw', font = field.cget('entry_font')) - self.balloon.tagbind(canvas, item, 'This is help for\na text item') - - # Create two canvas items which have the same tag and which use - # the same help. - canvas.create_rectangle(100, 10, 170, 50, fill = 'aliceblue', - tags = 'TAG1') - self.bluecircle = canvas.create_oval(110, 30, 160, 80, fill = 'blue', - tags = 'TAG1') - self.balloon.tagbind(canvas, 'TAG1', - 'This is help for the two blue items' + '\n' * 10 + - 'It is very, very big.', - 'This is help for the two blue items') - item = canvas.create_text(180, 10, text = 'Delete', - anchor = 'nw', font = field.cget('entry_font')) - self.balloon.tagbind(canvas, item, - 'After 2 seconds,\ndelete the blue circle') - canvas.tag_bind(item, '', self._canvasButtonpress) - scrolledCanvas.resizescrollregion() - - scrolledText = Pmw.ScrolledText(parent, - text_width = 32, - text_height = 4, - text_wrap = 'none', - ) - scrolledText.pack(pady = 5) - text = scrolledText.component('text') - self.text = text - - text.insert('end', - 'This is a text widget with ', '', - ' balloon', 'TAG1', - '\nhelp. Find the ', '', - ' text ', 'TAG1', - ' tagged with', '', - ' help.', 'TAG2', - '\n', '', - 'Remove tag 1.', 'TAG3', - '\nAnother line.\nAnd another', '', - ) - text.tag_configure('TAG1', borderwidth = 2, relief = 'sunken') - text.tag_configure('TAG3', borderwidth = 2, relief = 'raised') - - self.balloon.tagbind(text, 'TAG1', - 'There is one secret\nballoon help.\nCan you find it?') - self.balloon.tagbind(text, 'TAG2', - 'Well done!\nYou found it!') - self.balloon.tagbind(text, 'TAG3', - 'After 2 seconds\ndelete the tag') - text.tag_bind('TAG3', '', self._textButtonpress) - - frame = Tkinter.Frame(parent) - frame.pack(padx = 10) - self.toggleBalloonVar = Tkinter.IntVar() - self.toggleBalloonVar.set(1) - toggle = Tkinter.Checkbutton(frame, - variable = self.toggleBalloonVar, - text = 'Balloon help', command = self.toggle) - toggle.pack(side = 'left', padx = 10) - self.balloon.bind(toggle, 'Toggle balloon help\non and off') - - self.toggleStatusVar = Tkinter.IntVar() - self.toggleStatusVar.set(1) - toggle = Tkinter.Checkbutton(frame, - variable = self.toggleStatusVar, - text = 'Status help', command = self.toggle) - toggle.pack(side = 'left', padx = 10) - self.balloon.bind(toggle, - 'Toggle status help on and off, on and off' + '\n' * 10 + - 'It is very, very big, too.', - 'Toggle status help on and off') - - # Create and pack the MessageBar. - messageBar = Pmw.MessageBar(parent, - entry_width = 40, - entry_relief='groove', - labelpos = 'w', - label_text = 'Status:') - messageBar.pack(fill = 'x', expand = 1, padx = 10, pady = 5) - - # Configure the balloon to display its status messages in the - # message bar. - self.balloon.configure(statuscommand = messageBar.helpmessage) - - def toggle(self): - if self.toggleBalloonVar.get(): - if self.toggleStatusVar.get(): - self.balloon.configure(state = 'both') - else: - self.balloon.configure(state = 'balloon') - else: - if self.toggleStatusVar.get(): - self.balloon.configure(state = 'status') - else: - self.balloon.configure(state = 'none') - - def killButton(self): - # Test for old bug when destroying widgets 1) while the - # balloon was up and 2) during the initwait period. - print 'Destroying button in 2 seconds' - self.suicide.after(2000, self.suicide.destroy) - - def _canvasButtonpress(self, event): - print 'Destroying blue circle in 2 seconds' - self.canvas.after(2000, self.deleteBlueCircle) - - def deleteBlueCircle(self): - self.balloon.tagunbind(self.canvas, self.bluecircle) - self.canvas.delete(self.bluecircle) - - def _textButtonpress(self, event): - print 'Deleting the text tag in 2 seconds' - self.text.after(2000, self.deleteTextTag) - - def deleteTextTag(self): - self.balloon.tagunbind(self.text, 'TAG1') - self.text.tag_delete('TAG1') - - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root, 12, fontScheme = 'default') - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/BltGraph.py b/Pmw/Pmw_1_2/demos/BltGraph.py deleted file mode 100644 index a71c5c34..00000000 --- a/Pmw/Pmw_1_2/demos/BltGraph.py +++ /dev/null @@ -1,241 +0,0 @@ -title = 'Blt Graph demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import string -import Tkinter -import Pmw - -# Simple random number generator. -rand = 12345 -def random(): - global rand - rand = (rand * 125) % 2796203 - return rand - -class GraphDemo(Pmw.MegaToplevel): - - def __init__(self, parent=None, **kw): - - # Define the megawidget options. - optiondefs = ( - ('size', 10, Pmw.INITOPT), - ) - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.MegaToplevel.__init__(self, parent) - - # Create the graph. - self.createWidgets() - - # Check keywords and initialise options. - self.initialiseoptions() - - def createWidgets(self): - # Create vectors for use as x and y data points. - self._numElements = 7 - self._vectorSize = self['size'] - self._vector_x = Pmw.Blt.Vector() - self._vector_y = [] - for y in range(self._numElements): - self._vector_y.append(Pmw.Blt.Vector()) - for index in range(self._vectorSize): - self._vector_x.append(index) - for y in range(self._numElements): - self._vector_y[y].append(random() % 100) - - interior = self.interior() - - controlFrame = Tkinter.Frame(interior) - controlFrame.pack(side = 'bottom', fill = 'x', expand = 0) - - # Create an option menu for the kind of elements to create. - elementtype = Pmw.OptionMenu(controlFrame, - labelpos = 'nw', - label_text = 'Element type', - items = ['bars', 'lines', 'mixed', 'none'], - command = self._setelementtype, - menubutton_width = 8, - ) - elementtype.pack(side = 'left') - - # Create an option menu for the barmode option. - barmode = Pmw.OptionMenu(controlFrame, - labelpos = 'nw', - label_text = 'Bar mode', - items = ['normal', 'stacked', 'aligned', 'overlap'], - command = self._setbarmode, - menubutton_width = 8, - ) - barmode.pack(side = 'left') - - # Create an option menu for the smooth option. - self.smooth = Pmw.OptionMenu(controlFrame, - labelpos = 'nw', - label_text = 'Smooth', - items = ['linear', 'step', 'natural', 'quadratic'], - command = self._setsmooth, - menubutton_width = 9, - ) - self.smooth.pack(side = 'left') - - # Create an option menu to reverse sort the elements. - sortelements = Pmw.OptionMenu(controlFrame, - labelpos = 'nw', - label_text = 'Order', - items = ['normal', 'reverse'], - command = self._setsortelements, - menubutton_width = 8, - ) - sortelements.pack(side = 'left') - - # Create an option menu for the bufferelements option. - bufferelements = Pmw.OptionMenu(controlFrame, - labelpos = 'nw', - label_text = 'Buffering', - items = ['buffered', 'unbuffered'], - command = self._setbufferelements, - menubutton_width = 10, - ) - bufferelements.pack(side = 'left') - - # Create a button to add a point to the vector. - addpoint = Tkinter.Button(controlFrame, text = 'Add point', - command = Pmw.busycallback(self._addpoint)) - addpoint.pack(side = 'left', fill = 'x', expand = 0) - - # Create a button to close the window - close = Tkinter.Button(controlFrame, text = 'Close', - command = Pmw.busycallback(self.destroy)) - close.pack(side = 'left', fill = 'x', expand = 0) - - # Create the graph and its elements. - self._graph = Pmw.Blt.Graph(interior) - self._graph.pack(expand = 1, fill = 'both') - self._graph.yaxis_configure(command=self.yaxisCommand) - elementtype.invoke('mixed') - bufferelements.invoke('buffered') - - def yaxisCommand(self, graph, value): - try: - num = string.atoi(value) - return '%d %3d' % (num * 3, num) - except ValueError: - num = string.atof(value) - return '%g %3g' % (num * 3, num) - - def _setelementtype(self, type): - elements = self._graph.element_names() - apply(self._graph.element_delete, elements) - - if type == 'none': - return - - colorList = Pmw.Color.spectrum(self._numElements) - for elem in range(self._numElements): - if elem == 0: - hue = None - else: - hue = (elem + 1.0) / self._numElements * 6.28318 - foreground = colorList[elem] - background = Pmw.Color.changebrightness(self, foreground, 0.8) - if type == 'mixed': - if elem < self._numElements / 2: - bar = 0 - else: - bar = 1 - elif type == 'bars': - bar = 1 - else: - bar = 0 - if bar: - self._graph.bar_create( - 'var' + str(elem), - xdata=self._vector_x, - ydata=self._vector_y[elem], - foreground = foreground, - background = background) - else: - self._graph.line_create( - 'var' + str(elem), - linewidth = 4, - xdata=self._vector_x, - ydata=self._vector_y[elem], - smooth = self.smooth.getcurselection(), - color = foreground) - - def _setbarmode(self, tag): - self._graph.configure(barmode = tag) - - def _setsmooth(self, tag): - for element in self._graph.element_show(): - if self._graph.element_type(element) == 'line': - self._graph.element_configure(element, smooth = tag) - - def _setbufferelements(self, tag): - self._graph.configure(bufferelements = (tag == 'buffered')) - - def _setsortelements(self, tag): - element_list = list(self._graph.element_show()) - if len(element_list) > 1: - if (tag == 'normal') == (element_list[-1] != 'var0'): - element_list.reverse() - self._graph.element_show(element_list) - - def _addpoint(self): - self._vector_x.append(self._vectorSize) - for y in range(self._numElements): - self._vector_y[y].append(random() % 100) - self._vectorSize = self._vectorSize + 1 - -class Demo: - def __init__(self, parent): - if not Pmw.Blt.haveblt(parent): - message = 'Sorry\nThe BLT package has not been\n' + \ - 'installed on this system.\n' + \ - 'Please install it and try again.' - w = Tkinter.Label(parent, text = message) - w.pack(padx = 8, pady = 8) - return - - message = 'This is a simple demonstration of the\n' + \ - 'BLT graph widget.\n' + \ - 'Select the number of points to display and\n' + \ - 'click on the button to display the graph.' - w = Tkinter.Label(parent, text = message) - w.pack(padx = 8, pady = 8) - - # Create combobox to select number of points to display. - self.combo = Pmw.ComboBox(parent, - scrolledlist_items = ('10', '25', '50', '100', '300'), - entryfield_value = '10') - self.combo.pack(padx = 8, pady = 8) - - # Create button to start blt graph. - start = Tkinter.Button(parent, - text = 'Show BLT graph', - command = Pmw.busycallback(self.showGraphDemo)) - start.pack(padx = 8, pady = 8) - - self.parent = parent - - def showGraphDemo(self): - size = string.atoi(self.combo.get()) - demo = GraphDemo(self.parent, size = size) - demo.focus() - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/BltTabset.py b/Pmw/Pmw_1_2/demos/BltTabset.py deleted file mode 100644 index b6cf5894..00000000 --- a/Pmw/Pmw_1_2/demos/BltTabset.py +++ /dev/null @@ -1,101 +0,0 @@ -title = 'Blt Tabset demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - if not Pmw.Blt.haveblt(parent): - message = 'Sorry\nThe BLT package has not been\n' + \ - 'installed on this system.\n' + \ - 'Please install it and try again.' - w = Tkinter.Label(parent, text = message) - w.pack(padx = 8, pady = 8) - return - - self.tabset = Pmw.Blt.Tabset(parent, - borderwidth = 0, - highlightthickness = 0, - selectpad = 0, - tiers = 2, - ) - background = self.tabset.cget('background') - self.tabset.configure(selectbackground = background, - tabbackground = background, activebackground = background) - - configurePanel = Tkinter.Frame(self.tabset) - sideMenu = Pmw.OptionMenu (configurePanel, - labelpos = 'w', - label_text = 'Side:', - items = ('top', 'bottom', 'left', 'right'), - menubutton_width = 10, - command = self.changeSide, - ) - sideMenu.pack(anchor = 'w', padx = 10, pady = 10) - - rotateMenu = Pmw.ComboBox(configurePanel, - labelpos = 'w', - label_text = 'Text rotation:', - entryfield_validate = 'integer', - entry_width = 8, - selectioncommand = self.rotateText, - scrolledlist_items = (0, 45, 90, 135, 180, 225, 270, 315), - ) - rotateMenu.pack(side = 'left', padx = 10, pady = 10) - - rotateMenu.selectitem(0) - self.rotateText('0') - - self.appearancePanel = Tkinter.Label(self.tabset) - helpersPanel = Tkinter.Button(self.tabset, - text = 'This is a lot\nof help!') - - self.tabset.insert('end', - 'Appearance', 'Configure', 'Helpers', 'Images') - - self.tabset.tab_configure('Appearance', - command = self.appearance_cb, fill = 'both') - self.tabset.tab_configure('Configure', window = configurePanel) - self.tabset.tab_configure('Images', - command = self.images_cb, fill = 'both') - self.tabset.tab_configure('Helpers', - window = helpersPanel, padx = 100, pady = 150) - - self.tabset.invoke(1) - self.tabset.pack(fill = 'both', expand = 1, padx = 5, pady = 5) - self.tabset.focus() - - def appearance_cb(self): - self.appearancePanel.configure( - text = 'Don\'t judge a book\nby it\'s cover.') - self.tabset.tab_configure('Appearance', window = self.appearancePanel) - - def images_cb(self): - self.appearancePanel.configure(text = 'Beauty is only\nskin deep.') - self.tabset.tab_configure('Images', window = self.appearancePanel) - - def changeSide(self, side): - self.tabset.configure(side = side) - - def rotateText(self, angle): - if Pmw.integervalidator(angle) == Pmw.OK: - self.tabset.configure(rotate = angle) - else: - self.tabset.bell() - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/ButtonBox.py b/Pmw/Pmw_1_2/demos/ButtonBox.py deleted file mode 100644 index 984ff36f..00000000 --- a/Pmw/Pmw_1_2/demos/ButtonBox.py +++ /dev/null @@ -1,56 +0,0 @@ -title = 'Pmw.ButtonBox demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create and pack the ButtonBox. - self.buttonBox = Pmw.ButtonBox(parent, - labelpos = 'nw', - label_text = 'ButtonBox:', - frame_borderwidth = 2, - frame_relief = 'groove') - self.buttonBox.pack(fill = 'both', expand = 1, padx = 10, pady = 10) - - # Add some buttons to the ButtonBox. - self.buttonBox.add('OK', command = self.ok) - self.buttonBox.add('Apply', command = self.apply) - self.buttonBox.add('Cancel', command = self.cancel) - - # Set the default button (the one executed when is hit). - self.buttonBox.setdefault('OK') - parent.bind('', self._processReturnKey) - parent.focus_set() - - # Make all the buttons the same width. - self.buttonBox.alignbuttons() - - def _processReturnKey(self, event): - self.buttonBox.invoke() - - def ok(self): - print 'You clicked on OK' - - def apply(self): - print 'You clicked on Apply' - - def cancel(self): - print 'You clicked on Cancel' - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/Colors.py b/Pmw/Pmw_1_2/demos/Colors.py deleted file mode 100644 index b6e0a5be..00000000 --- a/Pmw/Pmw_1_2/demos/Colors.py +++ /dev/null @@ -1,50 +0,0 @@ -title = 'Colorscheme demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - frame = Tkinter.Frame(parent) - frame.pack(fill = 'both', expand = 1) - - defaultPalette = Pmw.Color.getdefaultpalette(parent) - - colors = ('red', 'green', 'blue') - items = ('Testing', 'More testing', 'a test', 'foo', 'blah') - for count in range(len(colors)): - color = colors[count] - normalcolor = Pmw.Color.changebrightness(parent, color, 0.85) - Pmw.Color.setscheme(parent, normalcolor) - combo = Pmw.ComboBox(frame, - scrolledlist_items = items, - entryfield_value = items[0]) - combo.grid(sticky='nsew', row = count, column = 0) - - normalcolor = Pmw.Color.changebrightness(parent, color, 0.35) - Pmw.Color.setscheme(parent, normalcolor, foreground = 'white') - combo = Pmw.ComboBox(frame, - scrolledlist_items = items, - entryfield_value = items[0]) - combo.grid(sticky='nsew', row = count, column = 1) - - apply(Pmw.Color.setscheme, (parent,), defaultPalette) - #normalcolor = Pmw.Color.changebrightness(parent, 'red', 0.85) - #Pmw.Color.setscheme(parent, normalcolor) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/ComboBox.py b/Pmw/Pmw_1_2/demos/ComboBox.py deleted file mode 100644 index 461fc809..00000000 --- a/Pmw/Pmw_1_2/demos/ComboBox.py +++ /dev/null @@ -1,76 +0,0 @@ -title = 'Pmw.ComboBox demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - parent.configure(background = 'white') - - # Create and pack the widget to be configured. - self.target = Tkinter.Label(parent, - relief = 'sunken', - padx = 20, - pady = 20, - ) - self.target.pack(fill = 'x', padx = 8, pady = 8) - - # Create and pack the simple ComboBox. - words = ('Monti', 'Python', 'ik', 'den', 'Holie', 'Grailen', '(Bok)') - simple = Pmw.ComboBox(parent, - label_text = 'Simple ComboBox:', - labelpos = 'nw', - selectioncommand = self.changeText, - scrolledlist_items = words, - dropdown = 0, - ) - simple.pack(side = 'left', fill = 'both', - expand = 1, padx = 8, pady = 8) - - # Display the first text. - first = words[0] - simple.selectitem(first) - self.changeText(first) - - # Create and pack the dropdown ComboBox. - colours = ('cornsilk1', 'snow1', 'seashell1', 'antiquewhite1', - 'bisque1', 'peachpuff1', 'navajowhite1', 'lemonchiffon1', - 'ivory1', 'honeydew1', 'lavenderblush1', 'mistyrose1') - dropdown = Pmw.ComboBox(parent, - label_text = 'Dropdown ComboBox:', - labelpos = 'nw', - selectioncommand = self.changeColour, - scrolledlist_items = colours, - ) - dropdown.pack(side = 'left', anchor = 'n', - fill = 'x', expand = 1, padx = 8, pady = 8) - - # Display the first colour. - first = colours[0] - dropdown.selectitem(first) - self.changeColour(first) - - def changeColour(self, colour): - print 'Colour: ' + colour - self.target.configure(background = colour) - - def changeText(self, text): - print 'Text: ' + text - self.target.configure(text = text) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/ComboBoxDialog.py b/Pmw/Pmw_1_2/demos/ComboBoxDialog.py deleted file mode 100644 index c0e3deda..00000000 --- a/Pmw/Pmw_1_2/demos/ComboBoxDialog.py +++ /dev/null @@ -1,44 +0,0 @@ -title = 'Pmw.ComboBoxDialog demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create the dialog. - self.dialog = Pmw.ComboBoxDialog(parent, - title = 'My ComboBoxDialog', - buttons = ('OK', 'Cancel'), - defaultbutton = 'OK', - combobox_labelpos = 'n', - label_text = 'What do you think of Pmw?', - scrolledlist_items = ('Cool man', 'Cool', 'Good', 'Bad', 'Gross')) - self.dialog.withdraw() - - # Create button to launch the dialog. - w = Tkinter.Button(parent, - text = 'Show combo box dialog', - command = self.doit) - w.pack(padx = 8, pady = 8) - - def doit(self): - result = self.dialog.activate() - print 'You clicked on', result, self.dialog.get() - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() - diff --git a/Pmw/Pmw_1_2/demos/ConfigClass.py b/Pmw/Pmw_1_2/demos/ConfigClass.py deleted file mode 100644 index b4d2b7fd..00000000 --- a/Pmw/Pmw_1_2/demos/ConfigClass.py +++ /dev/null @@ -1,76 +0,0 @@ -title = 'Component python class configuration demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class MyButton(Tkinter.Button): - # This is just an ordinary button with special colors. - - def __init__(self, master=None, cnf={}, **kw): - self.__toggle = 0 - kw['background'] = 'green' - kw['activebackground'] = 'red' - apply(Tkinter.Button.__init__, (self, master, cnf), kw) - -class Demo: - def __init__(self, parent): - - # Create a title label: - label = Tkinter.Label(parent, - text = 'EntryFields with label components of specified type:') - label.pack(fill='x', expand=1, padx=10, pady=5) - - # Create and pack some EntryFields. - entries = [] - entry = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Label' - ) - entry.pack(fill='x', expand=1, padx=10, pady=5) - entries.append(entry) - - entry = Pmw.EntryField(parent, - labelpos = 'w', - label_pyclass = Tkinter.Button, - label_text = 'Button' - ) - entry.pack(fill='x', expand=1, padx=10, pady=5) - entries.append(entry) - - entry = Pmw.EntryField(parent, - labelpos = 'w', - label_pyclass = MyButton, - label_text = 'Special button' - ) - entry.pack(fill='x', expand=1, padx=10, pady=5) - entries.append(entry) - - Pmw.alignlabels(entries) - - # Create and pack a ButtonBox. - buttonBox = Pmw.ButtonBox(parent, - labelpos = 'nw', - label_text = 'ButtonBox:') - buttonBox.pack(fill = 'both', expand = 1, padx=10, pady=5) - - # Add some buttons to the ButtonBox. - buttonBox.add('with a') - buttonBox.add('special', pyclass = MyButton) - buttonBox.add('button') - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/Counter.py b/Pmw/Pmw_1_2/demos/Counter.py deleted file mode 100644 index 856b4dfa..00000000 --- a/Pmw/Pmw_1_2/demos/Counter.py +++ /dev/null @@ -1,121 +0,0 @@ -title = 'Pmw.Counter demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import string -import time -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Need to use long ints here because on the Macintosh the maximum size - # of an integer is smaller than the value returned by time.time(). - now = (long(time.time()) / 300) * 300 - - # Create the Counters. - self._date = Pmw.Counter(parent, - labelpos = 'w', - label_text = 'Date (4-digit year):', - entryfield_value = - time.strftime('%d/%m/%Y', time.localtime(now)), - entryfield_command = self.execute, - entryfield_validate = {'validator' : 'date', 'format' : 'dmy'}, - datatype = {'counter' : 'date', 'format' : 'dmy', 'yyyy' : 1}) - - self._isodate = Pmw.Counter(parent, - labelpos = 'w', - label_text = 'ISO-Date (4-digit year):', - entryfield_value = - time.strftime('%Y-%m-%d', time.localtime(now)), - entryfield_command = self.execute, - entryfield_validate = {'validator' : 'date', 'format' : 'ymd', - 'separator' : '-' }, - datatype = {'counter' : 'date', 'format' : 'ymd', 'yyyy' : 1, - 'separator' : '-' }) - - self._time = Pmw.Counter(parent, - labelpos = 'w', - label_text = 'Time:', - entryfield_value = - time.strftime('%H:%M:%S', time.localtime(now)), - entryfield_validate = {'validator' : 'time', - 'min' : '00:00:00', 'max' : '23:59:59', - 'minstrict' : 0, 'maxstrict' : 0}, - datatype = {'counter' : 'time', 'time24' : 1}, - increment=5*60) - self._real = Pmw.Counter(parent, - labelpos = 'w', - label_text = 'Real (with comma)\nand extra\nlabel lines:', - label_justify = 'left', - entryfield_value = '1,5', - datatype = {'counter' : 'real', 'separator' : ','}, - entryfield_validate = {'validator' : 'real', - 'min' : '-2,0', 'max' : '5,0', - 'separator' : ','}, - increment = 0.1) - self._custom = Pmw.Counter(parent, - labelpos = 'w', - label_text = 'Custom:', - entryfield_value = specialword[:4], - datatype = _custom_counter, - entryfield_validate = _custom_validate) - self._int = Pmw.Counter(parent, - labelpos = 'w', - label_text = 'Vertical integer:', - orient = 'vertical', - entry_width = 2, - entryfield_value = 50, - entryfield_validate = {'validator' : 'integer', - 'min' : 0, 'max' : 99} - ) - - counters = (self._date, self._isodate, self._time, self._real, - self._custom) - Pmw.alignlabels(counters) - - # Pack them all. - for counter in counters: - counter.pack(fill='both', expand=1, padx=10, pady=5) - self._int.pack(padx=10, pady=5) - - def execute(self): - print 'Return pressed, value is', self._date.get() - -specialword = 'Monti Python ik den Holie Grailen (Bok)' - -def _custom_validate(text): - if string.find(specialword, text) == 0: - return 1 - else: - return -1 - -def _custom_counter(text, factor, increment): - # increment is ignored here. - if string.find(specialword, text) == 0: - length = len(text) - if factor == 1: - if length >= len(specialword): - raise ValueError, 'maximum length reached' - return specialword[:length + 1] - else: - if length == 0: - raise ValueError, 'empty string' - return specialword[:length - 1] - else: - raise ValueError, 'bad string ' + text - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/CounterDialog.py b/Pmw/Pmw_1_2/demos/CounterDialog.py deleted file mode 100644 index 808c3bf3..00000000 --- a/Pmw/Pmw_1_2/demos/CounterDialog.py +++ /dev/null @@ -1,60 +0,0 @@ -title = 'Pmw.CounterDialog demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import string -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create the dialog to prompt for the number of times to ring the bell. - self.dialog = Pmw.CounterDialog(parent, - label_text = 'Enter the number of times to\n' + \ - 'sound the bell (1 to 5)\n', - counter_labelpos = 'n', - entryfield_value = 2, - counter_datatype = 'numeric', - entryfield_validate = - {'validator' : 'numeric', 'min' : 1, 'max' : 5}, - buttons = ('OK', 'Cancel'), - defaultbutton = 'OK', - title = 'Bell ringing', - command = self.execute) - self.dialog.withdraw() - - # Create button to launch the dialog. - w = Tkinter.Button(parent, text = 'Show counter dialog', - command = self.dialog.activate) - w.pack(padx = 8, pady = 8) - - def execute(self, result): - if result is None or result == 'Cancel': - print 'Bell ringing cancelled' - self.dialog.deactivate() - else: - count = self.dialog.get() - if not self.dialog.valid(): - print 'Invalid entry: "' + count + '"' - else: - print 'Ringing the bell ' + count + ' times' - for num in range(string.atoi(count)): - if num != 0: - self.dialog.after(200) - self.dialog.bell() - self.dialog.deactivate() - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/DemoVersion.py b/Pmw/Pmw_1_2/demos/DemoVersion.py deleted file mode 100644 index 477a9f95..00000000 --- a/Pmw/Pmw_1_2/demos/DemoVersion.py +++ /dev/null @@ -1,36 +0,0 @@ -# Set the version of Pmw to use for the demonstrations based on the -# directory name. - -import imp -import os -import string - -def expandLinks(path): - if not os.path.isabs(path): - path = os.path.join(os.getcwd(), path) - while 1: - if not os.path.islink(path): - break - dir = os.path.dirname(path) - path = os.path.join(dir, os.readlink(path)) - - return path - -def setPmwVersion(): - file = imp.find_module(__name__)[1] - file = os.path.normpath(file) - file = expandLinks(file) - - dir = os.path.dirname(file) - dir = expandLinks(dir) - dir = os.path.dirname(dir) - dir = expandLinks(dir) - dir = os.path.basename(dir) - - version = string.replace(dir[4:], '_', '.') - import Pmw - if version in Pmw.installedversions(): - Pmw.setversion(version) - else: - print 'No such Pmw version', `version` + '.', - print 'Using default version', `Pmw.version()` diff --git a/Pmw/Pmw_1_2/demos/Dialog.py b/Pmw/Pmw_1_2/demos/Dialog.py deleted file mode 100644 index 3be3fdb0..00000000 --- a/Pmw/Pmw_1_2/demos/Dialog.py +++ /dev/null @@ -1,89 +0,0 @@ -title = 'Pmw.Dialog demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create two buttons to launch the dialog. - w = Tkinter.Button(parent, text = 'Show application modal dialog', - command = self.showAppModal) - w.pack(padx = 8, pady = 8) - - w = Tkinter.Button(parent, text = 'Show global modal dialog', - command = self.showGlobalModal) - w.pack(padx = 8, pady = 8) - - w = Tkinter.Button(parent, text = 'Show dialog with "no grab"', - command = self.showDialogNoGrab) - w.pack(padx = 8, pady = 8) - - w = Tkinter.Button(parent, text = - 'Show toplevel window which\n' + - 'will not get a busy cursor', - command = self.showExcludedWindow) - w.pack(padx = 8, pady = 8) - - # Create the dialog. - self.dialog = Pmw.Dialog(parent, - buttons = ('OK', 'Apply', 'Cancel', 'Help'), - defaultbutton = 'OK', - title = 'My dialog', - command = self.execute) - self.dialog.withdraw() - - # Add some contents to the dialog. - w = Tkinter.Label(self.dialog.interior(), - text = 'Pmw Dialog\n(put your widgets here)', - background = 'black', - foreground = 'white', - pady = 20) - w.pack(expand = 1, fill = 'both', padx = 4, pady = 4) - - # Create the window excluded from showbusycursor. - self.excluded = Pmw.MessageDialog(parent, - title = 'I still work', - message_text = - 'This window will not get\n' + - 'a busy cursor when modal dialogs\n' + - 'are activated. In addition,\n' + - 'you can still interact with\n' + - 'this window when a "no grab"\n' + - 'modal dialog is displayed.') - self.excluded.withdraw() - Pmw.setbusycursorattributes(self.excluded.component('hull'), - exclude = 1) - - def showAppModal(self): - self.dialog.activate(geometry = 'centerscreenalways') - - def showGlobalModal(self): - self.dialog.activate(globalMode = 1) - - def showDialogNoGrab(self): - self.dialog.activate(globalMode = 'nograb') - - def showExcludedWindow(self): - self.excluded.show() - - def execute(self, result): - print 'You clicked on', result - if result not in ('Apply', 'Help'): - self.dialog.deactivate(result) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/EntryField.py b/Pmw/Pmw_1_2/demos/EntryField.py deleted file mode 100644 index 69163816..00000000 --- a/Pmw/Pmw_1_2/demos/EntryField.py +++ /dev/null @@ -1,98 +0,0 @@ -title = 'Pmw.EntryField demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import time -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create and pack the EntryFields. - self._any = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Any:', - validate = None, - command = self.execute) - self._real = Pmw.EntryField(parent, - labelpos = 'w', - value = '55.5', - label_text = 'Real (10.0 to 99.0):', - validate = {'validator' : 'real', - 'min' : 10, 'max' : 99, 'minstrict' : 0}, - modifiedcommand = self.changed) - self._odd = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Odd length:', - validate = self.custom_validate, - value = 'ABC') - self._date = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Date (in 2000):', - value = '2000/2/29', - validate = {'validator' : 'date', - 'min' : '2000/1/1', 'max' : '2000/12/31', - 'minstrict' : 0, 'maxstrict' : 0, - 'format' : 'ymd'}, - ) - now = time.localtime(time.time()) - self._date2 = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Date (d.m.y):', - value = '%d.%d.%d' % (now[2], now[1], now[0]), - validate = {'validator' : 'date', - 'format' : 'dmy', 'separator' : '.'}, - ) - self._time = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Time (24hr clock):', - value = '8:00:00', - validate = {'validator' : 'time', - 'min' : '00:00:00', 'max' : '23:59:59', - 'minstrict' : 0, 'maxstrict' : 0}, - ) - self._comma = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Real (with comma):', - value = '123,456', - validate = {'validator' : 'real', 'separator' : ','}, - ) - - entries = (self._any, self._real, self._odd, self._date, self._date2, - self._time, self._comma) - - for entry in entries: - entry.pack(fill='x', expand=1, padx=10, pady=5) - Pmw.alignlabels(entries) - - self._any.component('entry').focus_set() - - def changed(self): - print 'Text changed, value is', self._real.getvalue() - - def execute(self): - print 'Return pressed, value is', self._any.getvalue() - - # This implements a custom validation routine. It simply checks - # if the string is of odd length. - def custom_validate(self, text): - print 'text:', text - if len(text) % 2 == 0: - return -1 - else: - return 1 - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/ErrorHandling.py b/Pmw/Pmw_1_2/demos/ErrorHandling.py deleted file mode 100644 index 41fd10fc..00000000 --- a/Pmw/Pmw_1_2/demos/ErrorHandling.py +++ /dev/null @@ -1,42 +0,0 @@ -title = 'Pmw error handling demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import string -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create two buttons to generate errors. - w = Tkinter.Button(parent, text = 'Click here to generate\n' + - 'an error in a command callback.', command = self.execute) - w.pack(padx = 8, pady = 8) - - w = Tkinter.Button(parent, text = 'Click here to generate\n' + - 'an error in a callback called\nfrom an event binding.') - w.pack(padx = 8, pady = 8) - w.bind('', self.execute) - w.bind('', self.execute) - - def execute(self, event = None): - self._error() - - def _error(self): - # Divide by zero - 1/0 - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/ExampleDemo.py b/Pmw/Pmw_1_2/demos/ExampleDemo.py deleted file mode 100644 index f7ec1e71..00000000 --- a/Pmw/Pmw_1_2/demos/ExampleDemo.py +++ /dev/null @@ -1,33 +0,0 @@ -title = 'Pmw.EXAMPLE demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - - # Create and pack the EXAMPLEs. - self.widget1 = Pmw.Counter(parent) - self.widget1.setentry('1') - self.widget1.pack() - - self.widget2 = Pmw.Counter(parent, increment = 10) - self.widget2.setentry('100') - self.widget2.pack() - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/Grid.py b/Pmw/Pmw_1_2/demos/Grid.py deleted file mode 100644 index 051863e5..00000000 --- a/Pmw/Pmw_1_2/demos/Grid.py +++ /dev/null @@ -1,44 +0,0 @@ -title = 'Grid geometry manager demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - frame = Tkinter.Frame(parent) - frame.pack(fill = 'both', expand = 1) - - button = {} - for num in range(0, 10): - button[num] = Tkinter.Button(frame, text = 'Button ' + str(num)) - - button[0].grid(column=0, row=0, rowspan=2, sticky='nsew') - button[1].grid(column=1, row=0, columnspan=3, sticky='nsew') - button[2].grid(column=1, row=1, rowspan=2, sticky='nsew') - button[3].grid(column=2, row=1) - button[4].grid(column=3, row=1) - button[5].grid(column=0, row=2) - button[6].grid(column=0, row=3, columnspan=2, sticky='nsew') - button[7].grid(column=2, row=2, columnspan=2, rowspan=2, sticky='nsew') - button[8].grid(column=0, row=4) - button[9].grid(column=3, row=4, sticky='e') - - frame.grid_rowconfigure(3, weight=1) - frame.grid_columnconfigure(3, weight=1) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/Group.py b/Pmw/Pmw_1_2/demos/Group.py deleted file mode 100644 index b1c4ed5c..00000000 --- a/Pmw/Pmw_1_2/demos/Group.py +++ /dev/null @@ -1,93 +0,0 @@ -title = 'Pmw.Group demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - - # Create and pack the Groups. - w = Pmw.Group(parent, tag_text='label') - w.pack(fill = 'both', expand = 1, padx = 6, pady = 6) - cw = Tkinter.Label(w.interior(), - text = 'A group with the\ndefault Label tag') - cw.pack(padx = 2, pady = 2, expand='yes', fill='both') - - w = Pmw.Group(parent, tag_pyclass = None) - w.pack(fill = 'both', expand = 1, padx = 6, pady = 6) - cw = Tkinter.Label(w.interior(), text = 'A group\nwithout a tag') - cw.pack(padx = 2, pady = 2, expand='yes', fill='both') - - radiogroups = [] - self.var = Tkinter.IntVar() - self.var.set(0) - radioframe = Tkinter.Frame(parent) - w = Pmw.Group(radioframe, - tag_pyclass = Tkinter.Radiobutton, - tag_text='radiobutton 1', - tag_value = 0, - tag_variable = self.var) - w.pack(fill = 'both', expand = 1, side='left') - cw = Tkinter.Frame(w.interior(),width=200,height=20) - cw.pack(padx = 2, pady = 2, expand='yes', fill='both') - radiogroups.append(w) - - w = Pmw.Group(radioframe, - tag_pyclass = Tkinter.Radiobutton, - tag_text='radiobutton 2', - tag_font = Pmw.logicalfont('Helvetica', 4), - tag_value = 1, - tag_variable = self.var) - w.pack(fill = 'both', expand = 1, side='left') - cw = Tkinter.Frame(w.interior(),width=200,height=20) - cw.pack(padx = 2, pady = 2, expand='yes', fill='both') - radiogroups.append(w) - radioframe.pack(padx = 6, pady = 6, expand='yes', fill='both') - Pmw.aligngrouptags(radiogroups) - - w = Pmw.Group(parent, - tag_pyclass = Tkinter.Checkbutton, - tag_text='checkbutton', - tag_foreground='blue') - w.pack(fill = 'both', expand = 1, padx = 6, pady = 6) - cw = Tkinter.Frame(w.interior(),width=150,height=20) - cw.pack(padx = 2, pady = 2, expand='yes', fill='both') - - w = Pmw.Group(parent, - tag_pyclass = Tkinter.Button, - tag_text='Tkinter.Button') - w.configure(tag_command = w.toggle) - w.pack(fill = 'both', expand = 1, padx = 6, pady = 6) - cw = Tkinter.Label(w.interior(), - background = 'aliceblue', - text = 'A group with\na Button tag!?' - ) - cw.pack(padx = 2, pady = 2, expand='yes', fill='both') - - w = Pmw.Group(parent, - tag_pyclass = Tkinter.Button, - tag_text='Show/Hide') - w.configure(tag_command = w.toggle) - w.pack(fill = 'both', expand = 1, padx = 6, pady = 6) - cw = Tkinter.Label(w.interior(), - background = 'aliceblue', - text = 'Now you see me.\nNow you don\'t.' - ) - cw.pack(padx = 2, pady = 2, expand='yes', fill='both') - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/HistoryText.py b/Pmw/Pmw_1_2/demos/HistoryText.py deleted file mode 100644 index 5a7b2eb4..00000000 --- a/Pmw/Pmw_1_2/demos/HistoryText.py +++ /dev/null @@ -1,102 +0,0 @@ -title = 'Pmw.HistoryText demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create and pack the PanedWidget to hold the query and result - # windows. - # !! panedwidget should automatically size to requested size - panedWidget = Pmw.PanedWidget(parent, - orient = 'vertical', - hull_height = 400, - hull_width = 550) - panedWidget.add('query', min = 0.05, size = 0.2) - panedWidget.add('buttons', min = 0.1, max = 0.1) - panedWidget.add('results', min = 0.05) - panedWidget.pack(fill = 'both', expand = 1) - - # Create and pack the HistoryText. - self.historyText = Pmw.HistoryText(panedWidget.pane('query'), - text_wrap = 'none', - text_width = 60, - text_height = 10, - historycommand = self.statechange, - ) - self.historyText.pack(fill = 'both', expand = 1) - self.historyText.component('text').focus() - - buttonList = ( - [20, None], - ['Clear', self.clear], - ['Undo', self.historyText.undo], - ['Redo', self.historyText.redo], - [20, None], - ['Prev', self.historyText.prev], - ['Next', self.historyText.next], - [30, None], - ['Execute', Pmw.busycallback(self.executeQuery)], - ) - self.buttonDict = {} - - buttonFrame = panedWidget.pane('buttons') - for text, cmd in buttonList: - if type(text) == type(69): - frame = Tkinter.Frame(buttonFrame, width = text) - frame.pack(side = 'left') - else: - button = Tkinter.Button(buttonFrame, text = text, command = cmd) - button.pack(side = 'left') - self.buttonDict[text] = button - - for text in ('Prev', 'Next'): - self.buttonDict[text].configure(state = 'disabled') - - self.results = Pmw.ScrolledText(panedWidget.pane('results'), text_wrap = 'none') - self.results.pack(fill = 'both', expand = 1) - - def statechange(self, prevstate, nextstate): - self.buttonDict['Prev'].configure(state = prevstate) - self.buttonDict['Next'].configure(state = nextstate) - - def clear(self): - self.historyText.delete('1.0', 'end') - - def addnewlines(self, text): - if len(text) == 1: - text = text + '\n' - if text[-1] != '\n': - text = text + '\n' - if text[-2] != '\n': - text = text + '\n' - return text - - def executeQuery(self): - sql = self.historyText.get() - self.results.insert('end', 'Query:\n' + self.addnewlines(sql)) - self.results.see('end') - self.results.update_idletasks() - self.historyText.addhistory() - results = 'Results:\nfoo' - if len(results) > 0: - self.results.insert('end', self.addnewlines(results)) - self.results.see('end') - - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/LabeledWidget.py b/Pmw/Pmw_1_2/demos/LabeledWidget.py deleted file mode 100644 index 8a98c59e..00000000 --- a/Pmw/Pmw_1_2/demos/LabeledWidget.py +++ /dev/null @@ -1,46 +0,0 @@ -title = 'Pmw.LabeledWidget demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - - # Create a frame to put the LabeledWidgets into - frame = Tkinter.Frame(parent, background = 'grey90') - frame.pack(fill = 'both', expand = 1) - - # Create and pack the LabeledWidgets. - column = 0 - row = 0 - for pos in ('n', 'nw', 'wn', 'w'): - lw = Pmw.LabeledWidget(frame, - labelpos = pos, - label_text = pos + ' label') - lw.component('hull').configure(relief='sunken', borderwidth=2) - lw.grid(column=column, row=row, padx=10, pady=10) - cw = Tkinter.Button(lw.interior(), text='child\nsite') - cw.pack(padx=10, pady=10, expand='yes', fill='both') - - # Get ready for next grid position. - column = column + 1 - if column == 2: - column = 0 - row = row + 1 - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - widget = Demo(root) - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack() - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/LogicalFont.py b/Pmw/Pmw_1_2/demos/LogicalFont.py deleted file mode 100644 index 61854690..00000000 --- a/Pmw/Pmw_1_2/demos/LogicalFont.py +++ /dev/null @@ -1,84 +0,0 @@ -title = 'Pmw LogicalFont demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import string -import Tkinter -import Pmw - -class Demo: - - # The fonts to demonstrate. - fontList = ( - (('Times', 0), {}), - (('Helvetica', 0), {}), - (('Typewriter', 0), {}), - (('Fixed', 0), {}), - (('Courier', 0), {}), - (('Helvetica', 2), {'slant' : 'italic'}), - (('Helvetica', 0), {'size' : 18}), - (('Helvetica', 0), {'weight' : 'bold'}), - (('Helvetica', 12), {'weight' : 'bold', 'slant' : 'italic'}), - (('Typewriter', 0), {'size' : 8, 'weight' : 'bold'}), - (('Fixed', 0), {'size' : 8, 'weight' : 'bold'}), - (('Times', 0), {'size' : 24, 'weight' : 'bold', 'slant' : 'italic'}), - (('Typewriter', 0), {'width' : 'condensed'}), - (('Typewriter', -1), {'width' : 'condensed'}), - (('Fixed', 0), {'width' : 'condensed'}), - (('Fixed', -1), {'width' : 'condensed'}), - (('Helvetica', 0), {'weight' : 'bogus'}), - ) - - fontText = [] - - def __init__(self, parent): - - self.parent = parent - - # Create the text to display to the user to represent each font. - if Demo.fontText == []: - for args, dict in Demo.fontList: - text = args[0] - if args[1] != 0: - text = text + ' ' + str(args[1]) - for name, value in dict.items(): - text = text + ' ' + name + ': ' + str(value) - Demo.fontText.append(text) - - # Create a listbox to contain the font selections. - self.box = Pmw.ScrolledListBox(parent, listbox_selectmode='single', - listbox_width = 35, - listbox_height = 10, - items=Demo.fontText, - label_text='Font', labelpos='nw', - selectioncommand=self.selectionCommand) - self.box.pack(fill = 'both', expand = 1, padx = 10, pady = 10) - - # Create a label to display the selected font. - self.target = Tkinter.Label(parent, - text = 'The quick brown fox jumps\nover the lazy dog', - relief = 'sunken', padx = 10, pady = 10) - self.target.pack(fill = 'both', expand = 1, padx = 10, pady = 10) - - def selectionCommand(self): - sel = self.box.curselection() - if len(sel) > 0: - args, dict = Demo.fontList[string.atoi(sel[0])] - font = apply(Pmw.logicalfont, args, dict) - self.target.configure(font = font) - print font - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/MainMenuBar.py b/Pmw/Pmw_1_2/demos/MainMenuBar.py deleted file mode 100644 index 682d36ee..00000000 --- a/Pmw/Pmw_1_2/demos/MainMenuBar.py +++ /dev/null @@ -1,176 +0,0 @@ -title = 'Pmw.MainMenuBar demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create button to launch the toplevel with main menubar. - w = Tkinter.Button(parent, text = 'Show Pmw.MainMenuBar demo', - command = lambda parent=parent: MainMenuBarToplevel(parent)) - w.pack(padx = 8, pady = 8) - -class MainMenuBarToplevel: - def __init__(self, parent): - # Create the toplevel to contain the main menubar. - megaToplevel = Pmw.MegaToplevel(parent, title = title) - toplevel = megaToplevel.interior() - - # Create the Balloon for this toplevel. - self.balloon = Pmw.Balloon(toplevel) - - # Create and install the MenuBar. - menuBar = Pmw.MainMenuBar(toplevel, - balloon = self.balloon) - toplevel.configure(menu = menuBar) - self.menuBar = menuBar - - # Add some buttons to the MainMenuBar. - menuBar.addmenu('File', 'Close this window or exit') - menuBar.addmenuitem('File', 'command', 'Close this window', - command = PrintOne('Action: close'), - label = 'Close') - menuBar.addmenuitem('File', 'separator') - menuBar.addmenuitem('File', 'command', 'Exit the application', - command = PrintOne('Action: exit'), - label = 'Exit') - - menuBar.addmenu('Edit', 'Cut, copy or paste') - menuBar.addmenuitem('Edit', 'command', 'Delete the current selection', - command = PrintOne('Action: delete'), - label = 'Delete') - - menuBar.addmenu('Options', 'Set user preferences') - menuBar.addmenuitem('Options', 'command', 'Set general preferences', - command = PrintOne('Action: general options'), - label = 'General...') - - # Create a checkbutton menu item. - self.toggleVar = Tkinter.IntVar() - # Initialise the checkbutton to 1: - self.toggleVar.set(1) - menuBar.addmenuitem('Options', 'checkbutton', 'Toggle me on/off', - label = 'Toggle', - command = self._toggleMe, - variable = self.toggleVar) - self._toggleMe() - - menuBar.addcascademenu('Options', 'Size', - 'Set some other preferences', traverseSpec = 'z', tearoff = 1) - for size in ('tiny', 'small', 'average', 'big', 'huge'): - menuBar.addmenuitem('Size', 'command', 'Set size to ' + size, - command = PrintOne('Action: size ' + size), - label = size) - - menuBar.addmenu('Help', 'User manuals', name = 'help') - menuBar.addmenuitem('Help', 'command', 'About this application', - command = PrintOne('Action: about'), - label = 'About...') - - # Create and pack the main part of the window. - self.mainPart = Tkinter.Label(toplevel, - text = 'This is the\nmain part of\nthe window', - background = 'black', - foreground = 'white', - padx = 30, - pady = 30) - self.mainPart.pack(fill = 'both', expand = 1) - - # Create and pack the MessageBar. - self.messageBar = Pmw.MessageBar(toplevel, - entry_width = 40, - entry_relief='groove', - labelpos = 'w', - label_text = 'Status:') - self.messageBar.pack(fill = 'x', padx = 10, pady = 10) - self.messageBar.message('state', - 'Balloon/status help not working properly - Tk menubar bug') - - buttonBox = Pmw.ButtonBox(toplevel) - buttonBox.pack(fill = 'x') - buttonBox.add('Disable\nall', command = menuBar.disableall) - buttonBox.add('Enable\nall', command = menuBar.enableall) - buttonBox.add('Create\nmenu', command = self.add) - buttonBox.add('Delete\nmenu', command = self.delete) - buttonBox.add('Create\nitem', command = self.additem) - buttonBox.add('Delete\nitem', command = self.deleteitem) - - # Configure the balloon to displays its status messages in the - # message bar. - self.balloon.configure(statuscommand = self.messageBar.helpmessage) - - self.testMenuList = [] - - def _toggleMe(self): - print 'Toggle value:', self.toggleVar.get() - - def add(self): - if len(self.testMenuList) == 0: - num = 0 - else: - num = self.testMenuList[-1] - num = num + 1 - name = 'Menu%d' % num - self.testMenuList.append(num) - - self.menuBar.addmenu(name, 'This is ' + name) - - def delete(self): - if len(self.testMenuList) == 0: - self.menuBar.bell() - else: - num = self.testMenuList[0] - name = 'Menu%d' % num - del self.testMenuList[0] - self.menuBar.deletemenu(name) - - def additem(self): - if len(self.testMenuList) == 0: - self.menuBar.bell() - else: - num = self.testMenuList[-1] - menuName = 'Menu%d' % num - menu = self.menuBar.component(menuName) - if menu.index('end') is None: - label = 'item X' - else: - label = menu.entrycget('end', 'label') + 'X' - self.menuBar.addmenuitem(menuName, 'command', 'Help for ' + label, - command = PrintOne('Action: ' + menuName + ': ' + label), - label = label) - - def deleteitem(self): - if len(self.testMenuList) == 0: - self.menuBar.bell() - else: - num = self.testMenuList[-1] - menuName = 'Menu%d' % num - menu = self.menuBar.component(menuName) - if menu.index('end') is None: - self.menuBar.bell() - else: - self.menuBar.deletemenuitems(menuName, 0) - -class PrintOne: - def __init__(self, text): - self.text = text - - def __call__(self): - print self.text - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/MenuBar.py b/Pmw/Pmw_1_2/demos/MenuBar.py deleted file mode 100644 index 8e22e53b..00000000 --- a/Pmw/Pmw_1_2/demos/MenuBar.py +++ /dev/null @@ -1,166 +0,0 @@ -title = 'Pmw.MenuBar demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create the Balloon. - self.balloon = Pmw.Balloon(parent) - - # Create and pack the MenuBar. - menuBar = Pmw.MenuBar(parent, - hull_relief = 'raised', - hull_borderwidth = 1, - balloon = self.balloon) - menuBar.pack(fill = 'x') - self.menuBar = menuBar - - # Add some buttons to the MenuBar. - menuBar.addmenu('File', 'Close this window or exit') - menuBar.addmenuitem('File', 'command', 'Close this window', - command = PrintOne('Action: close'), - label = 'Close') - menuBar.addmenuitem('File', 'separator') - menuBar.addmenuitem('File', 'command', 'Exit the application', - command = PrintOne('Action: exit'), - label = 'Exit') - - menuBar.addmenu('Edit', 'Cut, copy or paste') - menuBar.addmenuitem('Edit', 'command', 'Delete the current selection', - command = PrintOne('Action: delete'), - label = 'Delete') - - menuBar.addmenu('Options', 'Set user preferences') - menuBar.addmenuitem('Options', 'command', 'Set general preferences', - command = PrintOne('Action: general options'), - label = 'General...') - - # Create a checkbutton menu item. - self.toggleVar = Tkinter.IntVar() - # Initialise the checkbutton to 1: - self.toggleVar.set(1) - menuBar.addmenuitem('Options', 'checkbutton', 'Toggle me on/off', - label = 'Toggle', - command = self._toggleMe, - variable = self.toggleVar) - self._toggleMe() - - menuBar.addcascademenu('Options', 'Size', - 'Set some other preferences', traverseSpec = 'z', tearoff = 1) - for size in ('tiny', 'small', 'average', 'big', 'huge'): - menuBar.addmenuitem('Size', 'command', 'Set size to ' + size, - command = PrintOne('Action: size ' + size), - label = size) - - menuBar.addmenu('Help', 'User manuals', side = 'right') - menuBar.addmenuitem('Help', 'command', 'About this application', - command = PrintOne('Action: about'), - label = 'About...') - - # Create and pack the main part of the window. - self.mainPart = Tkinter.Label(parent, - text = 'This is the\nmain part of\nthe window', - background = 'black', - foreground = 'white', - padx = 30, - pady = 30) - self.mainPart.pack(fill = 'both', expand = 1) - - # Create and pack the MessageBar. - self.messageBar = Pmw.MessageBar(parent, - entry_width = 40, - entry_relief='groove', - labelpos = 'w', - label_text = 'Status:') - self.messageBar.pack(fill = 'x', padx = 10, pady = 10) - self.messageBar.message('state', 'OK') - - buttonBox = Pmw.ButtonBox(parent) - buttonBox.pack(fill = 'x') - buttonBox.add('Disable\nall', command = menuBar.disableall) - buttonBox.add('Enable\nall', command = menuBar.enableall) - buttonBox.add('Create\nmenu', command = self.add) - buttonBox.add('Delete\nmenu', command = self.delete) - buttonBox.add('Create\nitem', command = self.additem) - buttonBox.add('Delete\nitem', command = self.deleteitem) - - # Configure the balloon to displays its status messages in the - # message bar. - self.balloon.configure(statuscommand = self.messageBar.helpmessage) - - self.testMenuList = [] - - def _toggleMe(self): - print 'Toggle value:', self.toggleVar.get() - - def add(self): - if len(self.testMenuList) == 0: - num = 0 - else: - num = self.testMenuList[-1] - num = num + 1 - name = 'Menu%d' % num - self.testMenuList.append(num) - - self.menuBar.addmenu(name, 'This is ' + name) - - def delete(self): - if len(self.testMenuList) == 0: - self.menuBar.bell() - else: - num = self.testMenuList[0] - name = 'Menu%d' % num - del self.testMenuList[0] - self.menuBar.deletemenu(name) - - def additem(self): - if len(self.testMenuList) == 0: - self.menuBar.bell() - else: - num = self.testMenuList[-1] - menuName = 'Menu%d' % num - menu = self.menuBar.component(menuName + '-menu') - if menu.index('end') is None: - label = 'item X' - else: - label = menu.entrycget('end', 'label') + 'X' - self.menuBar.addmenuitem(menuName, 'command', 'Help for ' + label, - command = PrintOne('Action: ' + menuName + ': ' + label), - label = label) - - def deleteitem(self): - if len(self.testMenuList) == 0: - self.menuBar.bell() - else: - num = self.testMenuList[-1] - menuName = 'Menu%d' % num - menu = self.menuBar.component(menuName + '-menu') - if menu.index('end') is None: - self.menuBar.bell() - else: - self.menuBar.deletemenuitems(menuName, 0) - -class PrintOne: - def __init__(self, text): - self.text = text - - def __call__(self): - print self.text - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/MessageBar.py b/Pmw/Pmw_1_2/demos/MessageBar.py deleted file mode 100644 index 8cec7ddc..00000000 --- a/Pmw/Pmw_1_2/demos/MessageBar.py +++ /dev/null @@ -1,85 +0,0 @@ -title = 'Pmw.MessageBar demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create and pack the MessageBar. - self._messagebar = Pmw.MessageBar(parent, - entry_width = 40, - entry_relief='groove', - labelpos = 'w', - label_text = 'Status:') - self._messagebar.pack(side = 'bottom', fill = 'x', - expand = 1, padx = 10, pady = 10) - - # Create and pack the ScrolledListBox to change the MessageBar. - self.box = Pmw.ScrolledListBox(parent, - listbox_selectmode='single', - items=('state', 'help', 'userevent', 'systemevent', - 'usererror', 'systemerror', 'busy',), - label_text='Message type', - labelpos='n', - selectioncommand=self.selectionCommand) - self.box.pack(fill = 'both', expand = 'yes', padx = 10, pady = 10) - - self._index = 0 - self._stateCounter = 0 - - def selectionCommand(self): - sels = self.box.getcurselection() - if len(sels) > 0: - self._index = self._index + 1 - messagetype = sels[0] - if messagetype == 'state': - self._stateCounter = (self._stateCounter + 1) % 3 - text = stateMessages[self._stateCounter] - if text != '': - text = text + ' (' + messagetype + ')' - self._messagebar.message('state', text) - else: - text = messages[messagetype] - text = text + ' (' + messagetype + ')' - self._messagebar.message(messagetype, text) - if messagetype == 'busy': - Pmw.showbusycursor() - self.box.after(2000) - Pmw.hidebusycursor() - self._messagebar.resetmessages('busy') - text = 'All files successfully removed' - text = text + ' (userevent)' - self._messagebar.message('userevent', text) - - -messages = { - 'help': 'Save current file', - 'userevent': 'Saving file "foo"', - 'busy': 'Busy deleting all files from file system ...', - 'systemevent': 'File "foo" saved', - 'usererror': 'Invalid file name "foo/bar"', - 'systemerror': 'Failed to save file: file system full', -} - -stateMessages = { - 0: '', - 1: 'Database is down', - 2: 'Waiting for reply from database', -} - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/MessageDialog.py b/Pmw/Pmw_1_2/demos/MessageDialog.py deleted file mode 100644 index 09c8c98b..00000000 --- a/Pmw/Pmw_1_2/demos/MessageDialog.py +++ /dev/null @@ -1,102 +0,0 @@ -title = 'Pmw.MessageDialog demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - self.parent = parent - - # Create dialog 1. - self.dialog1 = Pmw.MessageDialog(parent, - title = 'Simple message dialog', - defaultbutton = 0, - message_text = 'A simple message dialog\nwith no callback.') - self.dialog1.iconname('Simple message dialog') - self.dialog1.withdraw() - - # Create dialog 2. - self.dialog2 = Pmw.MessageDialog(parent, - title = 'Bell ringing dialog', - message_text = 'This message dialog\nwill ring the bell ' + - 'when\nyou click on the buttons.', - iconpos = 'w', - icon_bitmap = 'error', - command = self.execute2, - buttons = ('One', 'Two', 'Three', 'Close')) - self.dialog2.iconname('Bell ringing dialog') - self.dialog2.withdraw() - - # Create dialog 3. - self.dialog3 = Pmw.MessageDialog(parent, - title = 'Vertical button dialog', - message_text = 'This message dialog\nhas the buttons on the\n' + - 'right hand side.', - buttonboxpos = 'e', - iconpos = 'n', - icon_bitmap = 'warning', - buttons = ('Goodbye', 'Au revoir', 'Sayonara', 'Close'), - defaultbutton = 'Close') - self.dialog3.iconname('Vertical button dialog') - self.dialog3.withdraw() - - # Create some buttons to launch the dialogs. - w = Tkinter.Button(parent, text = 'Simple dialog', - command = lambda self = self: - self.dialog1.activate(geometry = 'first+100+100')) - w.pack(padx = 8, pady = 8) - - w = Tkinter.Button(parent, text = 'Bell ringing dialog', - command = self.dialog2.activate) - w.pack(padx = 8, pady = 8) - - w = Tkinter.Button(parent, text = 'Vertical buttons', - command = self.dialog3.activate) - w.pack(padx = 8, pady = 8) - - w = Tkinter.Button(parent, text = 'On the fly dialog', - command = self._createOnTheFly) - w.pack(padx = 8, pady = 8) - - def execute2(self, result): - print 'You clicked on', result - if result is None: - self.dialog2.deactivate(result) - elif result == 'Close': - self.dialog2.deactivate(result) - else: - for count in range({'One': 1, 'Two': 2, 'Three': 3}[result]): - if count != 0: - self.dialog2.after(200) - self.dialog2.bell() - - def _createOnTheFly(self): - dialog = Pmw.MessageDialog(self.parent, - title = 'On the fly dialog', - defaultbutton = 0, - buttons = ('OK', 'Apply', 'Cancel', 'Help'), - message_text = 'This dialog was created when you clicked ' + - 'on the button.') - dialog.iconname('Simple message dialog') - result = dialog.activate() - - print 'You selected', result - - - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/MessageInfo.py b/Pmw/Pmw_1_2/demos/MessageInfo.py deleted file mode 100644 index 1c2fac40..00000000 --- a/Pmw/Pmw_1_2/demos/MessageInfo.py +++ /dev/null @@ -1,108 +0,0 @@ -title = 'Pmw toplevel megawidget demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class MessageInfo(Pmw.MegaToplevel): - - # Demo Pmw toplevel megawidget. - - def __init__(self, parent=None, **kw): - - # Define the megawidget options. - optiondefs = () - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.MegaToplevel.__init__(self, parent) - - # Create the components. - interior = self.interior() - - self._dismiss = self.createcomponent('dismiss', - (), None, - Tkinter.Button, (interior,), - text = 'Dismiss', - command = self.goodbye) - self._dismiss.pack(side = 'bottom', pady = 4) - - self._separator = self.createcomponent('separator', - (), None, - Tkinter.Frame, (interior,), - height = 2, - borderwidth = 1, - relief = 'sunken') - self._separator.pack(side = 'bottom', fill = 'x', pady = 4) - - self._icon = self.createcomponent('icon', - (), None, - Tkinter.Label, (interior,)) - self._icon.pack(side = 'left', padx = 8, pady = 8) - - self._infoFrame = self.createcomponent('infoframe', - (), None, - Tkinter.Frame, (interior,)) - self._infoFrame.pack( - side = 'left', - fill = 'both', - expand = 1, - padx = 4, - pady = 4) - - self._message = self.createcomponent('message', - (), None, - Tkinter.Label, (interior,)) - self._message.pack(expand = 1, fill = 'both', padx = 10, pady = 10) - - self.bind('', self.goodbye) - - # Check keywords and initialise options. - self.initialiseoptions() - - def goodbye(self, event = None): - self.destroy() - -class Demo: - def __init__(self, parent): - # Create button to launch the megawidget. - self.button = Tkinter.Button(parent, - command = self.showMessageInfo, - text = 'Show toplevel megawidget') - self.button.pack(padx = 8, pady = 8) - - self.count = 0 - self.parent = parent - - def showMessageInfo(self): - bitmaps = ('warning', 'hourglass', 'error', 'info', - 'gray25', 'gray50', 'question', 'questhead') - bitmap = bitmaps[self.count % len(bitmaps)] - - message = 'This is a demonstration of\na megawidget.\n' + \ - 'It contains a configurable\nmessage area and bitmap.\n' + \ - 'This instance is displaying\nthe "' + bitmap + '" bitmap.' - - # Make the toplevel window a child of this window, so that it - # is destroyed when the demo is destroyed. - MessageInfo(self.parent, message_text = message, icon_bitmap = bitmap) - - self.count = self.count + 1 - if self.count == 1: - self.button.configure(text = 'Show another\ntoplevel megawidget') - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/MultiLineLabel.py b/Pmw/Pmw_1_2/demos/MultiLineLabel.py deleted file mode 100644 index b08b4c15..00000000 --- a/Pmw/Pmw_1_2/demos/MultiLineLabel.py +++ /dev/null @@ -1,73 +0,0 @@ -title = 'Multi-line label demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import string -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - - frame = Tkinter.Frame(parent, background = '#eeeeee') - frame.pack(fill = 'both', expand = 1, padx = 5, pady = 5) - - stickys = ('n', 's', 'e', 'w', 'ns', 'ew', 'ne', 'nw', 'se', 'sw', - 'nsw', 'nse', 'new', 'sew', 'nsew',) - - widgets = [] - row = 0 - column = 0 - - # Choose one megawidget class to demonstrate: - cls = Pmw.EntryField - # cls = Pmw.Counter - # cls = Pmw.ComboBox - # cls = Pmw.LabeledWidget - # cls = Pmw.MessageBar - - for sticky in stickys: - dict = {} - dict['sticky'] = sticky - dict['labelpos'] = 'w' - dict['label_text'] = '1\n' + sticky + ':\n3' - if cls == Pmw.EntryField: - dict['value'] = sticky - dict['entry_width'] = 6 - if cls == Pmw.Counter or cls == Pmw.ComboBox: - dict['entryfield_value'] = sticky - dict['entry_width'] = 6 - widget = apply(cls, (frame,), dict) - if cls == Pmw.LabeledWidget: - f = Tkinter.Button(widget.interior(), text = sticky) - f.pack(fill = 'both', expand = 1) - if cls == Pmw.MessageBar: - widget.message('state', sticky) - widget.grid(column=column, row=row, sticky='ew', padx = 10, pady = 5) - frame.grid_columnconfigure(column, weight=1) - frame.grid_rowconfigure(row, weight=1) - - widgets.append(widget) - - if row < 4: - row = row + 1 - else: - row = 0 - column = column + 1 - - Pmw.alignlabels(widgets, sticky = 'e') - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/NestedDialogs.py b/Pmw/Pmw_1_2/demos/NestedDialogs.py deleted file mode 100644 index e8199a33..00000000 --- a/Pmw/Pmw_1_2/demos/NestedDialogs.py +++ /dev/null @@ -1,71 +0,0 @@ -title = 'Modal dialog nesting demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create button to launch the dialog. - w = Tkinter.Button(parent, text = 'Show first dialog', - command = self.showFirstDialog) - w.pack(padx = 8, pady = 8) - - self.timerId = None - - self.dialog1 = Pmw.MessageDialog(parent, - message_text = 'This is the first modal dialog.\n' + - 'You can see how dialogs nest by\n' + - 'clicking on the "Next" button.', - title = 'Dialog 1', - buttons = ('Next', 'Cancel'), - defaultbutton = 'Next', - command = self.next_dialog) - self.dialog1.withdraw() - - self.dialog2 = Pmw.Dialog(self.dialog1.interior(), - title = 'Dialog 2', - buttons = ('Cancel',), - deactivatecommand = self.cancelTimer, - defaultbutton = 'Cancel') - self.dialog2.withdraw() - w = Tkinter.Label(self.dialog2.interior(), - text = 'This is the second modal dialog.\n' + - 'It will automatically disappear shortly') - w.pack(padx = 10, pady = 10) - - def showFirstDialog(self): - self.dialog1.activate() - - def cancelTimer(self): - if self.timerId is not None: - self.dialog2.after_cancel(self.timerId) - self.timerId = None - - def deactivateSecond(self): - self.timerId = None - self.dialog2.deactivate() - - def next_dialog(self, result): - if result != 'Next': - self.dialog1.deactivate() - return - - self.timerId = self.dialog2.after(3000, self.deactivateSecond) - self.dialog2.activate() - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/NoteBook.py b/Pmw/Pmw_1_2/demos/NoteBook.py deleted file mode 100644 index 20815a51..00000000 --- a/Pmw/Pmw_1_2/demos/NoteBook.py +++ /dev/null @@ -1,52 +0,0 @@ -title = 'Pmw.NoteBook demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create and pack the NoteBook. - notebook = Pmw.NoteBook(parent) - notebook.pack(fill = 'both', expand = 1, padx = 10, pady = 10) - - # Add the "Appearance" page to the notebook. - page = notebook.add('Appearance') - notebook.tab('Appearance').focus_set() - - # Create the "Toolbar" contents of the page. - group = Pmw.Group(page, tag_text = 'Toolbar') - group.pack(fill = 'both', expand = 1, padx = 10, pady = 10) - b1 = Tkinter.Checkbutton(group.interior(), text = 'Show toolbar') - b1.grid(row = 0, column = 0) - b2 = Tkinter.Checkbutton(group.interior(), text = 'Toolbar tips') - b2.grid(row = 0, column = 1) - - # Create the "Startup" contents of the page. - group = Pmw.Group(page, tag_text = 'Startup') - group.pack(fill = 'both', expand = 1, padx = 10, pady = 10) - home = Pmw.EntryField(group.interior(), labelpos = 'w', - label_text = 'Home page location:') - home.pack(fill = 'x', padx = 20, pady = 10) - - # Add two more empty pages. - page = notebook.add('Helpers') - page = notebook.add('Images') - - notebook.setnaturalsize() - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - widget = Demo(root) - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack() - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/NoteBook_2.py b/Pmw/Pmw_1_2/demos/NoteBook_2.py deleted file mode 100644 index f42037a7..00000000 --- a/Pmw/Pmw_1_2/demos/NoteBook_2.py +++ /dev/null @@ -1,224 +0,0 @@ -title = 'Pmw.NoteBook demonstration (more complex)' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent, withTabs = 1): - - # Repeat random number sequence for each run. - self.rand = 12345 - - # Default demo is to display a tabbed notebook. - self.withTabs = withTabs - - # Create a frame to put everything in - self.mainframe = Tkinter.Frame(parent) - self.mainframe.pack(fill = 'both', expand = 1) - - # Find current default colors - button = Tkinter.Button() - defaultbg = button.cget('background') - defaultfg = button.cget('foreground') - button.destroy() - - # Create the list of colors to cycle through - self.colorList = [] - self.colorList.append((defaultbg, defaultfg)) - self.colorIndex = 0 - for color in Pmw.Color.spectrum(6, 1.5, 1.0, 1.0, 1): - bg = Pmw.Color.changebrightness(self.mainframe, color, 0.85) - self.colorList.append((bg, 'black')) - bg = Pmw.Color.changebrightness(self.mainframe, color, 0.55) - self.colorList.append((bg, 'white')) - - # Set the color to the current default - Pmw.Color.changecolor(self.mainframe, defaultbg, foreground = defaultfg) - defaultPalette = Pmw.Color.getdefaultpalette(self.mainframe) - Pmw.Color.setscheme(self.mainframe, defaultbg, foreground = defaultfg) - - # Create the notebook, but don't pack it yet. - if self.withTabs: - tabpos = 'n' - else: - tabpos = None - self.notebook = Pmw.NoteBook(self.mainframe, - tabpos = tabpos, - createcommand = PrintOne('Create'), - lowercommand = PrintOne('Lower'), - raisecommand = PrintOne('Raise'), - hull_width = 300, - hull_height = 200, - ) - - # Create a buttonbox to configure the notebook and pack it first. - buttonbox = Pmw.ButtonBox(self.mainframe) - buttonbox.pack(side = 'bottom', fill = 'x') - - # Add some buttons to the buttonbox to configure the notebook. - buttonbox.add('Insert\npage', command = self.insertpage) - buttonbox.add('Delete\npage', command = self.deletepage) - buttonbox.add('Add\nbutton', command = self.addbutton) - buttonbox.add('Change\ncolor', command = self.changecolor) - buttonbox.add('Natural\nsize', command = - self.notebook.setnaturalsize) - - if not self.withTabs: - # Create the selection widget to select the page in the notebook. - self.optionmenu = Pmw.OptionMenu(self.mainframe, - menubutton_width = 10, - command = self.notebook.selectpage - ) - self.optionmenu.pack(side = 'left', padx = 10) - - # Pack the notebook last so that the buttonbox does not disappear - # when the window is made smaller. - self.notebook.pack(fill = 'both', expand = 1, padx = 5, pady = 5) - - # Populate some pages of the notebook. - page = self.notebook.add('tmp') - self.notebook.delete('tmp') - page = self.notebook.add('Appearance') - if self.withTabs: - self.notebook.tab('Appearance').focus_set() - button = Tkinter.Button(page, - text = 'Welcome\nto\nthe\nAppearance\npage') - button.pack(expand = 1) - page = self.notebook.add('Fonts') - button = Tkinter.Button(page, - text = 'This is a very very very very wide Fonts page') - button.pack(expand = 1) - page = self.notebook.insert('Applications', before = 'Fonts') - button = Tkinter.Button(page, text = 'This is the Applications page') - button.pack(expand = 1) - - # Initialise the first page and the initial colour. - if not self.withTabs: - self.optionmenu.setitems(self.notebook.pagenames()) - apply(Pmw.Color.setscheme, (self.mainframe,), defaultPalette) - self.pageCounter = 0 - - def insertpage(self): - # Create a page at a random position - - defaultPalette = Pmw.Color.getdefaultpalette(self.mainframe) - bg, fg = self.colorList[self.colorIndex] - Pmw.Color.setscheme(self.mainframe, bg, foreground = fg) - - self.pageCounter = self.pageCounter + 1 - before = self.randomchoice(self.notebook.pagenames() + [Pmw.END]) - pageName = 'page%d' % self.pageCounter - if self.pageCounter % 5 == 0: - tab_text = pageName + '\nline two' - else: - tab_text = pageName - classes = (None, Tkinter.Button, Tkinter.Label, Tkinter.Checkbutton) - cls = self.randomchoice((None,) + classes) - if cls is None: - print 'Adding', pageName, 'as a frame with a button' - if self.withTabs: - page = self.notebook.insert(pageName, before, tab_text = tab_text) - else: - page = self.notebook.insert(pageName, before) - button = Tkinter.Button(page, - text = 'This is button %d' % self.pageCounter) - button.pack(expand = 1) - else: - print 'Adding', pageName, 'using', cls - if self.withTabs: - page = self.notebook.insert(pageName, before, - tab_text = tab_text, - page_pyclass = cls, - page_text = 'This is a page using\na %s' % str(cls) - ) - else: - page = self.notebook.insert(pageName, before, - page_pyclass = cls, - page_text = 'This is a page using\na %s' % str(cls) - ) - if not self.withTabs: - self.optionmenu.setitems( - self.notebook.pagenames(), self.notebook.getcurselection()) - - apply(Pmw.Color.setscheme, (self.mainframe,), defaultPalette) - - def addbutton(self): - # Add a button to a random page. - - defaultPalette = Pmw.Color.getdefaultpalette(self.mainframe) - bg, fg = self.colorList[self.colorIndex] - Pmw.Color.setscheme(self.mainframe, bg, foreground = fg) - - framePages = [] - for pageName in self.notebook.pagenames(): - page = self.notebook.page(pageName) - if page.__class__ == Tkinter.Frame: - framePages.append(pageName) - - if len(framePages) == 0: - self.notebook.bell() - return - - pageName = self.randomchoice(framePages) - print 'Adding extra button to', pageName - page = self.notebook.page(pageName) - button = Tkinter.Button(page, text = 'This is an extra button') - button.pack(expand = 1) - - apply(Pmw.Color.setscheme, (self.mainframe,), defaultPalette) - - def deletepage(self): - # Delete a random page - - pageNames = self.notebook.pagenames() - if len(pageNames) == 0: - self.notebook.bell() - return - - pageName = self.randomchoice(pageNames) - print 'Deleting', pageName - self.notebook.delete(pageName) - if not self.withTabs: - self.optionmenu.setitems( - self.notebook.pagenames(), self.notebook.getcurselection()) - - def changecolor(self): - self.colorIndex = self.colorIndex + 1 - if self.colorIndex == len(self.colorList): - self.colorIndex = 0 - - bg, fg = self.colorList[self.colorIndex] - print 'Changing color to', bg - Pmw.Color.changecolor(self.mainframe, bg, foreground = fg) - self.notebook.recolorborders() - - # Simple random number generator. - def randomchoice(self, selection): - num = len(selection) - self.rand = (self.rand * 125) % 2796203 - index = self.rand % num - return selection[index] - -class PrintOne: - def __init__(self, text): - self.text = text - - def __call__(self, text): - print self.text, text - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - widget = Demo(root) - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack() - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/NoteBook_3.py b/Pmw/Pmw_1_2/demos/NoteBook_3.py deleted file mode 100644 index 8106c5af..00000000 --- a/Pmw/Pmw_1_2/demos/NoteBook_3.py +++ /dev/null @@ -1,26 +0,0 @@ -title = 'Pmw.NoteBook demonstration (with no tabs)' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -# Reuse the NoteBook with tabs demo. -import NoteBook_2 - -class Demo(NoteBook_2.Demo): - def __init__(self, parent): - NoteBook_2.Demo.__init__(self, parent, withTabs = 0) - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - widget = Demo(root) - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack() - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/OptionMenu.py b/Pmw/Pmw_1_2/demos/OptionMenu.py deleted file mode 100644 index 11d7a88a..00000000 --- a/Pmw/Pmw_1_2/demos/OptionMenu.py +++ /dev/null @@ -1,66 +0,0 @@ -title = 'Pmw.OptionMenu demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create and pack the OptionMenu megawidgets. - # The first one has a textvariable. - self.var = Tkinter.StringVar() - self.var.set('steamed') - self.method_menu = Pmw.OptionMenu(parent, - labelpos = 'w', - label_text = 'Choose method:', - menubutton_textvariable = self.var, - items = ['baked', 'steamed', 'stir fried', 'boiled', 'raw'], - menubutton_width = 10, - ) - self.method_menu.pack(anchor = 'w', padx = 10, pady = 10) - - self.vege_menu = Pmw.OptionMenu (parent, - labelpos = 'w', - label_text = 'Choose vegetable:', - items = ('broccoli', 'peas', 'carrots', 'pumpkin'), - menubutton_width = 10, - command = self._printOrder, - ) - self.vege_menu.pack(anchor = 'w', padx = 10, pady = 10) - - self.direction_menu = Pmw.OptionMenu (parent, - labelpos = 'w', - label_text = 'Menu direction:', - items = ('flush', 'above', 'below', 'left', 'right'), - menubutton_width = 10, - command = self._changeDirection, - ) - self.direction_menu.pack(anchor = 'w', padx = 10, pady = 10) - - menus = (self.method_menu, self.vege_menu, self.direction_menu) - Pmw.alignlabels(menus) - - def _printOrder(self, vege): - # Can use 'self.var.get()' instead of 'getcurselection()'. - print 'You have chosen %s %s.' % \ - (self.method_menu.getcurselection(), vege) - - def _changeDirection(self, direction): - for menu in (self.method_menu, self.vege_menu, self.direction_menu): - menu.configure(menubutton_direction = direction) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/PanedWidget.py b/Pmw/Pmw_1_2/demos/PanedWidget.py deleted file mode 100644 index e8bdb22d..00000000 --- a/Pmw/Pmw_1_2/demos/PanedWidget.py +++ /dev/null @@ -1,103 +0,0 @@ -title = 'Pmw.PanedWidget demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - - # Create a main PanedWidget with a few panes. - self.pw = Pmw.PanedWidget(parent, - orient='vertical', - hull_borderwidth = 1, - hull_relief = 'sunken', - hull_width=300, - hull_height=400) - for self.numPanes in range(4): - if self.numPanes == 1: - name = 'Fixed size' - pane = self.pw.add(name, min = .1, max = .1) - else: - name = 'Pane ' + str(self.numPanes) - pane = self.pw.add(name, min = .1, size = .25) - label = Tkinter.Label(pane, text = name) - label.pack(side = 'left', expand = 1) - button = Tkinter.Button(pane, text = 'Delete', - command = lambda s=self, n=name: s.deletePane(n)) - button.pack(side = 'left', expand = 1) - # TODO: add buttons to invoke self.moveOneUp and self.moveOneUp. - - self.pw.pack(expand = 1, fill='both') - - buttonBox = Pmw.ButtonBox(parent) - buttonBox.pack(fill = 'x') - buttonBox.add('Add pane', command = self.addPane) - buttonBox.add('Move pane', command = self.move) - self.moveSrc = 0 - self.moveNewPos = 1 - self.moveBack = 0 - - def move(self): - numPanes = len(self.pw.panes()) - if numPanes == 0: - print 'No panes to move!' - return - - if self.moveSrc >= numPanes: - self.moveSrc = numPanes - 1 - if self.moveNewPos >= numPanes: - self.moveNewPos = numPanes - 1 - print 'Moving pane', self.moveSrc, 'to new position', self.moveNewPos - self.pw.move(self.moveSrc, self.moveNewPos) - - self.moveSrc, self.moveNewPos = self.moveNewPos, self.moveSrc - if self.moveBack: - if self.moveNewPos == numPanes - 1: - self.moveNewPos = 0 - if self.moveSrc == numPanes - 1: - self.moveSrc = 0 - else: - self.moveSrc = self.moveSrc + 1 - else: - self.moveNewPos = self.moveNewPos + 1 - self.moveBack = not self.moveBack - - def addPane(self): - self.numPanes = self.numPanes + 1 - name = 'Pane ' + str(self.numPanes) - print 'Adding', name - pane = self.pw.add(name, min = .1, size = .25) - label = Tkinter.Label(pane, text = name) - label.pack(side = 'left', expand = 1) - button = Tkinter.Button(pane, text = 'Delete', - command = lambda s=self, n=name: s.deletePane(n)) - button.pack(side = 'left', expand = 1) - self.pw.updatelayout() - - def deletePane(self, name): - print 'Deleting', name - self.pw.delete(name) - self.pw.updatelayout() - - def moveOneUp(self, name): - self.pw.move(name, name, -1) - - def moveOneDown(self, name): - self.pw.move(name, name, 1) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/PanedWidget_2.py b/Pmw/Pmw_1_2/demos/PanedWidget_2.py deleted file mode 100644 index 334bced0..00000000 --- a/Pmw/Pmw_1_2/demos/PanedWidget_2.py +++ /dev/null @@ -1,65 +0,0 @@ -title = 'Pmw.PanedWidget demonstration (pane factory)' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - self.paneCount = 0 - - # Create a "pane factory". - label = Tkinter.Label(parent, - pady = 10, - text = 'Below is a simple "pane factory".\n' + - 'Drag the handle on the left\nto create new panes.') - label.pack() - self.factory = Pmw.PanedWidget(parent, - orient='horizontal', - command = self.resize, - hull_borderwidth = 1, - hull_relief = 'raised', - hull_width=300, hull_height=200 - ) - self.factory.add('starter', size = 0.0) - self.factory.add('main') - button = Tkinter.Button(self.factory.pane('main'), - text = 'Pane\n0') - button.pack(expand = 1) - self.factory.pack(expand = 1, fill = 'both') - - def resize(self, list): - # Remove any panes less than 2 pixel wide. - for i in range(len(list) - 1, 0, -1): - if list[i] < 2: - self.factory.delete(i) - - # If the user has dragged the left hand handle, create a new pane. - if list[0] > 1: - self.paneCount = self.paneCount + 1 - - # Add a button to the new pane. - name = self.factory.panes()[0] - text = 'Pane\n' + str(self.paneCount) - button = Tkinter.Button(self.factory.pane(name), text = text) - button.pack(expand = 1) - - # Create a new starter pane. - name = 'Pane ' + str(self.paneCount) - self.factory.insert(name, size=0.0) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/PromptDialog.py b/Pmw/Pmw_1_2/demos/PromptDialog.py deleted file mode 100644 index 40f50f7d..00000000 --- a/Pmw/Pmw_1_2/demos/PromptDialog.py +++ /dev/null @@ -1,62 +0,0 @@ -title = 'Pmw.PromptDialog demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -# This may demonstrate a bug in Tk. Click on Cancel in the confirm -# dialog and then click on OK in the password dialog. Under Solaris -# 2.5 and python 1.5, the Cancel button in the confirm dialog is still -# displayed active, that is, it has a lighter background. - -class Demo: - def __init__(self, parent): - # Create the dialog to prompt for the password. - self.dialog = Pmw.PromptDialog(parent, - title = 'Password', - label_text = 'Password:', - entryfield_labelpos = 'n', - entry_show = '*', - defaultbutton = 0, - buttons = ('OK', 'Cancel'), - command = self.execute) - self.dialog.withdraw() - - # Create the confirmation dialog. - self.confirm = Pmw.MessageDialog( - title = 'Are you sure?', - message_text = 'Are you really sure?', - defaultbutton = 0, - buttons = ('OK', 'Cancel')) - self.confirm.withdraw() - - # Create button to launch the dialog. - w = Tkinter.Button(parent, text = 'Show prompt dialog', - command = self.dialog.activate) - w.pack(padx = 8, pady = 8) - - def execute(self, result): - if result is None or result == 'Cancel': - print 'Password prompt cancelled' - self.dialog.deactivate(result) - else: - result = self.confirm.activate() - if result == 'OK': - print 'Password entered ' + self.dialog.get() - self.dialog.deactivate() - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/RadioSelect.py b/Pmw/Pmw_1_2/demos/RadioSelect.py deleted file mode 100644 index fb549b72..00000000 --- a/Pmw/Pmw_1_2/demos/RadioSelect.py +++ /dev/null @@ -1,116 +0,0 @@ -title = 'Pmw.RadioSelect demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create and pack a horizontal RadioSelect widget. - horiz = Pmw.RadioSelect(parent, - labelpos = 'w', - command = self.callback, - label_text = 'Horizontal', - frame_borderwidth = 2, - frame_relief = 'ridge' - ) - horiz.pack(fill = 'x', padx = 10, pady = 10) - - # Add some buttons to the horizontal RadioSelect. - for text in ('Fruit', 'Vegetables', 'Cereals', 'Legumes'): - horiz.add(text) - horiz.invoke('Cereals') - - # Create and pack a multiple selection RadioSelect widget. - self.multiple = Pmw.RadioSelect(parent, - labelpos = 'w', - command = self.multcallback, - label_text = 'Multiple\nselection', - frame_borderwidth = 2, - frame_relief = 'ridge', - selectmode = 'multiple', - ) - self.multiple.pack(fill = 'x', padx = 10) - - # Add some buttons to the multiple selection RadioSelect. - for text in ('Apricots', 'Eggplant', 'Rice', 'Lentils'): - self.multiple.add(text) - self.multiple.invoke('Rice') - - # Create and pack a vertical RadioSelect widget, with checkbuttons. - self.checkbuttons = Pmw.RadioSelect(parent, - buttontype = 'checkbutton', - orient = 'vertical', - labelpos = 'w', - command = self.checkbuttoncallback, - label_text = 'Vertical,\nusing\ncheckbuttons', - hull_borderwidth = 2, - hull_relief = 'ridge', - ) - self.checkbuttons.pack(side = 'left', expand = 1, padx = 10, pady = 10) - - # Add some buttons to the checkbutton RadioSelect. - for text in ('Male', 'Female'): - self.checkbuttons.add(text) - self.checkbuttons.invoke('Male') - self.checkbuttons.invoke('Female') - - # Create and pack a RadioSelect widget, with radiobuttons. - radiobuttons = Pmw.RadioSelect(parent, - buttontype = 'radiobutton', - orient = 'vertical', - labelpos = 'w', - command = self.callback, - label_text = 'Vertical,\nusing\nradiobuttons', - hull_borderwidth = 2, - hull_relief = 'ridge', - ) - radiobuttons.pack(side = 'left', expand = 1, padx = 10, pady = 10) - - # Add some buttons to the radiobutton RadioSelect. - for text in ('Male', 'Female', 'Both', 'Neither'): - radiobuttons.add(text) - radiobuttons.invoke('Both') - - def callback(self, tag): - # This is called whenever the user clicks on a button - # in a single select RadioSelect widget. - print 'Button', tag, 'was pressed.' - - def multcallback(self, tag, state): - # This is called whenever the user clicks on a button - # in the multiple select RadioSelect widget. - if state: - action = 'pressed.' - else: - action = 'released.' - - print 'Button', tag, 'was', action, \ - 'Selection:', self.multiple.getcurselection() - - def checkbuttoncallback(self, tag, state): - # This is called whenever the user clicks on a button - # in the checkbutton RadioSelect widget. - if state: - action = 'pressed.' - else: - action = 'released.' - - print 'Button', tag, 'was', action, \ - 'Selection:', self.checkbuttons.getcurselection() - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/Resources.py b/Pmw/Pmw_1_2/demos/Resources.py deleted file mode 100644 index 2168b4ac..00000000 --- a/Pmw/Pmw_1_2/demos/Resources.py +++ /dev/null @@ -1,74 +0,0 @@ -title = 'Using Tk option database to configure Tk widgets' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import string -import Tkinter -import Pmw - -info = """ - The Tk widgets contained in this - simple megawidget have been - configured using the Tk option - database. - *DemoClass*Listbox.cursor is 'heart' - *DemoClass*Entry.cursor is 'hand1' - *DemoClass*background is 'pink' - *DemoClass*highlightBackground is 'green' - *DemoClass*foreground is 'blue' -""" - -class DemoClass(Pmw.MegaWidget): - - # Demo Pmw megawidget. - - def __init__(self, parent = None, **kw): - - # Define the megawidget options. - optiondefs = () - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.MegaWidget.__init__(self, parent) - - interior = self.interior() - listbox = Tkinter.Listbox(interior, height = 12, width = 40) - listbox.pack(fill='both', expand='yes') - for line in string.split(info, '\n'): - listbox.insert('end', line) - - entry = Tkinter.Entry(interior) - entry.pack(fill='y') - entry.insert(0, 'Hello, World!') - - # Check keywords and initialise options. - self.initialiseoptions() - -class Demo: - def __init__(self, parent): - - # Test Tk option database settings. - parent.option_add('*DemoClass*Listbox.cursor', 'heart') - parent.option_add('*DemoClass*Entry.cursor', 'hand1') - parent.option_add('*DemoClass*background', 'pink') - parent.option_add('*DemoClass*highlightBackground', 'green') - parent.option_add('*DemoClass*foreground', 'blue') - - # Create and pack the megawidget. - demo = DemoClass(parent) - demo.pack(fill = 'both', expand = 1) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/Resources_Pmw.py b/Pmw/Pmw_1_2/demos/Resources_Pmw.py deleted file mode 100644 index a1f2f992..00000000 --- a/Pmw/Pmw_1_2/demos/Resources_Pmw.py +++ /dev/null @@ -1,110 +0,0 @@ -title = 'Using Tk option database to configure Pmw megawidgets' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - self.parent = parent - - header = Tkinter.Label(parent, text = 'Select some Tk option ' + - 'database values from\nthe lists, then click ' + - '\'Create dialog\' to create\na MessageDialog with ' + - 'these values as defaults.') - header.pack(padx = 10, pady = 10) - - # Create and pack the ComboBoxes to select options. - buttons = ( - "('OK',)", - "('Read', 'Write')", - "('OK', 'Cancel')", - "('OK', 'Apply', 'Cancel', 'Help')", - ) - - if Tkinter.TkVersion >= 8.4: - disabledState = 'readonly' - else: - disabledState = 'disabled' - - self._buttons = Pmw.ComboBox(parent, label_text = 'buttons:', - labelpos = 'w', - entry_state = disabledState, - scrolledlist_items = buttons) - self._buttons.pack(fill = 'x', expand = 1, padx = 8, pady = 8) - self._buttons.selectitem(3) - - buttonboxpos = ('n', 's', 'e', 'w',) - self._buttonboxpos = Pmw.ComboBox(parent, label_text = 'buttonboxpos:', - labelpos = 'w', - entry_state = disabledState, - scrolledlist_items = buttonboxpos) - self._buttonboxpos.pack(fill = 'x', expand = 1, padx = 8, pady = 8) - self._buttonboxpos.selectitem(2) - - pad = ('0', '8', '20', '50',) - self._pad = Pmw.ComboBox(parent, label_text = 'padx, pady:', - labelpos = 'w', - entry_state = disabledState, - scrolledlist_items = pad) - self._pad.pack(fill = 'x', expand = 1, padx = 8, pady = 8) - self._pad.selectitem(1) - - Pmw.alignlabels((self._buttons, self._buttonboxpos, self._pad)) - - # Create button to launch the dialog. - w = Tkinter.Button(parent, text = 'Create dialog', - command = self._createDialog) - w.pack(padx = 8, pady = 8) - - self.dialog = None - - def _createDialog(self): - - # Set the option database. - buttons = self._buttons.get() - buttonboxpos = self._buttonboxpos.get() - pad = self._pad.get() - self.parent.option_add('*MessageDialog.buttons', buttons) - self.parent.option_add('*MessageDialog.buttonboxpos', buttonboxpos) - self.parent.option_add('*ButtonBox.padx', pad) - self.parent.option_add('*ButtonBox.pady', pad) - - # Create the dialog. - if self.dialog is not None: - self.dialog.destroy() - - text = ('This dialog was created by setting the Tk ' + - 'option database:\n\n *MessageDialog.buttons: ' + buttons + - '\n *MessageDialog.buttonboxpos: ' + buttonboxpos + - '\n *ButtonBox.padx: ' + pad + - '\n *ButtonBox.pady: ' + pad) - self.dialog = Pmw.MessageDialog(self.parent, - defaultbutton = 0, - title = 'Pmw option database demonstration', - message_justify = 'left', - message_text = text) - self.dialog.iconname('Test dialog') - - # Return the defaults to normal, otherwise all other demos - # will be affected. - self.parent.option_add('*MessageDialog.buttons', "('OK',)") - self.parent.option_add('*MessageDialog.buttonboxpos', 's') - self.parent.option_add('*ButtonBox.padx', 8) - self.parent.option_add('*ButtonBox.pady', 8) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root, useTkOptionDb = 1) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/ScrolledCanvas.py b/Pmw/Pmw_1_2/demos/ScrolledCanvas.py deleted file mode 100644 index 28933ec5..00000000 --- a/Pmw/Pmw_1_2/demos/ScrolledCanvas.py +++ /dev/null @@ -1,124 +0,0 @@ -title = 'Pmw.ScrolledCanvas demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create the ScrolledCanvas. - self.sc = Pmw.ScrolledCanvas(parent, - borderframe = 1, - labelpos = 'n', - label_text = 'ScrolledCanvas', - usehullsize = 1, - hull_width = 400, - hull_height = 300, - ) - - # Create a group widget to contain the scrollmode options. - w = Pmw.Group(parent, tag_text='Scroll mode') - w.pack(side = 'bottom', padx = 5, pady = 5) - - hmode = Pmw.OptionMenu(w.interior(), - labelpos = 'w', - label_text = 'Horizontal:', - items = ['none', 'static', 'dynamic'], - command = self.sethscrollmode, - menubutton_width = 8, - ) - hmode.pack(side = 'left', padx = 5, pady = 5) - hmode.invoke('dynamic') - - vmode = Pmw.OptionMenu(w.interior(), - labelpos = 'w', - label_text = 'Vertical:', - items = ['none', 'static', 'dynamic'], - command = self.setvscrollmode, - menubutton_width = 8, - ) - vmode.pack(side = 'left', padx = 5, pady = 5) - vmode.invoke('dynamic') - - buttonBox = Pmw.ButtonBox(parent) - buttonBox.pack(side = 'bottom') - buttonBox.add('yview', text = 'Show\nyview', command = self.showYView) - buttonBox.add('scroll', text = 'Page\ndown', command = self.pageDown) - buttonBox.add('center', text = 'Center', command = self.centerPage) - - # Pack this last so that the buttons do not get shrunk when - # the window is resized. - self.sc.pack(padx = 5, pady = 5, fill = 'both', expand = 1) - - self.sc.component('canvas').bind('<1>', self.addcircle) - - testEntry = Tkinter.Entry(parent) - self.sc.create_line(20, 20, 100, 100) - self.sc.create_oval(100, 100, 200, 200, fill = 'green') - self.sc.create_text(100, 20, anchor = 'nw', - text = 'Click in the canvas\nto draw ovals', - font = testEntry.cget('font')) - button = Tkinter.Button(self.sc.interior(), - text = 'Hello,\nWorld!\nThis\nis\na\nbutton.') - self.sc.create_window(200, 200, - anchor='nw', - window = button) - - # Set the scroll region of the canvas to include all the items - # just created. - self.sc.resizescrollregion() - - self.colours = ('red', 'green', 'blue', 'yellow', 'cyan', 'magenta', - 'black', 'white') - self.oval_count = 0 - self.rand = 12345 - - def sethscrollmode(self, tag): - self.sc.configure(hscrollmode = tag) - - def setvscrollmode(self, tag): - self.sc.configure(vscrollmode = tag) - - def addcircle(self, event): - x = self.sc.canvasx(event.x) - y = self.sc.canvasy(event.y) - width = 10 + self.random() % 100 - height = 10 + self.random() % 100 - self.sc.create_oval( - x - width, y - height, x + width, y + height, - fill = self.colours[self.oval_count]) - self.oval_count = (self.oval_count + 1) % len(self.colours) - self.sc.resizescrollregion() - - # Simple random number generator. - def random(self): - self.rand = (self.rand * 125) % 2796203 - return self.rand - - def showYView(self): - print self.sc.yview() - - def pageDown(self): - self.sc.yview('scroll', 1, 'page') - - def centerPage(self): - top, bottom = self.sc.yview() - size = bottom - top - middle = 0.5 - size / 2 - self.sc.yview('moveto', middle) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/ScrolledField.py b/Pmw/Pmw_1_2/demos/ScrolledField.py deleted file mode 100644 index b3a268df..00000000 --- a/Pmw/Pmw_1_2/demos/ScrolledField.py +++ /dev/null @@ -1,51 +0,0 @@ -title = 'Pmw.ScrolledField demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create and pack the ScrolledField. - self._field = Pmw.ScrolledField(parent, entry_width = 30, - entry_relief='groove', labelpos = 'n', - label_text = 'Scroll the field using the\nmiddle mouse button') - self._field.pack(fill = 'x', expand = 1, padx = 10, pady = 10) - - # Create and pack a button to change the ScrolledField. - self._button = Tkinter.Button(parent, text = 'Change field', - command = self.execute) - self._button.pack(padx = 10, pady = 10) - - self._index = 0 - self.execute() - - def execute(self): - self._field.configure(text = lines[self._index % len(lines)]) - self._index = self._index + 1 - -lines = ( - 'Alice was beginning to get very tired of sitting by her sister', - 'on the bank, and of having nothing to do: once or twice she had', - 'peeped into the book her sister was reading, but it had no', - 'pictures or conversations in it, "and what is the use of a book,"', - 'thought Alice "without pictures or conversation?"', - 'Alice\'s Adventures in Wonderland', - 'Lewis Carroll', -) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/ScrolledFrame.py b/Pmw/Pmw_1_2/demos/ScrolledFrame.py deleted file mode 100644 index 06880df1..00000000 --- a/Pmw/Pmw_1_2/demos/ScrolledFrame.py +++ /dev/null @@ -1,157 +0,0 @@ -title = 'Pmw.ScrolledFrame demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create the ScrolledFrame. - self.sf = Pmw.ScrolledFrame(parent, - labelpos = 'n', label_text = 'ScrolledFrame', - usehullsize = 1, - hull_width = 400, - hull_height = 220, - ) - - # Create a group widget to contain the flex options. - w = Pmw.Group(parent, tag_text='Flex') - w.pack(side = 'bottom', padx = 5, pady = 3) - - hflex = Pmw.OptionMenu(w.interior(), - labelpos = 'w', - label_text = 'Horizontal:', - items = ['fixed', 'expand', 'shrink', 'elastic'], - command = self.sethflex, - menubutton_width = 8, - ) - hflex.pack(side = 'left', padx = 5, pady = 3) - hflex.invoke('fixed') - - vflex = Pmw.OptionMenu(w.interior(), - labelpos = 'w', - label_text = 'Vertical:', - items = ['fixed', 'expand', 'shrink', 'elastic'], - command = self.setvflex, - menubutton_width = 8, - ) - vflex.pack(side = 'left', padx = 5, pady = 3) - vflex.invoke('fixed') - - # Create a group widget to contain the scrollmode options. - w = Pmw.Group(parent, tag_text='Scroll mode') - w.pack(side = 'bottom', padx = 5, pady = 0) - - hmode = Pmw.OptionMenu(w.interior(), - labelpos = 'w', - label_text = 'Horizontal:', - items = ['none', 'static', 'dynamic'], - command = self.sethscrollmode, - menubutton_width = 8, - ) - hmode.pack(side = 'left', padx = 5, pady = 3) - hmode.invoke('dynamic') - - vmode = Pmw.OptionMenu(w.interior(), - labelpos = 'w', - label_text = 'Vertical:', - items = ['none', 'static', 'dynamic'], - command = self.setvscrollmode, - menubutton_width = 8, - ) - vmode.pack(side = 'left', padx = 5, pady = 3) - vmode.invoke('dynamic') - - self.radio = Pmw.RadioSelect(parent, selectmode = 'multiple', - command = self.radioSelected) - self.radio.add('center', text = 'Keep centered vertically') - self.radio.pack(side = 'bottom') - - buttonBox = Pmw.ButtonBox(parent) - buttonBox.pack(side = 'bottom') - buttonBox.add('add', text = 'Add a button', command = self.addButton) - buttonBox.add('yview', text = 'Show yview', command = self.showYView) - buttonBox.add('scroll', text = 'Page down', command = self.pageDown) - - # Pack this last so that the buttons do not get shrunk when - # the window is resized. - self.sf.pack(padx = 5, pady = 3, fill = 'both', expand = 1) - - self.frame = self.sf.interior() - - self.row = 0 - self.col = 0 - - for count in range(15): - self.addButton() - - def sethscrollmode(self, tag): - self.sf.configure(hscrollmode = tag) - - def setvscrollmode(self, tag): - self.sf.configure(vscrollmode = tag) - - def sethflex(self, tag): - self.sf.configure(horizflex = tag) - - def setvflex(self, tag): - self.sf.configure(vertflex = tag) - - def addButton(self): - button = Tkinter.Button(self.frame, - text = '(%d,%d)' % (self.col, self.row)) - button.grid(row = self.row, column = self.col, sticky = 'nsew') - - self.frame.grid_rowconfigure(self.row, weight = 1) - self.frame.grid_columnconfigure(self.col, weight = 1) - if self.sf.cget('horizflex') == 'expand' or \ - self.sf.cget('vertflex') == 'expand': - self.sf.reposition() - - if 'center' in self.radio.getcurselection(): - self.sf.update_idletasks() - self.centerPage() - - if self.col == self.row: - self.col = 0 - self.row = self.row + 1 - else: - self.col = self.col + 1 - - def showYView(self): - print self.sf.yview() - - def pageDown(self): - self.sf.yview('scroll', 1, 'page') - - def radioSelected(self, name, state): - if state: - self.centerPage() - - def centerPage(self): - # Example of how to use the yview() method of Pmw.ScrolledFrame. - top, bottom = self.sf.yview() - size = bottom - top - middle = 0.5 - size / 2 - self.sf.yview('moveto', middle) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - import os - if os.name == 'nt': - size = 16 - else: - size = 12 - root = Tkinter.Tk() - Pmw.initialise(root, size = size, fontScheme = 'pmw2') - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/ScrolledListBox.py b/Pmw/Pmw_1_2/demos/ScrolledListBox.py deleted file mode 100644 index f2f7d9d6..00000000 --- a/Pmw/Pmw_1_2/demos/ScrolledListBox.py +++ /dev/null @@ -1,118 +0,0 @@ -title = 'Pmw.ScrolledListBox demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create the ScrolledListBox. - self.box = Pmw.ScrolledListBox(parent, - items=('Sydney', 'Melbourne', 'Brisbane'), - labelpos='nw', - label_text='Cities', - listbox_height = 6, - selectioncommand=self.selectionCommand, - dblclickcommand=self.defCmd, - usehullsize = 1, - hull_width = 200, - hull_height = 200, - ) - - # Create a group widget to contain the scrollmode options. - w = Pmw.Group(parent, tag_text='Scroll mode') - w.pack(side = 'bottom', padx = 5, pady = 5) - - hmode = Pmw.OptionMenu(w.interior(), - labelpos = 'w', - label_text = 'Horizontal:', - items = ['none', 'static', 'dynamic'], - command = self.sethscrollmode, - menubutton_width = 8, - ) - hmode.pack(side = 'top', padx = 5, pady = 5) - hmode.invoke('dynamic') - - vmode = Pmw.OptionMenu(w.interior(), - labelpos = 'w', - label_text = 'Vertical:', - items = ['none', 'static', 'dynamic'], - command = self.setvscrollmode, - menubutton_width = 8, - ) - vmode.pack(side = 'top', padx = 5, pady = 5) - vmode.invoke('dynamic') - - buttonBox = Pmw.ButtonBox(parent) - buttonBox.pack(side = 'bottom') - buttonBox.add('yview', text = 'Show\nyview', command = self.showYView) - buttonBox.add('scroll', text = 'Page\ndown', command = self.pageDown) - buttonBox.add('center', text = 'Center', command = self.centerPage) - - # Pack this last so that the buttons do not get shrunk when - # the window is resized. - self.box.pack(fill = 'both', expand = 1, padx = 5, pady = 5) - - # Do this after packing the scrolled list box, so that the - # window does not resize as soon as it appears (because - # alignlabels has to do an update_idletasks). - Pmw.alignlabels((hmode, vmode)) - - # Add some more entries to the listbox. - items = ('Andamooka', 'Coober Pedy', 'Innamincka', 'Oodnadatta') - self.box.setlist(items) - self.box.insert(2, 'Wagga Wagga', 'Perth', 'London') - self.box.insert('end', 'Darwin', 'Auckland', 'New York') - index = list(self.box.get(0, 'end')).index('London') - self.box.delete(index) - self.box.delete(7, 8) - self.box.insert('end', 'Bulli', 'Alice Springs', 'Woy Woy') - self.box.insert('end', 'Wallumburrawang', 'Willandra Billabong') - - def sethscrollmode(self, tag): - self.box.configure(hscrollmode = tag) - - def setvscrollmode(self, tag): - self.box.configure(vscrollmode = tag) - - def selectionCommand(self): - sels = self.box.getcurselection() - if len(sels) == 0: - print 'No selection' - else: - print 'Selection:', sels[0] - - def defCmd(self): - sels = self.box.getcurselection() - if len(sels) == 0: - print 'No selection for double click' - else: - print 'Double click:', sels[0] - - def showYView(self): - print self.box.yview() - - def pageDown(self): - self.box.yview('scroll', 1, 'page') - - def centerPage(self): - top, bottom = self.box.yview() - size = bottom - top - middle = 0.5 - size / 2 - self.box.yview('moveto', middle) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/ScrolledText.py b/Pmw/Pmw_1_2/demos/ScrolledText.py deleted file mode 100644 index aae02ea2..00000000 --- a/Pmw/Pmw_1_2/demos/ScrolledText.py +++ /dev/null @@ -1,99 +0,0 @@ -title = 'Pmw.ScrolledText demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import os -import math -import string -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - - # Create the ScrolledText with headers. - fixedFont = Pmw.logicalfont('Fixed') - self.st = Pmw.ScrolledText(parent, - # borderframe = 1, - labelpos = 'n', - label_text='ScrolledText with headers', - columnheader = 1, - rowheader = 1, - rowcolumnheader = 1, - usehullsize = 1, - hull_width = 400, - hull_height = 300, - text_wrap='none', - text_font = fixedFont, - Header_font = fixedFont, - Header_foreground = 'blue', - rowheader_width = 3, - rowcolumnheader_width = 3, - text_padx = 4, - text_pady = 4, - Header_padx = 4, - rowheader_pady = 4, - ) - - self.st.pack(padx = 5, pady = 5, fill = 'both', expand = 1) - - funcs = 'atan cos cosh exp log log10 sin sinh sqrt tan tanh' - funcs = string.split(funcs) - - # Create the header for the row headers - self.st.component('rowcolumnheader').insert('end', 'x') - - # Create the column headers - headerLine = '' - for column in range(len(funcs)): - headerLine = headerLine + ('%-7s ' % (funcs[column],)) - headerLine = headerLine[:-3] - self.st.component('columnheader').insert('0.0', headerLine) - - self.st.tag_configure('yellow', background = 'yellow') - - # Create the data rows and the row headers - numRows = 50 - tagList = [] - for row in range(1, numRows): - dataLine = '' - x = row / 5.0 - for column in range(len(funcs)): - value = eval('math.' + funcs[column] + '(' + str(x) + ')') - data = str(value)[:7] - if value < 0: - tag1 = '%d.%d' % (row, len(dataLine)) - tag2 = '%d.%d' % (row, len(dataLine) + len(data)) - tagList.append(tag1) - tagList.append(tag2) - data = '%-7s' % (data,) - dataLine = dataLine + data + ' ' - dataLine = dataLine[:-3] - header = '%.1f' % (x,) - if row < numRows - 1: - dataLine = dataLine + '\n' - header = header + '\n' - self.st.insert('end', dataLine) - self.st.component('rowheader').insert('end', header) - apply(self.st.tag_add, ('yellow',) + tuple(tagList)) - - # Prevent users' modifying text and headers - self.st.configure( - text_state = 'disabled', - Header_state = 'disabled', - ) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/ScrolledText_2.py b/Pmw/Pmw_1_2/demos/ScrolledText_2.py deleted file mode 100644 index cffb733a..00000000 --- a/Pmw/Pmw_1_2/demos/ScrolledText_2.py +++ /dev/null @@ -1,99 +0,0 @@ -title = 'Pmw.ScrolledText demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import os -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create the ScrolledText. - self.st = Pmw.ScrolledText(parent, - borderframe = 1, - labelpos = 'n', - label_text='ScrolledText.py', - usehullsize = 1, - hull_width = 400, - hull_height = 300, - text_padx = 10, - text_pady = 10, - text_wrap='none' - ) - - # Create a group widget to contain the scrollmode options. - w = Pmw.Group(parent, tag_text='Scroll mode') - w.pack(side = 'bottom', padx = 5, pady = 5) - - hmode = Pmw.OptionMenu(w.interior(), - labelpos = 'w', - label_text = 'Horizontal:', - items = ['none', 'static', 'dynamic'], - command = self.sethscrollmode, - menubutton_width = 8, - ) - hmode.pack(side = 'left', padx = 5, pady = 5) - hmode.invoke('dynamic') - - vmode = Pmw.OptionMenu(w.interior(), - labelpos = 'w', - label_text = 'Vertical:', - items = ['none', 'static', 'dynamic'], - command = self.setvscrollmode, - menubutton_width = 8, - ) - vmode.pack(side = 'left', padx = 5, pady = 5) - vmode.invoke('dynamic') - - buttonBox = Pmw.ButtonBox(parent) - buttonBox.pack(side = 'bottom') - buttonBox.add('yview', text = 'Show\nyview', command = self.showYView) - buttonBox.add('scroll', text = 'Page\ndown', command = self.pageDown) - buttonBox.add('center', text = 'Center', command = self.centerPage) - - # Pack this last so that the buttons do not get shrunk when - # the window is resized. - self.st.pack(padx = 5, pady = 5, fill = 'both', expand = 1) - - # Read this file into the text widget. - head, tail = os.path.split(sys.argv[0]) - self.st.importfile(os.path.join(head,'ScrolledText.py')) - - self.st.insert('end', '\nThis demonstrates how to\n' + - 'add a window to a text widget: ') - counter = Pmw.Counter(self.st.component('text'), - entryfield_value = 9999) - self.st.window_create('end', window = counter) - - def sethscrollmode(self, tag): - self.st.configure(hscrollmode = tag) - - def setvscrollmode(self, tag): - self.st.configure(vscrollmode = tag) - - def showYView(self): - print self.st.yview() - - def pageDown(self): - self.st.yview('scroll', 1, 'page') - - def centerPage(self): - top, bottom = self.st.yview() - size = bottom - top - middle = 0.5 - size / 2 - self.st.yview('moveto', middle) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/SelectionDialog.py b/Pmw/Pmw_1_2/demos/SelectionDialog.py deleted file mode 100644 index 12fea94d..00000000 --- a/Pmw/Pmw_1_2/demos/SelectionDialog.py +++ /dev/null @@ -1,47 +0,0 @@ -title = 'Pmw.SelectionDialog demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create the dialog. - self.dialog = Pmw.SelectionDialog(parent, - title = 'My SelectionDialog', - buttons = ('OK', 'Cancel'), - defaultbutton = 'OK', - scrolledlist_labelpos = 'n', - label_text = 'What do you think of Pmw?', - scrolledlist_items = ('Cool man', 'Cool', 'Good', 'Bad', 'Gross'), - command = self.execute) - self.dialog.withdraw() - - # Create button to launch the dialog. - w = Tkinter.Button(parent, text = 'Show selection dialog', - command = self.dialog.activate) - w.pack(padx = 8, pady = 8) - - def execute(self, result): - sels = self.dialog.getcurselection() - if len(sels) == 0: - print 'You clicked on', result, '(no selection)' - else: - print 'You clicked on', result, sels[0] - self.dialog.deactivate(result) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/ShowBusy.py b/Pmw/Pmw_1_2/demos/ShowBusy.py deleted file mode 100644 index 831b7a56..00000000 --- a/Pmw/Pmw_1_2/demos/ShowBusy.py +++ /dev/null @@ -1,48 +0,0 @@ -title = 'Blt busy cursor demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - self.parent = parent - - if Pmw.Blt.havebltbusy(parent): - text = 'Click here to show the\nbusy cursor for one second.' - else: - text = 'Sorry\n' \ - 'Either the BLT package has not\n' \ - 'been installed on this system or\n' \ - 'it does not support the busy command.\n' \ - 'Clicking on this button will pause\n' \ - 'for one second but will not display\n' \ - 'the busy cursor.' - - button = Tkinter.Button(parent, - text = text, - command = Pmw.busycallback(self.sleep, parent.update)) - button.pack(padx = 10, pady = 10) - - entry = Tkinter.Entry(parent, width = 30) - entry.insert('end', 'Try to enter some text while busy.') - entry.pack(padx = 10, pady = 10) - - def sleep(self): - self.parent.after(1000) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/SpecialCounter.py b/Pmw/Pmw_1_2/demos/SpecialCounter.py deleted file mode 100644 index a76645a1..00000000 --- a/Pmw/Pmw_1_2/demos/SpecialCounter.py +++ /dev/null @@ -1,68 +0,0 @@ -title = 'Subclassing Pmw.Counter' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import string -import time -import types -import Tkinter -import Pmw - -class LabeledDateCounter(Pmw.Counter): - - def __init__(self, parent=None , **kw): - - # Need to use long ints here because on the Macintosh the maximum size - # of an integer is smaller than the value returned by time.time(). - now = (long(time.time()) / 300) * 300 - text = time.strftime('%y/%m/%d', time.localtime(now)) - - kw['datatype'] = 'date' - kw['entryfield_validate'] = 'date' - kw['entryfield_value'] = text - kw['labelpos'] = 'w' - - apply(Pmw.Counter.__init__, (self, parent), kw) - -class LabeledRealCounter(Pmw.Counter): - - def __init__(self, parent=None , **kw): - - # Define the validate option dictionary. - validate = {'validator' : 'real', 'min' : 0.0, 'max' : 100.0} - - kw['datatype'] = 'real' - kw['entryfield_validate'] = validate - kw['entryfield_value'] = 50.0 - kw['labelpos'] = 'w' - - apply(Pmw.Counter.__init__, (self, parent), kw) - -class Demo: - def __init__(self, parent): - # Create and pack some LabeledDateCounters and LabeledRealCounter. - self._date1 = LabeledDateCounter(parent, label_text = 'Date:') - self._date2 = LabeledDateCounter(parent, label_text = 'Another Date:') - self._real1 = LabeledRealCounter(parent, label_text = 'Real:') - self._real2 = LabeledRealCounter(parent, label_text = 'Another Real:') - - counters = (self._date1, self._date2, self._real1, self._real2) - - for counter in counters: - counter.pack(fill='x', expand=1, padx=10, pady=5) - Pmw.alignlabels(counters) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/SpecialEntry.py b/Pmw/Pmw_1_2/demos/SpecialEntry.py deleted file mode 100644 index 270780b5..00000000 --- a/Pmw/Pmw_1_2/demos/SpecialEntry.py +++ /dev/null @@ -1,170 +0,0 @@ -title = 'Subclassing Pmw.EntryField' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import string -import time -import types -import Tkinter -import Pmw - -class SpecialEntry(Pmw.EntryField): - - def __init__(self, parent=None , **kw): - - kw['extravalidators'] = _myValidators - apply(Pmw.EntryField.__init__, (self, parent), kw) - self._converter = None - - def setentry(self, text): - # Override Pmw.EntryField.setentry to pass string through - # the appropriate converter. - - val = self['validate'] - if type(val) == types.DictionaryType: - val = val['validator'] - if _converters.has_key(val): - text = _converters[val](text, output = 0) - Pmw.EntryField.setentry(self, text) - - def getentry(self): - text = self.get() - val = self['validate'] - if type(val) == types.DictionaryType: - val = val['validator'] - if _converters.has_key(val): - return _converters[val](text, output = 1) - else: - return text - -def _date(text): - return Pmw.datevalidator(text, 'dmy', '.') - -def _real(text): - return Pmw.realvalidator(text, ',') - -def _dateconv(text, output = 0): - # On output, convert from dd.mm.yy to mm-dd-yy. On input, convert - # mm-dd-yy to dd.mm.yy and also from +NN+ or -NN- to date NN days - # before or after today. - - if len(text) == 0: - return '' - if output: - try: - d = string.split(text, '.') - return d[1] + '-' + d[0] + '-' + d[2] - except: - return text - else: - if text[-1] == '+' or text[-1] == '-': - text = text[:-1] - if text[0] == '+' or text[0] == '-': - secondsAhead = string.atoi(text) * 3600 * 24 - return time.strftime('%d.%m.%Y', - time.localtime(time.time() + secondsAhead)) - try: - d = string.split(text,'-') - return d[1] + '.' + d[0] + '.' + d[2] - except: - return text - -def _realconv(text, output = 0): - # Convert between DD.DD and DD,DD. - - if output: - index = string.find(text, ',') - if index >= 0: - return text[:index] + '.' + text[index + 1:] - else: - return text - else: - index = string.find(text, '.') - if index >= 0: - return text[:index] + ',' + text[index + 1:] - else: - return text - - -_converters = { - 'real' : _realconv, - 'float8' : _realconv, - 'date' : _dateconv -} - -_myValidators = { - 'date' : (_date, lambda s: Pmw.datestringtojdn(s, 'dmy', '.')), - 'real' : (_real, lambda s: string.atof(_realconv(s, 1))), - 'int4' : ('numeric', 'numeric'), - 'oid' : ('int4', 'int4'), - 'float8' : ('real', 'real'), - 'varchar' : ('alphanumeric', 'alphanumeric'), - 'text' : ('alphanumeric', 'alphanumeric'), -} - -class Demo: - def __init__(self, parent): - # Create and pack the SpecialEntry megawidgets. - self._any = SpecialEntry(parent, - labelpos = 'w', - label_text = 'Text (max 10 chars):', - validate = {'validator' : 'text', 'max' : 10}, - command = self.execute) - self._any.setentry('abc') - self._int = SpecialEntry(parent, - labelpos = 'w', - label_text = 'Int4:', - validate = 'int4') - self._int.setentry(1) - self._real = SpecialEntry(parent, - labelpos = 'w', - label_text = 'Real (max 2,5e+9):', - validate = {'validator' : 'real', 'max' : +2.5e+9}, - ) - self._real.setentry('+2.5e+6') - self._date = SpecialEntry(parent, - labelpos = 'w', - label_text = 'Date (dd.mm.yy):', - validate = 'date', - modifiedcommand = self.changed - ) - # Set entry to one week from now, using special intput format. - self._date.setentry('+7+') - - entries = (self._any, self._int, self._real, self._date) - - for entry in entries: - entry.pack(fill='x', expand=1, padx=10, pady=5) - Pmw.alignlabels(entries) - - self._any.component('entry').focus_set() - - def changed(self): - print 'Text changed, converted value is', self._date.getentry() - - def execute(self): - print 'Return pressed, value is', self._any.get() - - # This implements a custom validation routine. It simply checks - # if the string is of odd length. - def custom_validate(self, text): - print 'text:', text - if len(text) % 2 == 0: - return -1 - else: - return 1 - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/Spectrum.py b/Pmw/Pmw_1_2/demos/Spectrum.py deleted file mode 100644 index cfef9791..00000000 --- a/Pmw/Pmw_1_2/demos/Spectrum.py +++ /dev/null @@ -1,166 +0,0 @@ -title = 'Color spectrum demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import string -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - parent = Tkinter.Frame(parent) - parent.pack(padx=10, pady=10, fill='both', expand=1) - self.width = 350 - self.height = 250 - self.canvas = Tkinter.Canvas(parent, - width = self.width, height = self.height) - self.canvas.grid(row = 0, column = 0, columnspan = 2, sticky = 'news') - - self.numColors = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Number of colors:', - entry_width = 5, - validate = 'numeric', - command = Pmw.busycallback(self.execute)) - self.numColors.grid(row = 1, column = 0, sticky = 'ew') - - self.correction = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Correction:', - validate = 'real', - entry_width = 5, - command = Pmw.busycallback(self.execute)) - self.correction.grid(row = 1, column = 1, sticky = 'ew') - - self.saturation = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Saturation:', - validate = 'real', - entry_width = 5, - command = Pmw.busycallback(self.execute)) - self.saturation.grid(row = 2, column = 0, sticky = 'ew') - - self.intensity = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Intensity:', - validate = 'real', - entry_width = 5, - command = Pmw.busycallback(self.execute)) - self.intensity.grid(row = 2, column = 1, sticky = 'ew') - - self.extraOrange = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Emphasize orange (0 or 1):', - validate = {'validator' : 'numeric', 'min' : 0, 'max' : 1}, - entry_width = 5, - command = Pmw.busycallback(self.execute)) - self.extraOrange.grid(row = 3, column = 0, sticky = 'ew') - - self.text = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Text:', - entry_width = 20, - command = Pmw.busycallback(self.execute)) - self.text.grid(row = 4, column = 0, sticky = 'ew') - - self.brightness = Pmw.EntryField(parent, - labelpos = 'w', - label_text = 'Brightness:', - validate = 'real', - entry_width = 5, - command = Pmw.busycallback(self.execute)) - self.brightness.grid(row = 3, column = 1, sticky = 'ew') - - self.radiobuttons = Pmw.RadioSelect(parent, - command = Pmw.busycallback(self.radio_cb), - ) - self.radiobuttons.grid(row = 4, column = 1) - self.radiobuttons.add('Use saturation\nand intensity') - self.radiobuttons.add('Use\nbrightness') - - parent.grid_columnconfigure(0, weight = 1) - parent.grid_columnconfigure(1, weight = 1) - parent.grid_rowconfigure(0, weight = 1) - - Pmw.alignlabels((self.numColors, self.saturation, self.extraOrange)) - Pmw.alignlabels((self.correction, self.intensity, self.brightness)) - - # Set initial values for all entries. - self.numColors.setentry('64') - self.correction.setentry('1.0') - self.saturation.setentry('1.0') - self.intensity.setentry('1.0') - self.extraOrange.setentry('1') - self.brightness.setentry('0.7') - self.text.setentry('This is a test') - self.radiobuttons.invoke('Use saturation\nand intensity') - - self.execute() - - def radio_cb(self, value): - self.execute() - - def execute(self): - try: - numColors = string.atoi(self.numColors.get()) - correction = string.atof(self.correction.get()) - saturation = string.atof(self.saturation.get()) - intensity = string.atof(self.intensity.get()) - extraOrange = string.atof(self.extraOrange.get()) - brightness = string.atof(self.brightness.get()) - except ValueError: - self.numColors.bell() - return - - if numColors <= 0: - self.numColors.bell() - return - - self.canvas.delete('all') - - colorList = Pmw.Color.spectrum( - numColors, correction, saturation, intensity, extraOrange) - extent = 360.0 / numColors - - useBrightness = \ - (self.radiobuttons.getcurselection() == 'Use\nbrightness') - - if numColors == 1: - # Special case circle, since create_arc does not work when - # extent is 360. - background = colorList[0] - if useBrightness: - background = Pmw.Color.changebrightness( - self.canvas, background, brightness) - self.canvas.create_oval(10, 10, self.width - 10, self.height - 10, - fill = background, outline = background) - - for index in range(numColors): - start = index * extent - extent / 2 - background = colorList[index] - if useBrightness: - background = Pmw.Color.changebrightness( - self.canvas, background, brightness) - self.canvas.create_arc(10, 10, self.width - 10, self.height - 10, - start = start, extent = extent, - fill = background, outline = background) - - text = self.text.get() - self.canvas.create_text(self.width / 2, self.height / 3, text = text) - self.canvas.create_text(self.width / 2, self.height / 2, text = text) - self.canvas.create_text(self.width / 2, 2 * self.height / 3, text = text) - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/SpeedTest.py b/Pmw/Pmw_1_2/demos/SpeedTest.py deleted file mode 100644 index 589486bb..00000000 --- a/Pmw/Pmw_1_2/demos/SpeedTest.py +++ /dev/null @@ -1,60 +0,0 @@ -title = 'Test of the speed of creating Pmw megawidgets' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import time -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - self.parent = parent - - message = 'This is a test of the time\n' + \ - 'it takes to create 20 Pmw\nEntryField megawidgets.\n' + \ - 'Click on the button to create them.' - w = Tkinter.Label(parent, text = message) - w.pack(padx = 8, pady = 8) - - # Create button to run speed test. - w = Tkinter.Button(parent, - text = 'Create 20 EntryFields', - command = self.createEntries) - w.pack(padx = 8, pady = 8) - - def createEntries(self): - entryTop = Tkinter.Toplevel(self.parent) - - startClock = time.clock() - fields = [] - for num in range(20): - field = Pmw.EntryField(entryTop, - labelpos = 'w', - label_text='*' + ('*' * num), - hull_background = 'lightsteelblue', - label_background = 'lightsteelblue', - hull_highlightbackground = 'lightsteelblue', - label_highlightbackground = 'lightsteelblue', - entry_highlightbackground = 'lightsteelblue', - entry_background = 'aliceblue') - field.pack() - fields.append(field) - - Pmw.alignlabels(fields) - print 'Time to create 20 EntryFields:', \ - time.clock() - startClock, 'seconds' - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/SubClassing.py b/Pmw/Pmw_1_2/demos/SubClassing.py deleted file mode 100644 index f538b59e..00000000 --- a/Pmw/Pmw_1_2/demos/SubClassing.py +++ /dev/null @@ -1,128 +0,0 @@ -title = 'More examples of subclassing' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class ExtraMethods(Pmw.EntryField): - - # How to subclass a Pmw megawidget when you only want to add or - # override methods. - - def doubletext(self): - self.setvalue(self.getvalue() + ' ' + self.getvalue()) - -class OverrideInit(Pmw.EntryField): - - # How to subclass a Pmw megawidget when you want to define - # a new __init__ method. - - def __init__(self, textToAdd, parent = None, **kw): - self._textToAdd = textToAdd - apply(Pmw.EntryField.__init__, (self, parent), kw) - - def addtext(self): - self.setvalue(self.getvalue() + ' ' + self._textToAdd) - -class DefaultOptions(Pmw.EntryField): - - # How to subclass a Pmw megawidget when you only want to set - # existing options to new default values. - - def __init__(self, parent = None, **kw): - kw['label_foreground'] = 'blue' - kw['entry_background'] = 'white' - apply(Pmw.EntryField.__init__, (self, parent), kw) - -class NewOptions(Pmw.EntryField): - - # How to subclass a Pmw megawidget when you want to add new options. - - def __init__(self, parent=None , **kw): - - # Define the megawidget options. - optiondefs = ( - ('backgrounds', None, self._backgrounds), - ) - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.EntryField.__init__(self, parent) - - # Check keywords and initialise options. - self.initialiseoptions() - - def _backgrounds(self): - background = self['backgrounds'] - Pmw.Color.changecolor(self.component('hull'), background) - -class Demo: - def __init__(self, parent): - # Create and pack the megawidgets. - self._extraMethod = ExtraMethods(parent, - labelpos = 'w', - label_text = 'Sub class with extra method:', - value = 'Hello' - ) - self._overrideInit = OverrideInit('Again', parent, - labelpos = 'w', - label_text = 'Sub class with new __init__ method:', - value = 'Hello' - ) - self._defaultOptions = DefaultOptions(parent, - labelpos = 'w', - label_text = 'Sub class with new default options:', - value = 'Hello' - ) - - self._newOptions = NewOptions(parent, - labelpos = 'w', - label_text = 'Sub class with new option:', - value = 'Hello', - backgrounds = 'white', - ) - - entries = (self._extraMethod, self._overrideInit, - self._defaultOptions, self._newOptions) - - for entry in entries: - entry.pack(fill='x', expand=1, padx=10, pady=5) - Pmw.alignlabels(entries) - - bb = Pmw.ButtonBox(parent) - bb.add('Double text', command = self._doubleText) - bb.pack() - bb.add('Add text', command = self._addText) - bb.pack() - bb.add('White', command = self._changeColorWhite) - bb.pack() - bb.add('Green', command = self._changeColorGreen) - bb.pack() - - def _doubleText(self): - self._extraMethod.doubletext() - - def _addText(self): - self._overrideInit.addtext() - - def _changeColorWhite(self): - self._newOptions.configure(backgrounds = 'white') - - def _changeColorGreen(self): - self._newOptions.configure(backgrounds = 'green') - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/TextDialog.py b/Pmw/Pmw_1_2/demos/TextDialog.py deleted file mode 100644 index adec8214..00000000 --- a/Pmw/Pmw_1_2/demos/TextDialog.py +++ /dev/null @@ -1,75 +0,0 @@ -title = 'Pmw.TextDialog demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create the dialog. - dialog = Pmw.TextDialog(parent, scrolledtext_labelpos = 'n', - title = 'My TextDialog', - defaultbutton = 0, - label_text = 'Lawyer jokes') - dialog.withdraw() - dialog.insert('end', jokes) - dialog.configure(text_state = 'disabled') - - # Create button to launch the dialog. - w = Tkinter.Button(parent, text = 'Show text dialog', - command = dialog.activate) - w.pack(padx = 8, pady = 8) - -jokes = """ -Q: What do you call 5000 dead lawyers at the bottom of the ocean? -A: A good start! - -Q: How can you tell when a lawyer is lying? -A: His lips are moving. - -Q: Why won't sharks attack lawyers? -A: Professional courtesy. - -Q: What do have when a lawyer is buried up to his neck in sand? -A: Not enough sand. - -Q: How do you get a lawyer out of a tree? -A: Cut the rope. - -Q: What is the definition of a shame (as in "that's a shame")? -A: When a bus load of lawyers goes off a cliff. - -Q: What is the definition of a "crying shame"? -A: There was an empty seat. - -Q: What do you get when you cross the Godfather with a lawyer? -A: An offer you can't understand. - -Q. What do lawyers use as contraceptives? -A. Their personalities. - -Q. What's brown and black and looks good on a lawyer? -A. A doberman. - -Q. Why are lawyers buried 12 feet underground? -A. Deep down their good. - -Q. What's the difference between a catfish and a lawyer? -A. One's a slimy scum-sucking scavenger, the other is just a fish. - -""" -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/TextDisplay.py b/Pmw/Pmw_1_2/demos/TextDisplay.py deleted file mode 100644 index 0eadf525..00000000 --- a/Pmw/Pmw_1_2/demos/TextDisplay.py +++ /dev/null @@ -1,78 +0,0 @@ -title = 'Demonstration of how to create a megawidget' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class TextDisplay(Pmw.MegaWidget): - - # Demo Pmw megawidget. - - def __init__(self, parent = None, **kw): - - # Define the megawidget options. - optiondefs = () - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.MegaWidget.__init__(self, parent) - - # Create the components. - interior = self.interior() - - self._text = self.createcomponent('text', - (), None, - Tkinter.Text, (interior,), state = 'disabled') - self._text.pack(side='left', fill='both', expand='yes') - - self._scrollbar = self.createcomponent('scrollbar', - (), None, - Tkinter.Scrollbar, (interior,), command = self._text.yview) - self._scrollbar.pack(side='right', fill='y') - self._text.configure(yscrollcommand = self._scrollbar.set) - - # Check keywords and initialise options. - self.initialiseoptions() - - def display(self, info): - self._text.configure(state = 'normal') - self._text.delete('1.0', 'end') - self._text.insert('1.0', info) - self._text.configure(state = 'disabled') - - def append(self, info): - self._text.configure(state = 'normal') - self._text.insert('end', info) - self._text.configure(state = 'disabled') - -class Demo: - def __init__(self, parent): - # Create and pack the megawidget. - text = TextDisplay(parent, - text_background = 'aliceblue', - text_width = 40, - text_height = 10, - text_wrap = 'none', - ) - text.pack(fill = 'both', expand = 1) - text.display('This is an example of a simple Pmw megawidget.\n\n' + - 'Public attributes of the Tkinter module:\n\n') - for name in dir(Tkinter): - if name[0] != '_': - text.append(' ' + name + '\n') - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/TimeCounter.py b/Pmw/Pmw_1_2/demos/TimeCounter.py deleted file mode 100644 index 7be1eb36..00000000 --- a/Pmw/Pmw_1_2/demos/TimeCounter.py +++ /dev/null @@ -1,40 +0,0 @@ -title = 'Pmw.TimeCounter demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import string -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - self._time = Pmw.TimeCounter(parent, - labelpos = 'w', - label_text = 'HH:MM:SS', - min = '00:00:00', - max = '23:59:59') - self._time.pack(padx=10, pady=5) - - button = Tkinter.Button(parent, text = 'Show', command = self.show) - button.pack() - - def show(self): - stringVal = self._time.getstring() - intVal = self._time.getint() - print stringVal + ' (' + str(intVal) + ')' - - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/demos/WidgetDestroy.py b/Pmw/Pmw_1_2/demos/WidgetDestroy.py deleted file mode 100644 index a62fa28c..00000000 --- a/Pmw/Pmw_1_2/demos/WidgetDestroy.py +++ /dev/null @@ -1,36 +0,0 @@ -title = 'Demonstration of Pmw megawidget destruction' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - # Create and pack an EntryField. - self.entryfield = Pmw.EntryField(parent, - command = self.execute, - value = 'Press to destroy me', - entry_width = 30) - self.entryfield.pack(fill='x', expand=1, padx=10, pady=5) - - self.entryfield.component('entry').focus_set() - - def execute(self): - print 'Return pressed, destroying EntryField.' - self.entryfield.destroy() - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/doc/AboutDialog.gif b/Pmw/Pmw_1_2/doc/AboutDialog.gif deleted file mode 100644 index 2d60dc59f458da079d1f6904951a8caa2a13143b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4081 zcmVM)jv_>2g?X-Q>%MR-&syr4X|C_Q!T-RZa7Zi~kI1BQ z$!t2G&?wZG^eLp+tai)odcWXs_j*;KXy~+h&2G=k7q|siuF2i_ynfGb*)o49bW{oh zhKGoVe~FBZj*pO$l9QB`mY0~Bnwy-Ro}G)6p^|?%CX}O}s;ia(0f(-dv5d2@ua&iw zvAL47ysW^%m#L7%kEL}6sHeis&91(;n7;$O)Q-^7lh={l&fnmM#*X8S$b`zG%;D^t zx9_jD*@n^8(6sWq($w$t@$mNi1+e*at<35P~`AXI+|qA8JaM2K*g5~H?kC%lHa{~L-7$s z$uw!Bq9l_l1iFye&7R_F4)76iP^g;}vlgOCmf+E*QUNNBr!uO?Y*AO9>}czwP`TR5 zy0j{eqE=;C#ahw1m7HL`Kyx9*+m_?ok_De?TO5~UOO8+*r$oH>uTQ^YZT7`EIFyjX zoG&V#$5+kg57XI!109JyZ zPs*9&Re@d27vO^JU1AM;3`R(reDxW4AA-V3sNsejdZ(a;6((p!4pbabq8KQqsN#w& zw&=x)MZidej4sw_Y3H7N_UY%J zfCeh)poFT4=Y@I}s_3GOHtOi3kOq2aX+B13>7|%vs_CY5PHIY`oQ5jusHB$qr>A9r zYU--2w(6>>s8XTotF+c?>#cysx+Si>_Uh}eXzE%iu*4Q?EUm)M{(9`P%r^UIvd%^; z?X;5SN$s`RX4@vT+IH*hw*qhr?zrSOD{i^yrrYbe>bC1HtL(lj@4TAEOYgn-GHP$W z{PyeTzWxR*Fq{AnZ1BNm7L4%142NrN!w^U8FrpGyys*L+XDlzq8lxEinIEqi@|z)# z?54>bf5~ymWupA0%Vxr?X31@iEOW;zvpl9NV)8t*05_i*bj&)FnRC%#evGoxKqtL( z(=P+for|B&4@?d`N5C# z%{k|ihY8ozhIfuR%&1Rpx#|svPWI@8qb+#tji(;D?!5n{N=Ha4Y|j_6My^fUn||Z^Ivl*a4vgTb=qJGnW(tB9%%Gew zsKE|yi-H~u;R8V^!V*q!ZzfD(u1KiD7H*J*E{x#^Q7FS2zKMf26d?|C=)oQGP=h{X znepOuKMMviWkZBh5kb~HwuKF6FpS{REM>jdvF!ecNW5Ow{DwF2Z4qoq%v=>ShQ%xv zFL|UZUGth(JuT|2j2%m(702kgI=ZZibgUR0H73W?eeR3UvtrV|=)@ZIY&pPtdo4~S@s6$#Z`u~khNT272o%Ce;{yM)SJ`mdM1)E_W|DZgRbN|tpB+7fTJMDOX4mgGWRGt;EZNWPMk zJM)^UmexH&5)xR(eAN^eWl6dXlA8J3R5yR;yKAlsn&49ADmUje?Qzd++H2brD@nEd z$+LBA%%|o?r#x&v5|akSRXAJ4%;(K*ivHVM<0#_?Q8A{IZD<6gL^BG$iyqXGc~mGo zzr{>;md=hKHK|E4x5$#V(|M*;Dd1e1(w8psos)bQO;HNdQrdKJFJq%i+%}~PircNCxNwxXCjbap}6P>GFt0yyQa z#<$_Ka+DpcJ2l5j#7eH4U9(+Cl^Qm0HZ`v~W!O%s_or!+j83jC*He#G*!QuKPlohU zY|kmM*&2&=Mf|3na;sZ85f@*+{v{^TlB?V|LN;Sr9U5bawOeg5m!$E->t-2QT}*Ws zTi5LtKefwRutJqz02D62#yixmIgxRji*Ii2$u+})7NDYq<$J$-E&ef$zv9*G9kJ@r zzG_x$e=X?pI6B7yAGclpb?bTsoZY#?Rl1c8qhs$1;A#1{p8*@^TII@9`_6Zu(o8Wu zR|=Py(ks2>o!9BGTHz9_^skj=B6lz8&e5tXyx0;kP`z2bN}`%=mr8h#)VcNp%ZPuL-U!@j(cuBAzeU6Q#ycNcJG5P zyw5R(S=ume$wWfY1s#D#=QL`G;u735PV=e3YIl0#8r8TZaz3N>@(8)7C zScEU2voC z+;!@`C68sVB_)@vlc#r))v1ePAi)K+e+dB(wSfk>V5Tj)ydvF-)WOC!P#8j zXqQRdyuIz;ChFI|!Y!~4#`Bgfe&w}tPot#ttH`lDa*`K#%_7Hm#+OVmU0b`wYNe`; zakt~R%ABY~p1J;2+1X4Es}b8a=PEWyd~J_&+vT{`s*!6-beh+f%1w9Qii@0cr+d!N zFpoM*I}7!j_gLonzV^|3O>U**6{%5=D~+k1$+fdR$vqWpS8?p~sebaLbssv|>0a}6 zBYjVWh5O9Y?)IxUw#IcQvDL+n_`}=%?T{Dq-h(=MzmpwOwe9%i*EnvIyN>f!UOC4{ zpTx7aedC}Py@DMaa@DgK_2CZI--pXY@$p#Tw)d>}kXP>mx0&Av-!G0aDp#zBHsD;0 zsD3TW@!q@m-3%9G7cHJ`_ScFp&GM`lg#hh)#TedT9C{4`!wwtO^$Oh>kFR!2VT z2VEAWfRaag47Pw6*iPmKUK40BT^DypHFb~IQrV?=T*QALSTP|eM;G{Ij`f1^w^Z}D zf)YbJpI2-~_k7VcY$+H$+!sJNNLK>Lc#ouH1o(3X_$eA>JyxcJtT%dum0%aPgsIYm zId*mx_HW3?by636N7!37I6ZvUfwL5ZO<0DlhK30EXl8gwY?yw+G=_2rga;TgUuJ!E z7$*H!D^K`_LL*BJkED`rJSnB{LF=XFAtZI@Mv(b9#LicdC!mFHEZC{X65 zg|TEvspEj&WLLtNEt=>mfyY%+wur&jRU!t9N9AHq7-KQ`e5e?QWo33+w|~@Fis$2m zOonsMNQxe)jrg*Rk>_y*s7caDVZIlJbaYqec!v<9j&?I;ht-RlgpZL_W{o$FyI7A* z$bx3qaHhnC)Fg=6q+Sr%V@-v13>bgeXpeiSK*@NK-jb0TXZw|1W8f*Q7D*Qj&R2#+Fof>U`xGf65i=yX|klDQL@J_VOFCzt<7mkBvF=6Jd{ilvg8xP@^O2XZF(n^_i6vnYZQ)rx8dd&Vf7B^PvH2`hc+mul8l z$A_8H=aWnMm5UdNNC}w9XJQ@Yd(H=aof$sVr-#oHodWYuDyf5j=WPD{!kentS{=w= z?U^p}X_7DJZA65Vk5!c;>0AIBpr@ps1o|%dd7%GkkqTN&2HK$b`JfOgTM{~<qdZUb( zqdIylHrk_;$)i9@EXhIuMtY=3nxsm)q)ghRPWq%!8l_S?rBqs_R(hpanx$I0rCi#j zUTURzf+b=)res>CW_qS*nx<;HrcNTHL;5Q}`ljhQpmI7daayPP;-+}2p?bQf9onbJ z_@#n6rIiM#;Dsx>)IN7QqKI0kbgD;P!lqafsgBB^iW;esTK**jK&b+>sPKZR@Up1_ zkf^+7sfq@wXep|sYCfKdmZ%CVs#>WtI%u!Do3YxdhT31X`aib{YmX{1s=BHd)T_Ug ztJD&#p~|VgYO1WdtHb7F=|-%x_N(*ftl5-c4nujgt5B=36-%p4JE(4pq-oo+ zQX4#x`nGmEwmn<6=F+IRI=7(1x68V)ww9@6>a|Pjr&jp2h--&}ySM|>s*d|FdKWUQo5#lx~QAFI&vQza0h+xy09C&vOBwTa055s jy0n|Sy1To)D+7VB0XoYBG@`o1TfD}5yko!w2><{)c&|}y diff --git a/Pmw/Pmw_1_2/doc/AboutDialog.html b/Pmw/Pmw_1_2/doc/AboutDialog.html deleted file mode 100644 index 8f487d5b..00000000 --- a/Pmw/Pmw_1_2/doc/AboutDialog.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - Pmw.AboutDialog reference manual - - - - -

Pmw.AboutDialog

- -
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 18 May 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/Balloon.gif b/Pmw/Pmw_1_2/doc/Balloon.gif deleted file mode 100644 index e8bc9b81b311bd76bfc2f71652988e1735741b72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4660 zcmc&z`9BnV+x^NmLfJB7xl3i=a!c0KRMyFo$Pz-y+Fe2nV;%d>3}eO&G1jpw+st58 zWJyw%Y-zD?Wh-mu?S7y4`5WHr=X0HNu5&(@p|OFchD#+&E7%7APDDgRd~$rPigSB= z`{?NC!pg$V!Izzbo%D1wZf-$190G%J`}+eZ6hI)L2qwPizs7_z84yMW;86oAs`3=5EU_Q^G3i8{vZI*&&yHLl4NCt!{GpO6@>l=4uJR< zu)YSEOu%3$vR&Q)fC&Ht0HGIoGzBd-R#q6>Rsa8D0qhI#UjtAkfG~<$E^n^?XYUVr z2~8=3jg=E=0!v5vb3>u}!T8SD!jGUqI~1@% z00{_OU;Tm{!$ZV4l{6zHQq6cI1%VSccng3406d^_AY>zCO^GaxJVyY?c92d6+`<43 z(SxyU`U55uF#g1Z3>ipYQ{`sD;S3ij%a{v+or4p`$_s8pfM7EK75o$ZqyuT=$lCLR zo0ZPVoE)4i&Lr^m7Z6}pu8>&P*IM@~!KY*(#tAgxAT=LI3Ik`r@)p2bfSzFc=7VS^ z2Rj1}G3q952K_?cPz1r7?NBBggfZz*xp8E3a|cuD{fCwvg5(`Y2ddnlaviW71Fb_W z;J#LtlwBU7QDs-WkMi-O8$Qy#eenx{RIFy1pE+jquPiUQ4m3Shwj>f zS8;r25hSBJa%U3kyw_xRU13+6#AyNX1c{;^tgL0ZL(j9~H`yxu7)99glD9-nzop3@ z%NdhM-Ke8~A?nL4axX`od@GVq87#d~h{#1Wln+qA~RTE7<)0cF;YZX2fyS*>r&2Or4!XuVBB;d^|kuPGoIA0UD&h?d~p2cQyH?)5% zN#K%zlaTB0TQGK4??3>!HVCzdvn~^LS$)S`pf>UW7PY3~ce47?VL%dE?1b3HK#`G8yGaqs-5 zy!d4b<8Hz-w((@rg3pUqZL7*>ZfZFRBB|ZvjMI%f5~ch{5vSuNM2(9`-iM>Bu~Tib z)lp+5_VW4cFYUkPjLGj*lGzWWt8NTgqcSK*Hn;Lj*`j71EnU)xNQdoWyo( zXhe&nR?%B0d!O-=Hm#1)qt%LePUnmbUD{;x9|-?`^nwBOcJgAK1IDCg1ZD84{-cAR z5b=$oP3z#Wt&IOa0e?wd-_CTJz8G*g`s;$E(l~{Z%QqofF{##mzU%kE{{dbI9F4e%!`N3E0XJ(@XU@zpb!?4;8P8)hC76G>vqo92n;{z}goUS5ysQXlTD zWEITIZ%?JV=QLdjpVqBR>e^gI)ppEts=khkBOzCK-lnuHG+MGfEbac$f4_#Tz}-0C zcRZ{yzOS6SI68p4W-+T$hwbr9uNO?-MK14 zO8!EpxkvTpyRDUN9X55oh|s|-_P6&H*|lX{ED(7$JVtUp#Xq9Oc!mMjR{N5Ex}s0v z)WFGXTJ=|NWXUV>CC#nV4|P-h4rPg>jlp^yL!l3iAsYj{w``RA*axCV?Q=KD8kf0V zrlL0{h`$Wn&d2Egc&O=M%*~upFEZgv`j~JG%KNcVeWd0g6V(HozxA5bp%UPz_+c>l zm4U|IV+k>lp_7)XU7v^fWdg0lT@Smv4YW6sJ=Ba(Tl#ksB~>3Lg%n9^XbA#I{iKY{ z86kTcW1@qA_jz$w1lU%B#y*q6KDZ_4?c1BLbTeGZWp?EDPXw;xrpohVW2Hv{Z{RWC z@0f~z`a86_Z}OjWsh%rRr%U6roR4r|Y+H)+XkBvrd&eLAd{I2IA#0klR+-~eFRCtQ z+viu8WSOSnL_SP@KU9Y6Z>ky$TeW&hXB)r#xH>(5WLH9Voyt#H-Mnrc za`qBy;!DX}^|4djUrUc@_Q$BIojn#RTLJUyOxR$LKlSbFZ1PU4?yZNOWP%(w2Qy{KgeRmYT1U9_Jlmi3x=39WnYT#Sjz3Z zJ^q(<$>nG3$_=S|Lop|+%i1oMpXoZP<(LS`aV;(`xTp@RPqe7QTUosCooj9H{OPji zYU{Y~`5J@6S_{iP{c@;Xbt{45;#{0y9Ak6NJ?Fb|3en+eE|T1*s{XVpXX%GQ@Yz=g z?4=u9&Ln>ubKaW?4dTBKSM-bK2p;?+sYw0eJD(}Hr>Y(iLuT`6FJ&fTtG$XEQxqjc zymX`IZ8Sw==;))soRU?k8ybCIr$sp~7CBnQJ8|in(RMmjQtOi44~!6v7SvM@txkFN zO`qJ~>4Hze@CWhJ9N3+1BjMRZY~PG@lr7mT^;u?X^NgJRZm+;%bx&>YtTJl%jdOK! zPkqa472go!s%7QNeLZ*z+GJjvXb6z!BxJrk0 z2ATPje}xQQ+Ma#K&RrkacF#po!Sp@eP321b(!!af3;huXwxy+tizXVhpkz0dw-QP! z$Iofdvl{*1^8MpQQFa^T`%9#vqH}8enDt0@^@WnSsAXHj2Opn#jou6AU9savjUJou zPd#OQU(J9W{raK09^&_dTlCsQTG$$ne>3y)eftT!l>jok!qTlIREo@;X_tZ0{f8Ag zo#ro;JJYM~31!=>%o{Xu|44EFKHxE)QWc=?>G(Z>+u;#g)6ZnmOY=YlQf|F8kJXXG zwf6?3!Cj7q&clL`@nmT1w{w=ydu^(-(xN73#2*PU-nc$W@s6FBhr}1&`u2SV$g5~d}jC$>nraRw~{C+Rr=hYtVntFo4 z{$9BpPV<_rcM0*j(kU-+Exy1bQ)ZKI!ph;X}k_Mf;o z-KqPJwo?~){L#1h6daeVf$61yVsqUk{@P&Bk^9RxP#{F;&9HKGKK!WL{Ip|X*WyCS(Ds)`u3 zi)zt2lF`zd5yOG!C!iWikg#*IQCj#YQGBF8e59Ifn5I#rB{F6}Lt%S6%1O;>LkO)O ztuuZ1njs#Y)`)H$ir#ICxZx3{(;Z{&5hDzX>9&aygM~URpa-*2da`JAx7~~{TEYl@ zi0F>3nTeg+j`sT);cpa!w2irlj|n!4IROd0v=GOCGhRmxT^1GZ3Q6pZzHmMMLULI| zr%d?Vd_?wWL;ybSqHMU|XpF#MoEcKxV(41bsEGl@Qui+UieKUt!4Tv1pzgB3ckbbd zNY(qL{)X1UZW+l#nqg1eQ5{Bqc`d-kjLr}5q{K8O^XNxB`;a2dnz~>cR1j!WXlT8- zlbYO=Iys!2!It(*6S=YDI)G0*&~)1xO#=yd4vJvaxg44*OF?Xe6!BdkEY_I<#6Ftyq^|cXcr&Fl^sZR36i^vvJ(pB!pCqC zvP5#Q)T~%J0(mj3Bmp0X))ges5iqi_@^r9zw^1g88%qHX&29dcC zWXN9rvEaOAkpkyH<0}v}EEv7{_-V%xxJ0>Bz^mKq9g=6q@d-WT=`lhoCC_k)(7#B& zP9v{!<+>Tl#CvE7_udqdclh#CE^pI;G-!WD4{O$&=_;D-AXmKa5$cL8Jb{QWCKsL_ zFO-Ug+b>;_r;_^ZN`lApT@p%e8W!gnUCWP0A9`!MiuM-Qv)YdrlyM0aaXrI)70E+s zQ~X4T0@_5nZ6a(bN#6?U)9WO!ugo-tLQ_5-O-xHh(a%u(!vdeYl^|aEe zC8wI(x=km{pCc#_MR47_6%E>%Ve)p@GjQY6cGpfY@?!zGf%N z5h@c(^+gF|h`a&OD%HIwRD>9UJ?nu*k#sp}E{L2+$a|VV{??ndaJ$CYy84k9j#O0r z!n0&jzQ(k?dQ%&>ce~cW@X5i^0#4Dw-$!c}M5#niP&16rCMfhHLH9cE2<=0 zJKe;sE{Img+^ZJjCi3aj2-rIci5+T;iq^(aa@NbMOyq0j6si^M9h8zT^o`eD^3EPi z^m#h`{IY%hhrK!uV!fI{y}?Ai7N!1%Si?>GT9f5^{p&bOV#95EgTHly_40GuHw|}n z8eR8|?(8@4+c$dA8y|QJAKPv85o_|*Y2qAf3_vv@iA}-urjUuIu>Gb8v1YVRbF_VP zEUG!4*qlgjPM&B^-EU48qhfTZnf6p1ii#&vbLdpk1T}A;nlDBp>(GkqX(cFH8Ie{_ zr&UhSs`qKNV)SP^^m==GBZ}Tkq|@m1mI->>KD}M6<)uzbhkeUyR7*FprI+5)H__6+ z-!dT9`a!34$i8(%7S%dRY#pb!PENE=?YDjrYx}0tHe=s5hiY3Owk^@yRwmlMD>SmO H0G - - - - Pmw.Balloon reference manual - - - - -

Pmw.Balloon

- -
-
-

Name

-

Pmw.Balloon() - - display "tool tips" for a number of widgets -

- - -
-

Inherits

-Pmw.MegaToplevel
-
-

Description

-

- A balloon megawidget can be used to give short help messages to - the user when they place the mouse over a button or other widget - for a short time. It can also be used to display help messages - for canvas or text items.

- -

One balloon megawidget can be used to display help for many - widgets or items. For each widget or item that requires balloon - help, the bind() or bindtag() method is used to specify the - help text that should be displayed.

- -

The help message is displayed in a popup balloon window when the - mouse remains over the widget or item for a short time. The popup - balloon is withdrawn when the mouse leaves the widget or item, or - any mouse buttons are pressed.

- -

The position of the popup balloon is configurable and may appear - either relative to the widget or item or relative to the position - of the mouse.

- -

The popup balloon is displayed without any window manager - decorations.

- -

The megawidget can cooperate with a Pmw.MessageBar to display a - single-line help message as well as the balloon help.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
activatecommand -
-If this is callable, it will be called whenever the megawidget is - activated by a call to activate(). The default is None.

- - -
- -
deactivatecommand -
-If this is callable, it will be called whenever the megawidget is - deactivated by a call to deactivate(). The default is None.

- - -
- -
initwait -
-The number of milliseconds delay between when the mouse enters a - widget or item and when the popup balloon window should be - displayed. The default is 500.

- - -
- -
master -
-This is used by the activate() method to control whether the - window is made transient during modal dialogs. See the - activate() method. The default is 'parent'.

- - -
- -
relmouse -
-This may be one of 'both', 'x', 'y' or 'none' and - indicates that the top left corner of the popup balloon window - should be placed relative to the current position of the mouse - rather than relative to the bottom left corner of the widget or - item (the default). The positioning may be set for the horizontal - (x) and vertical (y) axes independently. The default is 'none'.

- - -
- -
state -
-This may be one of 'both', 'balloon', 'status' or 'none' - and indicates whether the help message should be displayed in the - popup balloon window, in an associated messagebar (via the - statuscommand option), or both. The default is 'both'.

- - -
- -
statuscommand -
-This specifies a function to call when the mouse enters a widget - or item bound to this balloon megawidget. To configure a - Pmw.MessageBar to display help, set this option to the helpmessage - method of the messagebar. The default is None.

- - -
- -
title -
-This is the title that the window manager displays in the title - bar of the window. The default is None.

- - -
- -
xoffset -
-This specifies the horizontal offset of the position of the left - side of the popup balloon window relative the point determined by - the relmouse option. The default is 20.

- - -
- -
yoffset -
-This specifies the vertical offset of the position of the top of - the popup balloon window relative the point determined by the - relmouse option. The default is 1.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Toplevel.

- - -
- -
label -
-This component displays the text of the help message in the popup - balloon window. By default it is created with a 'lightyellow' - background, a 'black' foreground and is 'left' justified. By default, this component is a Tkinter.Label.

- - -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaToplevel. -

- -
bind(widget, balloonHelp, statusHelp = None)
-Create bindings for widget so that balloon help and/or status - help is displayed when the mouse enters the widget. The balloon - help message is given by balloonHelp and the status help message - is given by statusHelp. If balloonHelp is None, no balloon - is displayed. If statusHelp is not set, it defaults to - balloonHelp. Any previous bindings for this widget are removed.

- - -
- -
clearstatus()
-Clear the text in the associated messagebar by passing None to - the statuscommand function.

- - -
- -
showstatus(statusHelp)
-Set the text in the associated messagebar by passing statusHelp - to the statuscommand function.

- - -
- -
tagbind(widget, tagOrItem, balloonHelp, statusHelp = None)
-Create bindings for the tag or item specified by tagOrItem in - the text or canvas widget so that balloon help and/or status - help is displayed when the mouse enters the tag or item. The - balloon help message is given by balloonHelp and the status help - message is given by statusHelp. If balloonHelp is None, no - balloon is displayed. If statusHelp is not set, it defaults to - balloonHelp. Any previous bindings for this tag or item are - removed.

- - -
- -
tagunbind(widget, tagOrItem)
-Remove the balloon help bindings from the tag or item specified by - tagOrItem in the text or canvas widget.

-

Note that tagunbind() must be called when deleting a canvas - item, so that the popup balloon window can be withdrawn if it was - triggered by the item. (Unfortunately this can not be automated - as is done for widgets since Tk does not support <Destroy> - bindings on canvas items, so there is no way that Pmw.Balloon can - be notified of the deletion of an item.)

- - - -
- -
unbind(widget)
-Remove the balloon help bindings from widget.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create the Balloon.
-        self.balloon = Pmw.Balloon(parent)
-
-        # Create some widgets and megawidgets with balloon help.
-        frame = Tkinter.Frame(parent)
-        frame.pack(padx = 10, pady = 5)
-        field = Pmw.EntryField(frame,
-                labelpos = 'nw',
-                label_text = 'Command:')
-        field.setentry('mycommand -name foo')
-        field.pack(side = 'left', padx = 10)
-        self.balloon.bind(field, 'Command to\nstart/stop',
-                'Enter the shell command to control')
-
-        start = Tkinter.Button(frame, text='Start')
-        start.pack(side='left', padx = 10)
-        self.balloon.bind(start, 'Start the command')
-
-        stop = Tkinter.Button(frame, text='Stop')
-        stop.pack(side='left', padx = 10)
-        self.balloon.bind(stop, 'Stop the command')
-
-        self.suicide = Tkinter.Button(frame, text='Kill me soon!',
-            command = self.killButton)
-        self.suicide.pack(side='left', padx = 10)
-        self.balloon.bind(self.suicide, 'Watch this button disappear!')
-
-        scrolledCanvas = Pmw.ScrolledCanvas(parent,
-                canvas_width = 300,
-                canvas_height = 115,
-        )
-        scrolledCanvas.pack()
-        canvas = scrolledCanvas.component('canvas')
-        self.canvas = canvas
-
-        # Create some canvas items and individual help.
-        item = canvas.create_arc(5, 5, 35, 35, fill = 'red', extent = 315)
-        self.balloon.tagbind(canvas, item, 'This is help for\nan arc item')
-        item = canvas.create_bitmap(20, 150, bitmap = 'question')
-        self.balloon.tagbind(canvas, item, 'This is help for\na bitmap')
-        item = canvas.create_line(50, 60, 70, 80, 85, 20, width = 5)
-        self.balloon.tagbind(canvas, item, 'This is help for\na line item')
-        item = canvas.create_text(10, 90, text = 'Canvas items with balloons',
-                anchor = 'nw', font = field.cget('entry_font'))
-        self.balloon.tagbind(canvas, item, 'This is help for\na text item')
-
-        # Create two canvas items which have the same tag and which use
-        # the same help.
-        canvas.create_rectangle(100, 10, 170, 50, fill = 'aliceblue',
-                tags = 'TAG1')
-        self.bluecircle = canvas.create_oval(110, 30, 160, 80, fill = 'blue',
-                tags = 'TAG1')
-        self.balloon.tagbind(canvas, 'TAG1',
-                'This is help for the two blue items' + '\n' * 10 +
-                    'It is very, very big.',
-                'This is help for the two blue items')
-        item = canvas.create_text(180, 10, text = 'Delete',
-                anchor = 'nw', font = field.cget('entry_font'))
-        self.balloon.tagbind(canvas, item,
-                'After 2 seconds,\ndelete the blue circle')
-        canvas.tag_bind(item, '<ButtonPress>', self._canvasButtonpress)
-        scrolledCanvas.resizescrollregion()
-
-        scrolledText = Pmw.ScrolledText(parent,
-                text_width = 32,
-                text_height = 4,
-                text_wrap = 'none',
-        )
-        scrolledText.pack(pady = 5)
-        text = scrolledText.component('text')
-        self.text = text
-
-        text.insert('end',
-                'This is a text widget with ', '',
-                ' balloon', 'TAG1',
-                '\nhelp. Find the ', '',
-                ' text ', 'TAG1',
-                ' tagged with', '',
-                ' help.', 'TAG2',
-                '\n', '',
-                'Remove tag 1.', 'TAG3',
-                '\nAnother line.\nAnd another', '',
-        )
-        text.tag_configure('TAG1', borderwidth = 2, relief = 'sunken')
-        text.tag_configure('TAG3', borderwidth = 2, relief = 'raised')
-
-        self.balloon.tagbind(text, 'TAG1',
-                'There is one secret\nballoon help.\nCan you find it?')
-        self.balloon.tagbind(text, 'TAG2',
-                'Well done!\nYou found it!')
-        self.balloon.tagbind(text, 'TAG3',
-                'After 2 seconds\ndelete the tag')
-        text.tag_bind('TAG3', '<ButtonPress>', self._textButtonpress)
-
-        frame = Tkinter.Frame(parent)
-        frame.pack(padx = 10)
-        self.toggleBalloonVar = Tkinter.IntVar()
-        self.toggleBalloonVar.set(1)
-        toggle = Tkinter.Checkbutton(frame,
-                variable = self.toggleBalloonVar,
-                text = 'Balloon help', command = self.toggle)
-        toggle.pack(side = 'left', padx = 10)
-        self.balloon.bind(toggle, 'Toggle balloon help\non and off')
-
-        self.toggleStatusVar = Tkinter.IntVar()
-        self.toggleStatusVar.set(1)
-        toggle = Tkinter.Checkbutton(frame,
-                variable = self.toggleStatusVar,
-                text = 'Status help', command = self.toggle)
-        toggle.pack(side = 'left', padx = 10)
-        self.balloon.bind(toggle,
-                'Toggle status help on and off, on and off' + '\n' * 10 +
-                    'It is very, very big, too.',
-                'Toggle status help on and off')
-
-        # Create and pack the MessageBar.
-        messageBar = Pmw.MessageBar(parent,
-                entry_width = 40,
-                entry_relief='groove',
-                labelpos = 'w',
-                label_text = 'Status:')
-        messageBar.pack(fill = 'x', expand = 1, padx = 10, pady = 5)
-
-        # Configure the balloon to display its status messages in the
-        # message bar.
-        self.balloon.configure(statuscommand = messageBar.helpmessage)
-
-    def toggle(self):
-        if self.toggleBalloonVar.get():
-            if self.toggleStatusVar.get():
-                self.balloon.configure(state = 'both')
-            else:
-                self.balloon.configure(state = 'balloon')
-        else:
-            if self.toggleStatusVar.get():
-                self.balloon.configure(state = 'status')
-            else:
-                self.balloon.configure(state = 'none')
-
-    def killButton(self):
-        # Test for old bug when destroying widgets 1) while the
-        # balloon was up and 2) during the initwait period.
-        print 'Destroying button in 2 seconds'
-        self.suicide.after(2000, self.suicide.destroy)
-
-    def _canvasButtonpress(self, event):
-        print 'Destroying blue circle in 2 seconds'
-        self.canvas.after(2000, self.deleteBlueCircle)
-
-    def deleteBlueCircle(self):
-        self.balloon.tagunbind(self.canvas, self.bluecircle)
-        self.canvas.delete(self.bluecircle)
-
-    def _textButtonpress(self, event):
-        print 'Deleting the text tag in 2 seconds'
-        self.text.after(2000, self.deleteTextTag)
-
-    def deleteTextTag(self):
-        self.balloon.tagunbind(self.text, 'TAG1')
-        self.text.tag_delete('TAG1')
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 20 May 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/Blt.html b/Pmw/Pmw_1_2/doc/Blt.html deleted file mode 100644 index 99869840..00000000 --- a/Pmw/Pmw_1_2/doc/Blt.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - Pmw.Blt reference manual - - - - -

Pmw.Blt

- -
-

Name

-

Pmw.Blt - - interface to some BLT widgets and commands

-

- - - -
-

Description

-

- This module contains function interfaces to the BLT busy command - as well as the classes Pmw.Blt.Vector, Pmw.Blt.Graph, - Pmw.Blt.Stripchart and Pmw.Blt.Tabset, which are interfaces to - the vector, graph, stripchart and tabset commands of version 2.4 - of the BLT extension to Tk. The interfaces are complete except - for Pmw.Blt.Vector where several creation options, methods and - operations have not been implemented.

- -

The blt graph and barchart widgets are essentially the same and so - only the graph widget has been ported. The element_create() - method is not implememted for Pmw.Blt.Graph, so instead:

-
  • to create a line element, use the line_create() method and

    - -
  • -
  • to create a bar element, use the bar_create() method.

    - -
- -

To operate on elements, use the element_*() methods, such as - element_bind(), element_activate(), etc.

- -

Note: Full documentation of Pmw.Blt.Graph is available in - A User's Guide to Pmw.Blt - written by Bjørn Ove Thue and Hans Petter Langtangen. - You can also download - the full HTML document - of the guide for local viewing.

- -

- - -
-

Functions

-The following functions are available.

-
-
Pmw.Blt.busy_forget(window)
- - Interface to the BLT busy forget command.

- -

- - -
-
Pmw.Blt.busy_hold(window, cursor = None)
- - Interface to the BLT busy hold command.

- -

- - -
-
Pmw.Blt.busy_release(window)
- - Interface to the BLT busy release command.

- -

- - -
-
Pmw.Blt.haveblt(window)
- - Return true if any commands in the BLT extension are available.

- -

- - -
-
Pmw.Blt.havebltbusy(window)
- - Return true if the BLT busy command is available.

- -

- - -
-
Pmw.Blt.vector_expr(expression)
- - Interface to the BLT vector expr command.

- -

- - -
-
Pmw.Blt.vector_names(pattern = None)
- - Interface to the BLT vector names command.

- -

- - -
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 25 May 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/ButtonBox.gif b/Pmw/Pmw_1_2/doc/ButtonBox.gif deleted file mode 100644 index 402b6b0e22ae9cb51601c6ed8c82bae50a8441a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 964 zcmV;#13UajNk%v~VJQJY0Pz3-|Ns90007z9*@A+CEC2ui04V`M00091l#i*)?GK}z zwAzca-n{z{hT=$;=82~2%C_zc$MQ_q_KoNI&iDSW83>2OqVb4KDwoWr^9hYgr_`$T zI=~D7+^+Wv4vWX+viXcotJmzd`wfq40l>Qb{@Kp){J#I8cMuH z*eE&a5*cAhnW;H~2}qZK6)H-!S(^80@t8G}FAntk$5rY`dBaUG_W?T^&YCZLQ6P4Jv%;-1}W8)SFFMUcrUljlj&nE3p2TKCUqD zmrjA-r?2q7ARa$H_0G|22VvkLgtP4J3MbE@kAe~u-tkvaVh{d|?lcC3XweSE2qDQa zbWjoq#{&TWf%LdzWI~uaRz67i!=`|i-u{VWXD%a9bu=BFgLCwO8~z9H|yYlGNUeOtso`LIiwu^m<;Fn)#DRwa2 zYvsvEV2;a)w~t2wrU;~tEJg^ATmo_S)LtK|m_dzr6{X*G%1zl;hAfeY0A;FGM^3n^kV+R^)E8R7j9w9Dbmmf`VXq zz?wC=*czFEibfSv7b=M6EQkWSkc9VbHk6u3IyflV=EEo? zj%K=HtFXS>PprAjx+G-ZIhNx8fo(Y@=q4i*6Cz;+1Z@m&)UAy5-8MR4usNORu$mvVw2Fo}jwLHUfL$ zZ^5VPYjDD@Y*&`T4lg|B!xC@8@J^pjjIkpTXUwr76<6GG$TWNmK)fcOjB?5>*D mF24+O%rZwKa?Lj1jC0O9@62=0KK~4K&_WMQbkTSe0029c7wV}1 diff --git a/Pmw/Pmw_1_2/doc/ButtonBox.html b/Pmw/Pmw_1_2/doc/ButtonBox.html deleted file mode 100644 index 2075f42f..00000000 --- a/Pmw/Pmw_1_2/doc/ButtonBox.html +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - Pmw.ButtonBox reference manual - - - - -

Pmw.ButtonBox

- -
-
-

Name

-

Pmw.ButtonBox() - - manager megawidget for buttons -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- A button box is a container megawidget which manages a number of - buttons. One of these buttons may be specified as the default and - it will be displayed with the platform specific appearance for a - default button. The buttons may be laid out either horizontally - or vertically.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
orient -
-Initialisation option. Specifies the orientation of the button box. This may be - 'horizontal' or 'vertical'. The default is 'horizontal'.

- - -
- -
padx -
-Initialisation option. Specifies a padding distance to leave between each button in the x - direction and also between the buttons and the outer edge of the - button box. The default is 3.

- - -
- -
pady -
-Initialisation option. Specifies a padding distance to leave between each button in the y - direction and also between the buttons and the outer edge of the - button box. The default is 3.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
frame -
-If the label component has been created (that is, the labelpos - option is not None), the frame component is created to act as - the container of the buttons created by the add() and - insert() methods. If there is no label component, then no - frame component is created and the hull component acts as the - container. By default, this component is a Tkinter.Frame.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
-
-

Dynamic components

-

- Button components are created dynamically by the add() and - insert() methods. By default, the buttons are of type - Tkinter.Button and are created with a component group of - Button.

-

- - - -
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -

- -
add(componentName, **kw)
-Add a button to the end of the button box as a component named - componentName. Any keyword arguments present will be passed to the - constructor when creating the button. If the text keyword - argument is not given, the text option of the button defaults to - componentName. The method returns the component widget.

- - -
- -
alignbuttons(when = 'later')
-Set the widths of all the buttons to be the same as the width of - the widest button. If when is 'later', this will occur when the - interpreter next becomes idle, otherwise the resizing will occur - immediately.

- - -
- -
button(buttonIndex)
-Return the button specified by buttonIndex, which may have any - of the forms accepted by the index() method.

- - -
- -
delete(index)
-Delete the button given by index from the button box. index - may have any of the forms accepted by the index() method.

- - -
- -
index(index, forInsert = 0)
-Return the numerical index of the button corresponding to index. - This may be specified in any of the following forms:

-
name
Specifies the button named name.

- -
-
number
Specifies the button numerically, where 0 corresponds to - the left (or top) button.

- -
-
Pmw.END
Specifies the right (or bottom) button.

- -
-
Pmw.DEFAULT
Specifies the current default button.

- -
-

If forInsert is true, Pmw.END returns the number of buttons rather - than the index of the last button.

- - - -
- -
insert(componentName, beforeComponent = 0, **kw)
-Add a button to the button box as a component named - componentName. The button is added just before the button - specified by beforeComponent, which may have any of the forms - accepted by the index() method. Any keyword arguments present - will be passed to the constructor when creating the button. If - the text keyword argument is not given, the text option of the - button defaults to componentName. To add a button to the end of - the button box, use add(). The method returns the component - widget.

- - -
- -
invoke(index = Pmw.DEFAULT, noFlash = 0)
-Invoke the callback command associated with the button specified - by index and return the value returned by the callback. - Unless noFlash is true, flash the button to - indicate to the user that something happened. - index may have any of the forms accepted by the index() method.

- - -
- -
numbuttons()
-Return the number of buttons in the button box.

- - -
- -
setdefault(index)
-Set the default button to the button given by index. This - causes the specified button to be displayed with the platform - specific appearance for a default button. If index is None, - there will be no default button. index may have any of the - forms accepted by the index() method.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create and pack the ButtonBox.
-        self.buttonBox = Pmw.ButtonBox(parent,
-                labelpos = 'nw',
-                label_text = 'ButtonBox:',
-                frame_borderwidth = 2,
-                frame_relief = 'groove')
-        self.buttonBox.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
-
-        # Add some buttons to the ButtonBox.
-        self.buttonBox.add('OK', command = self.ok)
-        self.buttonBox.add('Apply', command = self.apply)
-        self.buttonBox.add('Cancel', command = self.cancel)
-
-        # Set the default button (the one executed when <Return> is hit).
-        self.buttonBox.setdefault('OK')
-        parent.bind('<Return>', self._processReturnKey)
-        parent.focus_set()
-
-        # Make all the buttons the same width.
-        self.buttonBox.alignbuttons()
-
-    def _processReturnKey(self, event):
-        self.buttonBox.invoke()
-
-    def ok(self):
-        print 'You clicked on OK'
-
-    def apply(self):
-        print 'You clicked on Apply'
-
-    def cancel(self):
-        print 'You clicked on Cancel'
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 24 May 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/Color.html b/Pmw/Pmw_1_2/doc/Color.html deleted file mode 100644 index e004f85e..00000000 --- a/Pmw/Pmw_1_2/doc/Color.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - - - Pmw.Color reference manual - - - - -

Pmw.Color

- -
-

Name

-

Pmw.Color - - contains functions for handling colors and color schemes

-

- - - -
-

Description

-

- This module is a set of functions for manipulating colors and for - modifying the color scheme of an application or a widget. Many of - the functions in this module take or return colors. These values - may represent colors in the following ways:

-
name
a standard color name, eg 'orange' or '#ffa500'

- -
-
rgb
a 3-element sequence of red, green and blue intensities - each between 0.0 (dark) and 1.0 (light), eg [1.0, 0.6, 0.0].

- -
-
hsi
a 3-element sequence (hue, saturation, - intensity). The value of hue is between 0.0 and 2pi - (6.28318) giving a range of colors covering, in order, red, - orange, yellow green, cyan, blue, magenta and back to red. - The value of saturation is between 0.0 (grey) and 1.0 - (brilliant) and the value of intensity is between 0.0 (dark) - and 1.0 (bright).

- -
- -

As used in these functions, the brightness of a color is the - perceived grey level of the color as registered by the human eye. - For example, even though the colors red, blue and yellow have the - same intensity (1.0), they have different brightnesses, 0.299, - 0.114 and 0.886 respectively, reflecting the different way these - colors appear to the eye. The brightness of a color is a value - between 0.0 (dark) and 1.0 (bright).

- -

A color scheme is a set of colors defined for each of the - default color options in the Tk option database. Color schemes - can be used in two ways. Firstly, using Pmw.Color.setscheme(), - the Tk option database can be set to the values in the color - scheme. This will not have any effect on currently existing - widgets, but any new widgets created after setting the options - will have these colors as their defaults. Secondly, using - Pmw.Color.changecolor() the color scheme can be used to change - the colors of a widget and all its child widgets.

- -

A color scheme is specified by defining one or more color options - (one of the defined options must be background). Not all - options need be specified - if any options are not defined, they - are calculated from the other colors. These are the options used - by a color scheme, together with their values if not specified:

-
 background:            (must be specified)
- foreground:            black
- activeForeground:      same as foreground
- insertBackground:      same as foreground
- selectForeground:      same as foreground
- highlightColor:        same as foreground
- disabledForeground:    between fg and bg but closer to bg
- highlightBackground:   same as background
- activeBackground:      a little lighter that bg
- selectBackground:      a little darker that bg
- troughColor:           a little darker that bg
- selectColor:           yellow
- - -

There are many functions in this module. As well as - Pmw.Color.setscheme() and Pmw.Color.changecolor(), some of the - most useful are Pmw.Color.spectrum(), - Pmw.Color.changebrightness() and - Pmw.Color.getdefaultpalette().

- -

- - -
-

Functions

-The following functions are available.

-
-
Pmw.Color.average(rgb1, rgb2, fraction)
- - Return an rgb color fraction of the way "between" the colors - rgb1 and rgb2, where fraction must be between 0.0 and - 1.0. If fraction is close to 0.0, then the color returned - will be close to rgb1. If it is close to 1.0, then the color - returned will be close to rgb2. If it is near 0.5, then the - color returned will be half way between the two colors.

- -

- - -
-
Pmw.Color.bhi2saturation(brightness, hue, intensity)
- - Return the saturation of the color represented by brightness, - hue and intensity.

- -

- - -
-
Pmw.Color.bordercolors(root, colorName)
- - Return a tuple (light, dark) of color names that can be used as - the light and dark border shadows on a widget where the background - is colorName. This is the same method that Tk uses for shadows - when drawing reliefs on widget borders. The root argument is - only used to query Tk for the rgb values of colorName.

- -

- - -
-
Pmw.Color.changebrightness(root, colorName, brightness)
- - Find the hue of the color colorName and return a color of this - hue with the required brightness. If brightness is None, - return the name of color with the given hue and with saturation - and intensity both 1.0. The root argument is only used to - query Tk for the rgb values of colorName.

- -

- - -
-
Pmw.Color.changecolor(widget, background = None, **kw)
- - Change the color of widget and all its child widgets according - to the color scheme specified by the other arguments. This is done - by modifying all of the color options of existing widgets that - have the default value. The color options are the lower case - versions of those described in the color scheme section. Any - options which are different to the previous color scheme (or the - defaults, if this is the first call) are not changed.

- -

For example to change a widget to have a red color scheme with a - white foreground:

- -
 Pmw.Color.changecolor(widget,
-     background = 'red3', foreground = 'white')
- -

The colors of widgets created after this call will not be - affected.

- -

Note that widget must be a Tk widget or toplevel. To change the - color of a Pmw megawidget, use it's hull component. For example:

- -
 widget = megawidget.component('hull')
- Pmw.Color.changecolor(widget, background = 'red3')
- -

- - -
-
Pmw.Color.correct(rgb, correction)
- - Return the "corrected" value of rgb. This can be used to - correct for dull monitors. If correction is less than 1.0, - the color is dulled. If correction is greater than 1.0, the - color is brightened.

- -

- - -
-
Pmw.Color.getdefaultpalette(root)
- - Return a dictionary of the default values of the color options - described in the color scheme section.

- -

To do this, a few widgets are created as children of root, their - defaults are queried, and then the widgets are destroyed. (Tk - supplies no other way to get widget default values.)

- -

Note that root must be a Tk widget or toplevel. To use a Pmw - megawidget as the root, use it's hull component. For example:

- -
 root = megawidget.component('hull')
- Pmw.Color.getdefaultpalette(root)
- -

- - -
-
Pmw.Color.hsi2rgb(hue, saturation, intensity)
- - Return the rgb representation of the color represented by hue, - saturation and intensity.

- -

- - -
-
Pmw.Color.hue2name(hue, brightness = None)
- - Return the name of the color with the specified hue and - brightness. If hue is None, return a grey of the requested - brightness. Otherwise, the value of hue should be as described - above. If brightness is None, return the name of color with - the given hue and with saturation and intensity both 1.0.

- -

- - -
-
Pmw.Color.name2rgb(root, colorName, asInt = 0)
- - Return colorName as an rgb value. If asInt is true, then - the elements of the return sequence are in the range 0 to - 65535 rather than 0.0 to 1.0. The root argument is only - used to query Tk for the rgb values of colorName.

- -

- - -
-
Pmw.Color.rgb2brightness(rgb)
- - Return the brightness of the color represented by rgb.

- -

- - -
-
Pmw.Color.rgb2hsi(rgb)
- - Return a tuple (hue, saturation, intensity) corresponding to - the color specified by the rgb sequence.

- -

- - -
-
Pmw.Color.rgb2name(rgb)
- - Return the name of the color represented by rgb as a string of - the form '#RRGGBB' suitable for use with Tk color functions.

- -

- - -
-
Pmw.Color.setscheme(root, background = None, **kw)
- - Set the color scheme for the application by setting default colors - (in the Tk option database of the root window of root) according - to the color scheme specified by the other arguments. This will - affect the initial colours of all widgets created after the call - to this function.

- -

For example to initialise an application to have a red color - scheme with a white foreground:

- -
 Pmw.Color.setscheme(root,
-     background = 'red3', foreground = 'white')
- -

This function does not modify the colors of already existing - widgets. Use Pmw.Color.changecolor() to do this.

- -

Note that root must be a Tk widget or toplevel. To use the Tk - option database of the root window of a Pmw megawidget, use the - megawidget's hull component. For example:

- -
 root = megawidget.component('hull')
- Pmw.Color.setscheme(root, background = 'red3')
- -

- - -
-
Pmw.Color.spectrum(numColors, correction = 1.0, saturation = 1.0, intensity = 1.0, extraOrange = 1, returnHues = 0)
- - Return a list of numColors different colors making up a - spectrum. If extraOrange is false, the colors are evenly - spaced by hue from one end of the spectrum (red) to the other - (magenta). If extraOrange is true, the hues are not quite - evenly spaced - the hues around orange are emphasised, thus - preventing the spectrum from appearing to have to many cool - hues.

- -

If returnHues is false, the return values are the names of the - colors represented by the hues together with saturation and - intensity and corrected by correction.

- -

If returnHues is true, the return values are hues.

- -

- - -
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 25 May 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/ComboBox.gif b/Pmw/Pmw_1_2/doc/ComboBox.gif deleted file mode 100644 index 31fee77ce66cbde5ec9204d9aa8cc656affa3d77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4556 zcmV;-5i{;bNk%v~VR!-d0P_F<|Ns90008>y*V)PL0c2^OfT*r)>%MR- z&vb2vXkOlY@BhG{aQM^dh{&XJ$!t0)#@usCty-_tC<@E%)&gKkfHekz%jD1b?9FIT z;wY|;R+wo> zP+!4;tsJuJA`TxpZ2K&d1Gq4wMU4LV5M49&aU-*4&q6)}InkrGk|I0K%7;)ROK{_2 zF5}naPf3*?^#Gz26Bp2 zP{pP^d1|dyrEj-ZbzAo6S-2Y2KD83@r(TvA`kKW{RWQsd{!)f5j5h90y)uzzB`lZl zV~PUp25i{S(4@|OA=2w85pa^k07*Usy}I?q)bo_J4l9~-zR^glP@AmM+pcwSIQjnh z4b!A?<`f2FS_AdS$jPIL3nQ?iUz5Q>4S&6J`tjYoJ~Q_+UKSVUFUp%=FGM~2EKVi8 zpMS+Y{U+#L*uT%ezkd<={r)H5fCN4fV1WoGsNf9;F6iKc5RMREgcN>Iz=arQsNsej zcIe@UAciR7h$NP1qKE?|cH)XGw&>!EFs`_WKX42XgKn5vfhX2rL zLIDz7SYdz8__!p0&ZPJc2uj+B+nR6y!drmiZR zL9Dgvs+4EGS=(&O{z^30S`>oHD{_ej+ADFeF_x>b8ekelqLpEn)>Pq+1+A_#YIiLK zztS=oW#@A1#;eJayY97~HAZf!WJ)_NAnlgLn`B#2qW z92j>FLuN1s-Wmb!!u!H2ax72!o81K#2S(d%w&k_)yvQc3ENjHh#xk?HMO=!>zhRK_ zOpoZ4Q@k%jfiR*9%WB+1s$nDRv)ew%^R~Z|RWuPDAE9s%I-@Hkq;B@n_0Z~73`s=XAE_(_?)^7Xln9r{J z?z}UOB<{cmFFb}v+u1sQN&4Xlko#(DgQ@DtpV~c@4#3Z$>vHwO|Omho23s5$)!VzQfOCc z<@!hvB48p=nEj~b*-#117m(0`A(CY^X+TVBZj%LU6rc`+`Au$0Q+wqc;UdK;&Oi3< zo$zejDbopqaI&+D^#i~?_sP$G`tzRv4X8i|N>BkFpquox<~sf9&VoAhp%9IzME)gu z&~x%Hp)RoJJsT>Ne+FQpAPuQVLt0VC$qb_{&?q}O`aUq+^P}y9=}2cv)0*zHr1M1S z3RK$86kbT5GL7j=-4|4w8uh3m#cAVac!yDFQewaSCrevOfTHT5s#SFq(iR;6{E;sfecg-TeN z234+9g)3q4%2=9?6;`1-m1HAJ#mPdwJA<$m&RP{aDXOS+WqSO3oU$n>7dGM5@ zPK~luGcnX}F7eR9!-ncW<`*j~&Z>C5j#Aq|)2QZjdmAlivZ|Ih&bmjiGdwH}d&$tr zer<1}H>v!rwxi z!NqNuaH8MY=tpn4fWIKjp^N$HP;WM5vu<^DV;$AmS&eil=BwWsce2PjdPR z4EMmJU$Vw;-0V@$sY6_kGuP0aTiHK9`p-UH!~S37X}+#G`7>>Pz5Cqme6>yS=YJ~) zfSw?L{iky1XMlZ>dkI){X(x3QW_AOpfE0*$OjUOe_;p6dfP4phw3lefbYK|efn-*J z>o$VFg@6)>V;2a5&XTjzOfx$xEtk%gz}ej+JbYkwt8F` za_#4a)yHnKS0E@Tf+V zC;|A131Whj#*A-+hL%=M{1}h~xqtuRigwgPICpc?u!h)2j#O6&qZWVyf{;q69o4pb z%fdPXIYhAL3l7O17HJdVAuzqCk5F}ryyz9i#E8R?D#fvoig#`1IEj5&T^h-V@yJ@S z2zmC>dgm~0OxT1w$p<4jaljJ(6ye8;@OO(00)FiUN5(*wWQl85sZceUi)twx36T|Ic$bO* zm&l|`QK=24vWj*YiD4dI1oQtVqmcVi3o>2`G%D!iv$WE5*kXW^qhorq3~vX4KtR1c%SEXp4(`L ziG-M=$&nYDUD(ozzX*t0>6TV-l=Vq7*>auEwv;v6dpBB`AgZH?0ie@jS%V3rTgQnJ zr;1XFqZ7&`)46z6H=`}16>V9IcnEuOXqNx^p-3vG@|c-lm`BK0b12$<-KlezDJSxI zAH;chWO|%imz_zrow*o+(b;jAX^el`XvQh1*jbLb8GO5$Yc?29j{2xI!lL1Lj^mi0 zuoYyOT2m#JsQw|yc794<`jn}nT3UhnsXlUCqnfG@wW*TYj=~A3mWrw)HDjuZTdb;_ z=t-&48LKtLRkiA0x2m1F>Z#>;O2>6u`z2Jq%3rkltBn<`dpfLrTCAWNT8TwhaRpk- z<*ergtsSPDvI%#*%3QP6T>5oi+-hFlnr@vst>|d1ibbxr!-uFtiuwO5R$3M;58 zuh)vM-_@-4npdStt*08Vp7pO(^;H5put$Zje7dL~2(O1#vDs>0A;w=0%UBRAtrB~J zjk;X;6=Do4P7S-Unp&v)nk=CzQ74PCLZ-3?%dZoau`ruk9owSB`mWU)Q8s(Cwkoqc zd$2&e{;@ebsXJS##=2!p+q6#mv``zhR3@}ad#Lo-s`mJ?{b;G{h_&E4fAr^adit%3 z8m`WGij>!$1v|7)ngr@Grx?enF{rDsinj0BpKvQdYg@HJx{?n{SrNf~(J^v)D+3B9 zA_TarJ*lBSxk9x;xWhPKBa*mvi>93@evT-WT8KB9#ZQz=sErwK4LYQ#x0l*AT%Eg5 zpF5j&YodT=q<^EhEBFed~ zrCGzvw{1I$qa>Pqd4Ja7UXklI0JXZ}I;cTsq0Q^L&#Smr`vrx2a>3hEuL`H$zTPXYu(ZAT%ev*etNn|=>kGj3d$j>Xz;vs>0Sv1H>{`tY9Q&WRts#v(M!Px_`4Q2rsxJ)T3cl9nVRqj!g^GBSkOyaAb+N5w`-cF zz({xtiYlZSa}Bw?=dnm+OF`Uwww4=h$t#PWQ4lFglzGcZVFtwiE5ShupC_5bAPT!& zsiHf&P9641Pb|byjFWajqj4n0X{f^j+M(F9P_M+r5$wg$tGt~iy4DG!Ly@CPtj2xh zNL}2TLrf`goV$%^h^baWtl?bFkP5aj0AuF7&hOMc?)=Wc!_M-&JMdi3_6#Hu0028ngA!T* diff --git a/Pmw/Pmw_1_2/doc/ComboBox.html b/Pmw/Pmw_1_2/doc/ComboBox.html deleted file mode 100644 index 0be8d68c..00000000 --- a/Pmw/Pmw_1_2/doc/ComboBox.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - Pmw.ComboBox reference manual - - - - -

Pmw.ComboBox

- -
-
-

Name

-

Pmw.ComboBox() - - dropdown or simple combination box -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- A combobox contains an entry field and an associated scrolled - listbox. When an item in the listbox is selected, it is displayed - in the entry field. Optionally, the user may also edit the entry - field directly.

- -

For a simple combobox, the scrolled listbox is displayed beneath - the entry field. For a dropdown combobox (the default), the - scrolled listbox is displayed in a window which pops up beneath - the entry field when the user clicks on an arrow button on the - right of the entry field. Either style allows an optional label.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
autoclear -
-Initialisation option. If both autoclear and history are true, clear the entry field - whenever <Return> is pressed, after adding the value to the - history list. The default is 0.

- - -
- -
buttonaspect -
-Initialisation option. The width of the arrow button as a proportion of the height. The - height of the arrow button is set to the height of the entry - widget. The default is 1.0.

- - -
- -
dropdown -
-Initialisation option. Specifies whether the combobox should be dropdown or simple. The default is 1.

- - -
- -
fliparrow -
-Initialisation option. If true, the arrow button is draw upside down when the listbox is - being displayed. Used only in dropdown megawidgets. The default is 0.

- - -
- -
history -
-Initialisation option. When <Return> is pressed in the entry field, the current value - of the entry field is appended to the listbox if history is - true. The default is 1.

- - -
- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
listheight -
-Initialisation option. The height, in pixels, of the dropdown listbox. The default is 200.

- - -
- -
selectioncommand -
-The function to call when an item is selected. - If this function takes a long time to run, and you want the entry - field to be updated quickly, call update_idletasks() at the - beginning of the function. Alternatively, wrap the function using - Pmw.busycallback(). The default is None.

- - -
- -
sticky -
-Initialisation option. The default is 'ew'.

- - -
- -
unique -
-Initialisation option. If both unique and history are true, the current value of the - entry field is not added to the listbox if it is already in the - list. The default is 1.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
arrowbutton -
-In a dropdown combobox, the button to popup the listbox. By default, this component is a Tkinter.Canvas.

- - -
- -
entryfield -
-The entry field where the current selection is displayed. By default, this component is a Pmw.EntryField.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
- -
popup -
-In a dropdown combobox, the dropdown window. By default, this component is a Tkinter.Toplevel.

- - -
- -
scrolledlist -
-The scrolled listbox which displays the items to select. By default, this component is a Pmw.ScrolledListBox.

- - -
-
-

Component aliases

-Sub-components of components of this megawidget -may be accessed via the following aliases.

-
entry -
-Alias for entryfield_entry. -
-
listbox -
-Alias for scrolledlist_listbox. -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -In addition, methods from the following classes -are forwarded by this megawidget. -Methods from Pmw.ScrolledListBox -are forwarded to the -scrolledlist component. -Methods from Pmw.EntryField -are forwarded to the -entryfield component. -Forwarded methods are searched in the order given. -

- -
bbox(index)
-This method is explicitly forwarded to the scrolledlist - component's bbox() method. Without this explicit forwarding, - the bbox() method (aliased to grid_bbox()) of the hull would - be invoked, which is probably not what the programmer intended.

- - -
- -
clear()
-Delete all items from the scrolled listbox and delete all text - from the entry widget.

- - -
- -
get(first = None, last = None)
-This is the same as the get() method of the scrolledlist - component, except that if first is None then - the value of the entry field is returned.

- - -
- -
invoke()
-If a dropdown combobox, display the dropdown listbox. In a simple - combobox, select the currently selected item in the listbox, - call the selectioncommand and return the result.

- - -
- -
selectitem(index, setentry = 1)
-Select the item in the listbox specified by index which may be - either one of the items in the listbox or the integer index of one - of the items in the listbox.

-

If setentry is true, also set the entry field to the selected - item.

- - - -
- -
size()
-This method is explicitly forwarded to the scrolledlist - component's size() method. Without this explicit forwarding, - the size() method (aliased to grid_size()) of the hull would - be invoked, which is probably not what the programmer intended.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        parent.configure(background = 'white')
-
-        # Create and pack the widget to be configured.
-        self.target = Tkinter.Label(parent,
-                relief = 'sunken',
-                padx = 20,
-                pady = 20,
-        )
-        self.target.pack(fill = 'x', padx = 8, pady = 8)
-
-        # Create and pack the simple ComboBox.
-        words = ('Monti', 'Python', 'ik', 'den', 'Holie', 'Grailen', '(Bok)')
-        simple = Pmw.ComboBox(parent,
-                label_text = 'Simple ComboBox:',
-                labelpos = 'nw',
-                selectioncommand = self.changeText,
-                scrolledlist_items = words,
-                dropdown = 0,
-        )
-        simple.pack(side = 'left', fill = 'both',
-                expand = 1, padx = 8, pady = 8)
-
-        # Display the first text.
-        first = words[0]
-        simple.selectitem(first)
-        self.changeText(first)
-
-        # Create and pack the dropdown ComboBox.
-        colours = ('cornsilk1', 'snow1', 'seashell1', 'antiquewhite1',
-                'bisque1', 'peachpuff1', 'navajowhite1', 'lemonchiffon1',
-                'ivory1', 'honeydew1', 'lavenderblush1', 'mistyrose1')
-        dropdown = Pmw.ComboBox(parent,
-                label_text = 'Dropdown ComboBox:',
-                labelpos = 'nw',
-                selectioncommand = self.changeColour,
-                scrolledlist_items = colours,
-        )
-        dropdown.pack(side = 'left', anchor = 'n',
-                fill = 'x', expand = 1, padx = 8, pady = 8)
-
-        # Display the first colour.
-        first = colours[0]
-        dropdown.selectitem(first)
-        self.changeColour(first)
-
-    def changeColour(self, colour):
-        print 'Colour: ' + colour
-        self.target.configure(background = colour)
-
-    def changeText(self, text):
-        print 'Text: ' + text
-        self.target.configure(text = text)
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 1 November 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/ComboBoxDialog.gif b/Pmw/Pmw_1_2/doc/ComboBoxDialog.gif deleted file mode 100644 index 011fde577b4abeabf72ef62d21e9ac014ad054e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3484 zcmV;N4P)|0Nk%v~VcG!f0P_F<|Ns90007z9*}!0T!^6X1Fgt>Rg8zo6b#-+B00000 z00000000000000000000EC2ui0NMcT000F3@W@H4EjH`TyZ>M)jwFed=uw<$>%MR- zPb+$^c&_j2?*G7`a7Zi~kH{plcT`D~(5Q4uty-@@U z>CgFg8rbi6{5j9>`~QG}f`f#GhKGQAgNlN4Pj!osgaHA0l!la-h?;?!nTMX0cAS=? zh=Gi#lB!RS5`?LOqyw{nnzgc~wx+m$x4M44r+TZ2#ea@l2e8MxyqBD{(x0@n(7)Dq zp4!i&)Y#eH;oIZX*}{IY$jyDp>gnvk(bwF3v)JI*mGtHH_@dy>?E^TlpT0w>Dik30 ziqEnLGOR!9THQ5Dr8#>9!zwM9ubW_xhs6r)%F3!txHenTrOI~i z#lGRz0!E5hX=ZZPK#S~bE@bGyh8Y`+dlj-<9WUvyUN?J~Hru#!>z<^Vw&j^wW4rq8 zdbeid$dmIv-nepQ*~DKWN2k2H^|FX^7H@Q8xby4a!;8-zd}?{U7;rEtvL1{3_weJ_ zSVCXE{rmXy>(8PBfdBsh2L34EfCLt3;DHDxsNjMOHt67k5WcYj00LBK;e{AxsNsej zcIe@UAciR7h$NP1Vu=QH*8_zow&>!EFvck3j3%aN*Mv0YsN;@2_86m$W)#4pk3<$} z3c2Q+ zaQfILm2uW-=ZSOPspp;}=E>)ufM)1tpoIQ8XrYMOd8mj1VA$w|k3K4+q)$?6p{0(R zNC~8&#JDM*TDn=HrKDDfDTk+K+N7kXrfTY_8B+S`iJ#8eXQ*_7D60Uw^2+FkuJXt# ztR!MuYKy&+xahC1{tnx$t)7^gNvxZ)I<2agN;_+^+BWL#w$D22E48)SI&QYUmiy|u z=|Wl~uC!(=uDZNN8mWf#(u=OV_Og5KzWGWk@VKq^`>((G-aBus@7^dXvF)(MSTRic(z22K~svVPiEywZ#jIFZp#yc#x)?Qn2#`~IlF~SVfOt8kThJ3QcB;R~+ zupTb^>&iS6?Ci_yZtSzp{z|N|&E9Uvbj&;-opjMCrmQK+EJKa&(^NMbv&T*MeD%ye zpG6AE3;I0Y;eH?>+7hsc^h0c*i0LHcg=(^+%()B3QhOnRafixrPV@i zF4oaXez3s)I!`S)xI4>i_OYPKo#@x2o2hl_^`icz;)G7Fx|OWIF8hxeerW!7`y?$ zm(QVp)r+1u`R2EOA^M41FDU!&yAMByG$uA5rcFC)a6}K}CWfLpOmTwq zn!RLU0JgcUbk0znA7W<y0bOJ>@2SPRtqqGN#Uc$i8qWWHl$s%}Bt%Dusu-rtb1zd` z|5(~l1-3M%vz#eOi|EA9RZge%<0(w%*VFh3)KL*7+)YpVIRUOMqqbA(2RS-UAkMRi zsv>IPU?#&dCRLaWRUub_`p|Mh?yV(7=~$CCIJWH+tqQf_KfCI{ZIY2w(4y#E!}u*D zqL8KjVct@mDpH{yw1#*U9ypoD*O5LJnvvz_G#koTnY#6|UCeBQ9GcC6Iuo=+LTrKz zP+7;KHiDwiX8K8+@U-#A_kxmbbforKv%Z? z*Nx^iu35#(UhM`~w)urrRMqCS{3od-?+=t7S<&sgT}a^ve~ zN*L48a~8CrCr#->Bl^Yw<};UxDd|Vkxzm*nwW!g2X&+~L(ar2Ks5cAfKWF06j$ZYs zXH9E0vpLGD1~a60EookJTGq7=HmyrdEw;*PhW$t_%5x7*wJb~m`?&2Kx? z+t}D{Y@dJa>Rub1;LtvJ!u!qeI{*9HZq9ax;au>0xBAzR#`wD%&ha!qT+zoauC_Z) za)y8Wy{Mk4E=?)QlDj<2Cr@z72mbP!3p?iKp82M2&h!3R<9yFLM>hh7PV}N1{pd(f zy3&`<^rk!g=}?cl)Qx`Yb0@pWHI8lbqKtJIA=Y_Z@4AbWI_9uv5}i#ZyO_<+DeSUX z?O|p+cx!rOxPw{l0GlWWgKYON&K{p#rrY+;=%;>VVrvjO+)dBu+8*e>Ywnx}p3 zrMcR$>mH$l*DEr8|N9YXb#8mj{E2T{{0$vH!XU-{@|#a0vP*ES($6vTslU$8FSecE zkGQ~R&;5LQKl~phetOH_{mXy06!E4XxqXqbj-I6b(c zgKqeSaEM4zNQSsGhjd6JV|a(CWQTglJABxOdw7L_ScZbQPiu%vmxYAewjKau?*F%ha z@{42Fi)0duEVyO(Lydc4jV3WPPCJ4)q;ubdS%~Ht2;S?RbsvxQ>$&kkP1sorsPvl2aswCkq*l zk;s7HqIU#%ks=h4<~Wh!Xi!9yknGrE$LJwBlTsn(lJY2!RJ4pG$&x#?KQ6+LCL)dv zM1n|jQ%oe1+(?qxC^d(NlFE|)k^N|r5`}?e1z1kGM?#5g(@2pnVv!)3lq%_t4umRJ z^OS58lT#^jRauiZ`8SWJkXy-+;niRTR#s^lk|;xyMLAzq<&awGjBE)k4Omxz_mWvz zM`J09yhtPJh?gRwlfZ{g<}xjjQ-U9fl=C=2t$+iBX^@Jdlsj3MUNV`dxC57ImEWkD ziwTV=qaIHXnr4}eq*;BO$%QfrBs4&l_9&WqqL{APjGHKtW%-(1f}6(Yn@Sj)b6A+B zDV(->C!VQ`1X)3tStr0LBCBa8#7URUh@8{8I@Q^n;zNIjxJqlOk>9CGgBc>BIG*IG zm*I$>-&3Bm7)Oa%oRD4^pSwtkheV&;If#CUiu!qkf7qWt@}B^@j{-WNEs}=@8ai{t zo($Tc4$6iOvmX*Vp%hx7S)d{!@CI$Lp&Z(wXkY_2prIZ*q9p2}agd?y(F7K{qAa=} KDOv;(002A0O%uHU diff --git a/Pmw/Pmw_1_2/doc/ComboBoxDialog.html b/Pmw/Pmw_1_2/doc/ComboBoxDialog.html deleted file mode 100644 index e139f11c..00000000 --- a/Pmw/Pmw_1_2/doc/ComboBoxDialog.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - Pmw.ComboBoxDialog reference manual - - - - -

Pmw.ComboBoxDialog

- -
-
-

Name

-

Pmw.ComboBoxDialog() - - selection dialog displaying a list and an entry field -

- - -
-

Inherits

-Pmw.Dialog
-
-

Description

-

- A combobox dialog is a dialog window which displays a list and - an entry field which can be used to prompt the user for a value.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
activatecommand -
-If this is callable, it will be called whenever the megawidget is - activated by a call to activate(). The default is None.

- - -
- -
borderx -
-Initialisation option. The padding to the left and right of the combobox. The default is 10.

- - -
- -
bordery -
-Initialisation option. The padding above and below the combobox. The default is 10.

- - -
- -
buttonboxpos -
-Initialisation option. Specifies on which side of the dialog window to place the button - box. Must be one of 'n', 's', 'e' or 'w'. The default is 's'.

- - -
- -
buttons -
-This must be a tuple or a list and specifies the names on the - buttons in the button box. The default is ('OK',).

- - -
- -
command -
-Specifies a function to call whenever a button in the button box - is invoked or the window is deleted by the window manager. The - function is called with a single argument, which is the name of - the button which was invoked, or None if the window was deleted - by the window manager.

-

If the value of command is not callable, the default behaviour - is to deactivate the window if it is active, or withdraw the - window if it is not active. If it is deactivated, deactivate() - is called with the button name or None as described above. The default is None.

- - - -
- -
deactivatecommand -
-If this is callable, it will be called whenever the megawidget is - deactivated by a call to deactivate(). The default is None.

- - -
- -
defaultbutton -
-Specifies the default button in the button box. If the <Return> - key is hit when the dialog has focus, the default button will be - invoked. If defaultbutton is None, there will be no default - button and hitting the <Return> key will have no effect. The default is None.

- - -
- -
master -
-This is used by the activate() method to control whether the - window is made transient during modal dialogs. See the - activate() method. The default is 'parent'.

- - -
- -
separatorwidth -
-Initialisation option. If this is greater than 0, a separator line with the specified - width will be created between the button box and the child site, - as a component named separator. Since the default border of the - button box and child site is raised, this option does not - usually need to be set for there to be a visual separation between - the button box and child site. The default is 0.

- - -
- -
title -
-This is the title that the window manager displays in the title - bar of the window. The default is None.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
buttonbox -
-This is the button box containing the buttons for the dialog. By - default it is created with the options - (hull_borderwidth = 1, hull_relief = 'raised'). By default, this component is a Pmw.ButtonBox.

- - -
- -
combobox -
-The combobox for the user to enter a value. By default it is - created using the option dropdown = 0. By default, this component is a Pmw.ComboBox.

- - -
- -
dialogchildsite -
-This is the child site for the dialog, which may be used to - specialise the megawidget by creating other widgets within it. By - default it is created with the options - (borderwidth = 1, relief = 'raised'). By default, this component is a Tkinter.Frame.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Toplevel.

- - -
- -
separator -
-If the separatorwidth initialisation option is non-zero, the - separator component is the line dividing the area between the - button box and the child site. By default, this component is a Tkinter.Frame.

- - -
-
-

Component aliases

-Sub-components of components of this megawidget -may be accessed via the following aliases.

-
entry -
-Alias for combobox_entry. -
-
label -
-Alias for combobox_label. -
-
listbox -
-Alias for combobox_listbox. -
-
scrolledlist -
-Alias for combobox_scrolledlist. -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.Dialog. -In addition, methods from the -Pmw.ComboBox class -are forwarded by this megawidget to the -combobox component. -

- -
bbox(index)
-This method is explicitly forwarded to the combobox component's - bbox() method. Without this explicit forwarding, the bbox() - method (aliased to grid_bbox()) of the hull would be invoked, - which is probably not what the programmer intended.

- - -
- -
size()
-This method is explicitly forwarded to the combobox component's - size() method. Without this explicit forwarding, the size() - method (aliased to grid_size()) of the hull would be invoked, - which is probably not what the programmer intended.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create the dialog.
-        self.dialog = Pmw.ComboBoxDialog(parent,
-            title = 'My ComboBoxDialog',
-            buttons = ('OK', 'Cancel'),
-            defaultbutton = 'OK',
-            combobox_labelpos = 'n',
-            label_text = 'What do you think of Pmw?',
-            scrolledlist_items = ('Cool man', 'Cool', 'Good', 'Bad', 'Gross'))
-        self.dialog.withdraw()
-
-        # Create button to launch the dialog.
-        w = Tkinter.Button(parent,
-                text = 'Show combo box dialog',
-                command = self.doit)
-        w.pack(padx = 8, pady = 8)
-
-    def doit(self):
-        result = self.dialog.activate()
-        print 'You clicked on', result, self.dialog.get()
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 18 May 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/Counter.gif b/Pmw/Pmw_1_2/doc/Counter.gif deleted file mode 100644 index 20c33222fcea9225f4a5b5512068c59e6ae36946..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2212 zcmV;V2wV3@Nk%v~VUPiC0P+9;|Ns90007z9*@A+C|G>+cb9w*(00000EC2ui0FVK0 z000C2D7xJKFv>}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI3W* zz-&67(5Q4uty-_xtai)odZo&64j?X@BZIU0MgEcngSdQ7uiNkVynfH``~QG^3T|*~ zhAVAeX>fs!j*pO$l7MetX^V%MC5akw3Z9yw4orh@7@nA-svMjdprEUwqyn?2m$A4R zt+t=3xrVc~7pNcs#>OWB#R|$1%`DF_yAsi_z8BHhzbwI~%oM~Q(a6*o+05tV0_h9Q z>?H3g(+|fC*6sBT=i~bM?F`wDjq|sT;5J&7ycLWW&O^Wn@f_@1XRhLkh$rR&6lnf$ z5h#A>9)<)+^4rLNC_#ceh_F;Yg9{pVm>AMsK8_M|QiO=i9X@3~ahgm?P$rP^GC8=ViTTA9h!9V&c#Yw8a~|dDN22g1E)MITJq65N^JcvFPV-%C+Ocfd$XTXlYB2EznoTRG{oNGz z=+c%iTaG?iD~Y8G2?n3~y8CeR5Ynk<>C!jz2hKHEEj~RxxT~*`J zBJu1u8%gV(R+)Cf{jywm?8KMBKxNH^luiDH){k5mTA1Bj7IsM1Yuk5l+~e@ zP6%YooC!RL7Iflm?WBmCMt%Z5+Lg6RtP!LiyN3`s_CYjZc&P**G#G?0FQjq>8Yru zs%jR4lp3n2vcM{92d~b02&t3gs_U-2_UfypwgxNgu*4Q??6Jru{;TY=%r@)nv(QE> z?X=WZYwfkzW~=SC+;;2jx8Q~=E@7*dYwo$|rt8GGHz@SnVerN)@4WQZYwx}I=Bw|% z^ny?;yZ?Q$P5}fLZ1BMdC#>+o3^(lX!w^R-@x%`+L&(1XBZ5#DX#_y=#~_C+^2j7p z41mRo+?a8ki{d$O0R+S>^UO5YZ1c@H=dAP2JooJL&p_kM1j?P{xiT9qAKEd&K{xI6 z(=!_b_0&`geR9%~8hv!YMZaA2*I-8-K-gqIJv7#1V$9}C^t_oKk6$hmrH08w5a?8% zcnovdd^;_5-+=FYHh>sOy0%;(M(5*3_Z_~Wmn+U)0y}d4insLMGLJ3x-!Ticx#m2B z-uW@1lb$*0oCmIY&4Vk%=T~Z1V4#y&{>dWUw!dYO<0(*%b(3G|eY)txcOJFzneS{m z^32~{JORX~zWVe8v>xD`T0eLDlS9U)*7w{qNKKG`k$+TmBH?9J;!%OOnp46bpZxsK zKd-#}&D$*c{HIgzfAv=*9Pn%uJ2x?|b~1{Rh=7E+1}&&<9OBSg{BsluS};bmSX8_^ z6F>ezPk!~opU&*}!JO?cf71IO;H*cTDj808ebP{UWJsCN%%^b-%1?O~lpx+@P=N5_ zAk#z`Li&l&ghU)6^f)&*)SXa;d}E<%fcHWJLU8_WHaU)4v^YiLprtmE3FBF^=npO; z@Q3c&pp80+LeGtEd3SlE8$DRR!;Fr8pj#dkR~SIo1+g;)#36~gm!S@cZ-x+Zn}Yg- zpFceiagR)g`>1$1nmsXpm@MJ_=%_>^4sVaDlj3_EP{qdG5O>0v-5~{uO6<6j9YA4G zaaeRBN_s7coT+|S44fz-gguqPDRCF7kUAhKq6)p~9cgK1h!}arX}2yU*~{pWGniBx=Icti%#*N9c0Bsg0^J5pH<=Gb45T2Hj3gEY z+)Y5Y^xzUxH^+gV(~_3dBhCuyxfG)FYyRqVSs+8S~zB#m`QyV6u zjLDLU@}z;|6M^plG*XU&G;AMzsnbL%QAe3{e2R==+#qnb25=K|GKJ|ugX%MyDvhLD z(-=!#=2D_M6{JSZ8d8%gk4iP-W$MbRR=3(ZP*D|WxVoyxxJuTtuF7Jr`YMvd!LPQu z^{sG?t6c5nFSRP=S9r~vPCefW;e^(PGMF8?)q#CCMwxPc%c`4O|5EITZdAdmb8&IEf)sF+S=MSuL0qd8$!Ckx8+^{w?NjAKP0S>1DCWHSTh|_#?pn)3=VLQB75P#;s`+ zpwA^wJheE$@N6boG|DOLMsQPb)e<<3TF7~5sHE#85LW4}5jzDL6hoT#zRsE?e2+UA zYSMR>?RC(Vs3TqWl1Q36(w1HR_!L+)27|JM(d}%N-vREoovSo(f{Qf|d13cFFlkbG z5sa)3+j6=TtYKTqd#wq-FE19(iYhZCUJQ;H7cOp2_7pQn8UMJ&NxLzfS|qvcV2Ot< zUT_y1%-t9n=*Y)nZUiEA1Y&&d}YnPy38qDGy`FyjAp?q3dW1d>FFLtuUf9 z7F|+8`m>qF@umUR=|%4r)K(3|r8>*%R#V|qR~|z^xSHDiSvX{;5W;^@Y(2lmWr%ml@TU!SS0029H$6^!! diff --git a/Pmw/Pmw_1_2/doc/Counter.html b/Pmw/Pmw_1_2/doc/Counter.html deleted file mode 100644 index a52595e8..00000000 --- a/Pmw/Pmw_1_2/doc/Counter.html +++ /dev/null @@ -1,455 +0,0 @@ - - - - - - Pmw.Counter reference manual - - - - -

Pmw.Counter

- -
-
-

Name

-

Pmw.Counter() - - entry field with up and down arrow buttons -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- A counter contains an entry field and two arrow buttons to - increment and decrement the value in the entry field. Standard - counting types include numbers, times and dates. A user defined - counting function may also be supplied for specialised counting. - Counting can be used in combination with the entry field's - validation. The components may be laid out horizontally or - vertically.

- -

Each time an arrow button is pressed the value displayed in the - entry field is incremented or decremented by the value of the - increment option. If the new value is invalid (according to the - entry field's validate option, perhaps due to exceeding minimum - or maximum limits), the old value is restored.

- -

When an arrow button is pressed and the value displayed is not an - exact multiple of the increment, it is "truncated" up or down to - the nearest increment.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
autorepeat -
-If true, the counter will continue to count up or down while an - arrow button is held pressed down. The default is 1.

- - -
- -
buttonaspect -
-Initialisation option. Specifies the width of the arrow buttons as a proportion of their - height. Values less than 1.0 will produce thin arrow buttons. - Values greater than 1.0 will produce fat arrow buttons. The default is 1.0.

- - -
- -
datatype -
-Specifies how the counter should count up and down.

-

The most general way to specify the datatype option is as a - dictionary. The kind of counting is specified by the 'counter' - dictionary field, which may be either a function or the name of - one of the standard counters described below. If the dictionary - does not have a 'counter' field, the field defaults to - 'numeric'.

- -

Any other fields in the dictionary are passed on to the counter - function as keyword arguments.

- -

If datatype is not a dictionary, then it is equivalent to - specifying it as a dictionary with a single 'counter' field. - For example, datatype = 'real' is equivalent to - datatype = {'counter' : 'real'}.

- -

The standard counters are:

- -
'numeric'
An integer number, as accepted by string.atol().

- -
-
'integer'
Same as 'numeric'.

- -
-
'real'
A real number, as accepted by string.atof(). This - counter accepts a 'separator' argument, which specifies - the character used to represent the decimal point. The - default 'separator' is '.'.

- -
-
'time'
A time specification, as accepted by - Pmw.timestringtoseconds(). This counter accepts a - 'separator' argument, which specifies the character used to - separate the time fields. The default separator is ':'. - This counter also accepts a 'time24' argument. If this is - true, the time value is converted to a value between - '00:00:00' and '23:59:59'. The default is false.

- -
-
'date'
A date specification, as accepted by - Pmw.datestringtojdn(). This counter accepts a 'separator' - argument, which specifies the character used to separate the - three date fields. The default is '/'. This counter also - accepts a 'format' argument, which is passed to - Pmw.datestringtojdn() to specify the desired ordering of the - fields. The default is 'ymd'. - This counter also accepts a 'yyyy' argument. If this is - false, the year field will be displayed as the year within the - century, otherwise it will be fully displayed. In both cases - it will be displayed with at least 2 digits, using leading - zeroes. The default is false.

- -
-

If the 'counter' dictionary field is a function, then it will be - called whenever the counter is to be incremented or decremented. - The function is called with at least three arguments, the first - three being (text, factor, increment), where text is the - current contents of the entry field, factor is 1 when - incrementing or -1 when decrementing, and increment is the - value of the increment megawidget option.

- -

The other arguments are keyword arguments made up of the fields of - the datatype dictionary (excluding the 'counter' field).

- -

The counter function should return a string representing the - incremented or decremented value. It should raise a - ValueError exception if the text is invalid. In this case the - bell is rung and the entry text is not changed.

- -

The default for datatype is numeric.

- - - -
- -
increment -
-Specifies how many units should be added or subtracted when the - counter is incremented or decremented. If the currently displayed - value is not a multiple of increment, the value is changed to - the next multiple greater or less than the current value.

-

For the number datatypes, the value of increment is a number. - For the 'time' datatype, the value is in seconds. For the - 'date' datatype, the value is in days. The default is 1.

- - - -
- -
initwait -
-Specifies the initial delay (in milliseconds) before a depressed - arrow button automatically starts to repeat counting. The default is 300.

- - -
- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
orient -
-Initialisation option. Specifies whether the arrow buttons should appear to the left and - right of the entry field ('horizontal') or above and below - ('vertical'). The default is 'horizontal'.

- - -
- -
padx -
-Initialisation option. Specifies a padding distance to leave around the arrow buttons in - the x direction. The default is 0.

- - -
- -
pady -
-Initialisation option. Specifies a padding distance to leave around the arrow buttons in - the y direction. The default is 0.

- - -
- -
repeatrate -
-Specifies the delay (in milliseconds) between automatic counts - while an arrow button is held pressed down. The default is 50.

- - -
- -
sticky -
-Initialisation option. The default is 'ew'.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
downarrow -
-The arrow button used for decrementing the counter. Depending on - the value of orient, it will appear on the left or below the - entry field. By default, this component is a Tkinter.Canvas. Its component group is Arrow.

- - -
- -
entryfield -
-The entry field widget where the text is entered, displayed and - validated. By default, this component is a Pmw.EntryField.

- - -
- -
frame -
-If the label component has been created (that is, the labelpos - option is not None), the frame component is created to act as - the container of the entry field and arrow buttons. If there is - no label component, then no frame component is created and the - hull component acts as the container. In either case the border - around the container of the entry field and arrow buttons will be - raised (but not around the label). By default, this component is a Tkinter.Frame.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
- -
uparrow -
-The arrow button used for incrementing the counter. Depending on - the value of orient, it will appear on the right or above the - entry field. By default, this component is a Tkinter.Canvas. Its component group is Arrow.

- - -
-
-

Component aliases

-Sub-components of components of this megawidget -may be accessed via the following aliases.

-
entry -
-Alias for entryfield_entry. -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -In addition, methods from the -Pmw.EntryField class -are forwarded by this megawidget to the -entryfield component. -

- -
decrement()
-Decrement the counter once, as if the down arrow had been pressed.

- - -
- -
increment()
-Increment the counter once, as if the up arrow had been pressed.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Need to use long ints here because on the Macintosh the maximum size
-        # of an integer is smaller than the value returned by time.time().
-        now = (long(time.time()) / 300) * 300
-
-        # Create the Counters.
-        self._date = Pmw.Counter(parent,
-                labelpos = 'w',
-                label_text = 'Date (4-digit year):',
-                entryfield_value =
-                        time.strftime('%d/%m/%Y', time.localtime(now)),
-                entryfield_command = self.execute,
-                entryfield_validate = {'validator' : 'date', 'format' : 'dmy'},
-                datatype = {'counter' : 'date', 'format' : 'dmy', 'yyyy' : 1})
-
-        self._isodate = Pmw.Counter(parent,
-                labelpos = 'w',
-                label_text = 'ISO-Date (4-digit year):',
-                entryfield_value =
-                        time.strftime('%Y-%m-%d', time.localtime(now)),
-                entryfield_command = self.execute,
-                entryfield_validate = {'validator' : 'date', 'format' : 'ymd',
-                        'separator' : '-' },
-                datatype = {'counter' : 'date', 'format' : 'ymd', 'yyyy' : 1,
-                        'separator' : '-' })
-
-        self._time = Pmw.Counter(parent,
-                labelpos = 'w',
-                label_text = 'Time:',
-                entryfield_value =
-                        time.strftime('%H:%M:%S', time.localtime(now)),
-                entryfield_validate = {'validator' : 'time',
-                        'min' : '00:00:00', 'max' : '23:59:59',
-                        'minstrict' : 0, 'maxstrict' : 0},
-                datatype = {'counter' : 'time', 'time24' : 1},
-                increment=5*60)
-        self._real = Pmw.Counter(parent,
-                labelpos = 'w',
-                label_text = 'Real (with comma)\nand extra\nlabel lines:',
-                label_justify = 'left',
-                entryfield_value = '1,5',
-                datatype = {'counter' : 'real', 'separator' : ','},
-                entryfield_validate = {'validator' : 'real',
-                        'min' : '-2,0', 'max' : '5,0',
-                        'separator' : ','},
-                increment = 0.1)
-        self._custom = Pmw.Counter(parent,
-                labelpos = 'w',
-                label_text = 'Custom:',
-                entryfield_value = specialword[:4],
-                datatype = _custom_counter,
-                entryfield_validate = _custom_validate)
-        self._int = Pmw.Counter(parent,
-                labelpos = 'w',
-                label_text = 'Vertical integer:',
-                orient = 'vertical',
-                entry_width = 2,
-                entryfield_value = 50,
-                entryfield_validate = {'validator' : 'integer',
-                        'min' : 0, 'max' : 99}
-        )
-
-        counters = (self._date, self._isodate, self._time, self._real,
-                self._custom)
-        Pmw.alignlabels(counters)
-
-        # Pack them all.
-        for counter in counters:
-            counter.pack(fill='both', expand=1, padx=10, pady=5)
-        self._int.pack(padx=10, pady=5)
-
-    def execute(self):
-        print 'Return pressed, value is', self._date.get()
-
-specialword = 'Monti Python ik den Holie Grailen (Bok)'
-
-def _custom_validate(text):
-    if string.find(specialword, text) == 0:
-        return 1
-    else:
-        return -1
-
-def _custom_counter(text, factor, increment):
-    # increment is ignored here.
-    if string.find(specialword, text) == 0:
-        length = len(text)
-        if factor == 1:
-            if length >= len(specialword):
-                raise ValueError, 'maximum length reached'
-            return specialword[:length + 1]
-        else:
-            if length == 0:
-                raise ValueError, 'empty string'
-            return specialword[:length - 1]
-    else:
-        raise ValueError, 'bad string ' + text
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 24 May 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/CounterDialog.gif b/Pmw/Pmw_1_2/doc/CounterDialog.gif deleted file mode 100644 index dd833420b4fe117f0be2f42498499599840aa5af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2769 zcmV;?3NH0WNk%v~VGIGr0P+9;|Ns90007z9*}!0Tf`WozFgyQ-rvLx|EC2ui01N@f z000C2Xu8~9F3L%(y*TU5yZ;gda)mgaXsWJkJC&YT&U9@XcCPPy@BhG{a7Zi~k2>5C zr$9QN(5Q4utx}s!6GrRmdcWW>Q^U2$vgERO&2GCHuuOb=Rw@Sgyj~yQ`~QG}f`f#G zhKGoWii?bSeT9#NaWW!?k&T#{0|A_!ft;HGf}n<^ny09Lmx8N-lV}E(m8rC)qIjlz zpt-fZzKgAZ!K!t`e#XDGrlg&>ySI7I&!N$x)6=-t(8=7$e6y0p;Dg@Wr_0*e)V$4} z?&tvzLyOJ-*9;SBA60WP~X`wo1^ByWR_-mEF0s0(`!-M|g zm^gkH{}J3sF%>#_@z_Db#xkNqY9)JFB>0bHtc)751mq}eB)^!nPO5}ittdp8*AyNF zN~_h)nm>7BggWLC51%2KY7(k6ogS_d<-JT=Pb(&;ICEybm=<6`j3mu6LRjtS(6C4& zF2yD{Q?RsH^(dLKuWDRkQTr-R#A{U9#faWY{+QL(VaS+^5(Tt0bE3(KE$akb*|X_p zg;1ORe3`1O(X9)wo=uw~>DNqV3itpdRgA0eSr1)+46zyAOB1c;N~ ze*_k2;DHDxsNjP31qj=K3`Qv7gcMe2;d~An2H}MqcIe@UAi9?!B^!ol;)y7xxZj9b zl&Ip1FvfTyi%PgCFDE+K=Q}qb3qnq7?&+tG zef}w^jDZenXo`g%swjwwF6!uojTVSd025LgqNNLR0w1PgMoJ*3^nrRGrlN9Ks-*6b z8sVuPdio!$@4+gcs+Te-s;ma$nx%lIZYn@0>NOKAu)+Sysj!q1{yVIusTxabvA-HS z?0U&EyR53#QcJ9|&L&$dv)Kx(ZMN5z+o7xeoeHj{q_XR7tlCa1?Y!)*3oW$vMmul5 z`L@Szv-rNN@4wUnysxfa@_Hdc1vmWcz`ouKal`ditS`P4vup9O5?hS1zYb?CvBtAf zeDSUi_6l#v*Mb}I$?l5l@x&irOme{Ds=KklH`B_nxgd{xuEG}T%<{=5d(1J?2GdNl z&pS6g^UWgLeDtQbnvC#)==NuH&82?5w5(%CZ8gjtr!6$oP~S`S%T=o_Vb}b9{j|Vh zZ!GZC^1AGH-*~?r@4h_$9dO?>yS+Ec8k+j^(g$11s-}?s%gpz(PlwE{%#$k{wzp^7 zyg9e^#=JGxL_ey!iFB{-I)SafF8hk9&u)8!vEQz{e7R2v>*-0C%(UDJ0?&Hwc4key z@bwAKHr(_5Jp7HlOR4su_<9d63*v^(NdD`r!x-IF% z8~>sBw(51rcdM|WrvmEwd zw7^Vx&TJ1{o6_{AL9}(tZx)o>!^mbp>LD*jesdrMMHn}yHPD6*+}_I|2RHk*>V+^| z8wEocG!wG$YDgSj-X?fCKmqYZV*_9e2Zlfl0YV3nb3@;G^a_;YFhJ} z*vw`&VW-SL<|jSm`4s`iNzQVb^PK2Rr#jck&UU)be;%42iTZP)@|&oA zDk=czToj}oUFLf@iXV?kG**N(B}q-%(R-q_r7Cp~OPQz8h~9K?BAw4nON1+l{+>0tGr|Q0{_7tNG&F43_8b@w9 zb!27@DtpM9zN#7(t2NRpP0MPzw}LFLa#asqTSmIOrd6Z+St>NW`q7{PHn4*|VPCI$ z*sLa&tyGoXSsQ!6z{)4G&jb)<$CT8$Vpe{W{i@c)+DXuMRYaprX+!U`RK7CyrJ#DO zTwO~)^%$14vmNPa<9J)JQq{BZ{^2d}VvEz@)~B{N^lNC5yV8RWcZ0rV?tOrH-TL@7 zq}0`^b@#em?IP8=^noshe2TU3ir1nwMJsUC>d@}e=ex&s?_9^*%=r9Pw)CZ~eb=j6 z{XUn!C&g=zE(;xieifMzj$uV&Ix~hkQI31A*-^;Ms6jNlMGArGTBc; zezFUlEM-zIxyo?5GM2d%r2bBH)Lb&PFHyZ!MGq6j7jiW*DeY;r%37EURW*Wc9ZXUeh}Gmh z(o1!HpkVXK*RZQ~u8B>(Tyx0SMSAI_>)cYoGMiA&j`g);By9!(d)pk$wuPYWXk`EA z+jtUpg~+Wyb0<>S)=oF9#|`cmb$dbRZql%yUGFEkyFdBPl^lzBZgo?L-AtvBuI}Aw zYHv5*lIkK23qJ346I*huy`g{qtzaVU2;!eA;=^EP@ChM2aT%8ynmF!bk0)r^r~;Vt z5?OKyoqT!aVL z_Z+}K_mbS_KEex@z2XPIxMM-6_4qk`+H96_*h3|8q=|LkcyFG>33fQ96Yjo$Z*Jtz zJ@|ADoZtXA`+_FlzA{qof8qKd=--~39}7O}c~rfESkLXyZF26nR!!7-zQ$IvrPZ-?23;o=8|Losql=V$K{`;06 zP`Xdh_NeW>ehh&<{r8LiuJPZh`t$Do@^*Lh7J!f!cwA#`ptfV@w|W4OfI3Ed252C; z=70|KeBg - - - - Pmw.CounterDialog reference manual - - - - -

Pmw.CounterDialog

- -
-
-

Name

-

Pmw.CounterDialog() - - selection dialog displaying a counter -

- - -
-

Inherits

-Pmw.Dialog
-
-

Description

-

- A counter dialog is a dialog window which displays a counter - which can be used to prompt the user for a value.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
activatecommand -
-If this is callable, it will be called whenever the megawidget is - activated by a call to activate(). The default is None.

- - -
- -
borderx -
-Initialisation option. The padding to the left and right of the counter. The default is 20.

- - -
- -
bordery -
-Initialisation option. The padding above and below the counter. The default is 20.

- - -
- -
buttonboxpos -
-Initialisation option. Specifies on which side of the dialog window to place the button - box. Must be one of 'n', 's', 'e' or 'w'. The default is 's'.

- - -
- -
buttons -
-This must be a tuple or a list and specifies the names on the - buttons in the button box. The default is ('OK',).

- - -
- -
command -
-Specifies a function to call whenever a button in the button box - is invoked or the window is deleted by the window manager. The - function is called with a single argument, which is the name of - the button which was invoked, or None if the window was deleted - by the window manager.

-

If the value of command is not callable, the default behaviour - is to deactivate the window if it is active, or withdraw the - window if it is not active. If it is deactivated, deactivate() - is called with the button name or None as described above. The default is None.

- - - -
- -
deactivatecommand -
-If this is callable, it will be called whenever the megawidget is - deactivated by a call to deactivate(). The default is None.

- - -
- -
defaultbutton -
-Specifies the default button in the button box. If the <Return> - key is hit when the dialog has focus, the default button will be - invoked. If defaultbutton is None, there will be no default - button and hitting the <Return> key will have no effect. The default is None.

- - -
- -
master -
-This is used by the activate() method to control whether the - window is made transient during modal dialogs. See the - activate() method. The default is 'parent'.

- - -
- -
separatorwidth -
-Initialisation option. If this is greater than 0, a separator line with the specified - width will be created between the button box and the child site, - as a component named separator. Since the default border of the - button box and child site is raised, this option does not - usually need to be set for there to be a visual separation between - the button box and child site. The default is 0.

- - -
- -
title -
-This is the title that the window manager displays in the title - bar of the window. The default is None.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
buttonbox -
-This is the button box containing the buttons for the dialog. By - default it is created with the options - (hull_borderwidth = 1, hull_relief = 'raised'). By default, this component is a Pmw.ButtonBox.

- - -
- -
counter -
-The counter for the user to enter a value. By default, this component is a Pmw.Counter.

- - -
- -
dialogchildsite -
-This is the child site for the dialog, which may be used to - specialise the megawidget by creating other widgets within it. By - default it is created with the options - (borderwidth = 1, relief = 'raised'). By default, this component is a Tkinter.Frame.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Toplevel.

- - -
- -
separator -
-If the separatorwidth initialisation option is non-zero, the - separator component is the line dividing the area between the - button box and the child site. By default, this component is a Tkinter.Frame.

- - -
-
-

Component aliases

-Sub-components of components of this megawidget -may be accessed via the following aliases.

-
entry -
-Alias for counter_entryfield_entry. -
-
entryfield -
-Alias for counter_entryfield. -
-
label -
-Alias for counter_label. -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.Dialog. -In addition, methods from the -Pmw.Counter class -are forwarded by this megawidget to the -counter component. -

- -
deleteentry(first, last = None)
-Delete text from the counter's entry widget. An alias for - component('entry').delete().

- - -
- -
indexentry(index)
-An alias for component('entry').index().

- - -
- -
insertentry(index, text)
-Insert text into the counter's entry widget. An alias for - component('entry').insert().

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create the dialog to prompt for the number of times to ring the bell.
-        self.dialog = Pmw.CounterDialog(parent,
-            label_text = 'Enter the number of times to\n' + \
-                    'sound the bell (1 to 5)\n',
-            counter_labelpos = 'n',
-            entryfield_value = 2,
-            counter_datatype = 'numeric',
-            entryfield_validate =
-                {'validator' : 'numeric', 'min' : 1, 'max' : 5},
-            buttons = ('OK', 'Cancel'),
-            defaultbutton = 'OK',
-            title = 'Bell ringing',
-            command = self.execute)
-        self.dialog.withdraw()
-
-        # Create button to launch the dialog.
-        w = Tkinter.Button(parent, text = 'Show counter dialog',
-                command = self.dialog.activate)
-        w.pack(padx = 8, pady = 8)
-
-    def execute(self, result):
-        if result is None or result == 'Cancel':
-            print 'Bell ringing cancelled'
-            self.dialog.deactivate()
-        else:
-            count = self.dialog.get()
-            if not self.dialog.valid():
-                print 'Invalid entry: "' + count + '"'
-            else:
-                print 'Ringing the bell ' + count + ' times'
-                for num in range(string.atoi(count)):
-                    if num != 0:
-                        self.dialog.after(200)
-                    self.dialog.bell()
-                self.dialog.deactivate()
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 18 May 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/Dialog.gif b/Pmw/Pmw_1_2/doc/Dialog.gif deleted file mode 100644 index 34834576d1489beafada8eb081422b810f6a25c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2855 zcmV+?3)u8WNk%v~VRiwc0P+9;|Ns90007z9*}!0TU@$v^f`b2srvLx|EC2ui0CoYQ z000C2Xu8}^F3L%(y*TU5yZ>M)jvho}gn6!P>%MR-&sJJ0X|C_Q!T-RZa7Zi~kI1BQ z$!t2G&?wWF^x>q~tai)odcWW>7I)pKXy~+h&2F>K7kG_K)!5wlynfGj-BEHBcP4iO zhKGoVg^7%fj*pO$l9QB`mY0~Bnwy-Ro|uc0p^<}S29%?ps;jJ*0Rf4xuCTI=wXL|h zx|gYsy^f`Ir<1?C#>beqhRT!7jLyi>(w@bP)rrB^iYC+D-nO@|w6M$Mh_dM9;_B?- zeVK8-4oVgL3&5KWSZgk4D>m!gsMGjSJFeOrhVZEwt)az8#tvjh!tw;!;5UFeP zK2xVuEI7Yt%a#PIw=mqP7~dXF^pft)d~pr0E!a2hxrF5gwljxT^4edD9qw?9RTNjx zsDVmTn0h70*H>XjZta=1DwVXC%0}!f_Gz}ibE~zzYMpSVyHWX`-JALG=g^~Dbq<_* zO)@#C9MLYOyZ7(l!;9C#y-0Z?=f|sG&%V9;_uv;006@RK{rmXy>)+46zyAOK00t=F zfCLt3;DHDxsNjMO1_(zA00h^{poA7`=%I)vswSX4&L^m%kVY!$q?A_bC8J3?I-#YUcIxS;pr(l_m5+vM>Zz!v zD(R?kma6Kju*NE@s1w3Tg`BhIs_U-22EgjAuJ$VIu*6RKtCCh0{;TY=%=US#rpY!d z?X=XI`7Ey0W~=SCS6&+|x8R0bthbwrYwo$ck{d0$?6!-lx^ucK@4TJDOYgn-LTYcm z{Pyc?t$~*7@4y7Nxo^P;CrswS3ODSqmJB~E@xu{MY%#(WU#xMz8E@<*er?`&B>-HK z?6IC5pS-2Xuh7RP%K^CDa>**^nR3lo!W{FK6Rq?*KO0SS zeM`p-_0vZW{iV=W!;G}iPP6QF&tP-iveQzJZFbpKy9sck*ru%|$TP>i^Vf3M9rw>W z=dE?!c)KkQ)YP3zhBU>L*W^=^hYTpS0V_QD+U5N({3 z7Yn7e!^%}Ibug@*|2nw2CK~a0G%KAFYuCDb4YB@NMXcfypQySZW^Q#-ES<BwzuJL{kv|hg6ct^tx&WT<$-52M` z$2>X`j!X2TBmqgifURp@F7(|ESLVDPzHnto^r0p{S;ahxGLye!ptjn$tP1ANgONw9_}kNzOHmvz+L(Rv@8uy>z-0QRjT8Jk?f7wtZ`!__WzNLzmBf z-YK5`>?c42iqC-(RGtPss5=v?P;@f1q5kB2C`7?2(TT3Fq82?LMl)KzecqF!ApMg^ zBN)<>PEP>UW2Z@1>bZJ??xQTV=tg7eH+V(qrZ~;1PItPZl*);xKnUjJiBsrvP=faPgZ154P#8kR_dJ*;9E%h;awwXu+mtYkHm z*vVSM8ItX9=UM>UerULI{w;2ZkQ-O!f{3{da;}Ahdt0Ga)wmv_&r+|u-0B9E zyU+D5P{BK0)+$%KO69J2D}>&pk~h2S-RXNf)Lx{{ccgE!ZG3gA-sA2!r}y1ZeUBPo z4Goy61*YzH&+Fd>`_{qTh46(GoL&aQSHcah@PjoxRrBf>!vCFZh;Le8+>SU(CC1Q! zhnipyix|WicCU0V%;E52xIz?GQA@2pfiKyHmGJELA7E1Dzr^n?QnVEV|=8&2>G-NWr zIYd`}X_jBSGLIL1JukP^SEROdoCUmJJD#pB z^r&S7YE}~(*KJOAr#+qOGuPV0WmfXClSS=#Ra@D(4(_v6eCu6*8QZ%C_lPb%yi7;h zL&Ao&l?5H@V|)AEp8j*Z-_4?JBe~V+Ms~LKP4B7NJI&pO7`&@|(n>oyxGp|-w5Lq) zPqW+DMD{bk3*PX3(|W^_rnE>Y-tTrMyWSWV(WE^dZ;p@q*9q_TmnF{Tbz^tXAj;CL z!~Jb}`#R)GmbU)QcP{asQ}*A9ZgkBVK5!|a9Lwfb`N{!p@(27y| z^PTS?k1&Zw4(`8~h};lNI*gV)@)H#s>T=imt6x2HRfApQi{`TCSFY=JR^H#2&$rYm zkLtCb9O2lp9`(|0-={-+Md_yW=>;$2(A&uEUpG4sPX&}#cYgUdVJQb=K{kL1SbzlRfBIK${3m}T zCVlsIV=$+H7s!A(mU5xhfnW81w&sB%xK+M2f+l!XC3u1-*na!Bdb6d1DhPtO1%oTN zTr_BcyLE#j$bt~)f_~+DuoZ+(B3nNwghuF8p9NiYb%ac4U#!)HP#A?XqFGW{g;w}u zPk4n|xP^|Egkb|if9MvVFZ)7hn9GWn3#!Uzyt{Z F06UbN^OXPq diff --git a/Pmw/Pmw_1_2/doc/Dialog.html b/Pmw/Pmw_1_2/doc/Dialog.html deleted file mode 100644 index 1e3c8886..00000000 --- a/Pmw/Pmw_1_2/doc/Dialog.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - Pmw.Dialog reference manual - - - - -

Pmw.Dialog

- -
-
-

Name

-

Pmw.Dialog() - - toplevel window with button box -

- - -
-

Inherits

-Pmw.MegaToplevel
-
-

Description

-

- A dialog is a toplevel window composed of a button box and a child - site area. The child site area can be used to specialise the - megawidget by creating other widgets within it. This can be done - by using this class directly or by deriving from it.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
activatecommand -
-If this is callable, it will be called whenever the megawidget is - activated by a call to activate(). The default is None.

- - -
- -
buttonboxpos -
-Initialisation option. Specifies on which side of the dialog window to place the button - box. Must be one of 'n', 's', 'e' or 'w'. The default is 's'.

- - -
- -
buttons -
-This must be a tuple or a list and specifies the names on the - buttons in the button box. The default is ('OK',).

- - -
- -
command -
-Specifies a function to call whenever a button in the button box - is invoked or the window is deleted by the window manager. The - function is called with a single argument, which is the name of - the button which was invoked, or None if the window was deleted - by the window manager.

-

If the value of command is not callable, the default behaviour - is to deactivate the window if it is active, or withdraw the - window if it is not active. If it is deactivated, deactivate() - is called with the button name or None as described above. The default is None.

- - - -
- -
deactivatecommand -
-If this is callable, it will be called whenever the megawidget is - deactivated by a call to deactivate(). The default is None.

- - -
- -
defaultbutton -
-Specifies the default button in the button box. If the <Return> - key is hit when the dialog has focus, the default button will be - invoked. If defaultbutton is None, there will be no default - button and hitting the <Return> key will have no effect. The default is None.

- - -
- -
master -
-This is used by the activate() method to control whether the - window is made transient during modal dialogs. See the - activate() method. The default is 'parent'.

- - -
- -
separatorwidth -
-Initialisation option. If this is greater than 0, a separator line with the specified - width will be created between the button box and the child site, - as a component named separator. Since the default border of the - button box and child site is raised, this option does not - usually need to be set for there to be a visual separation between - the button box and child site. The default is 0.

- - -
- -
title -
-This is the title that the window manager displays in the title - bar of the window. The default is None.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
buttonbox -
-This is the button box containing the buttons for the dialog. By - default it is created with the options - (hull_borderwidth = 1, hull_relief = 'raised'). By default, this component is a Pmw.ButtonBox.

- - -
- -
dialogchildsite -
-This is the child site for the dialog, which may be used to - specialise the megawidget by creating other widgets within it. By - default it is created with the options - (borderwidth = 1, relief = 'raised'). By default, this component is a Tkinter.Frame.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Toplevel.

- - -
- -
separator -
-If the separatorwidth initialisation option is non-zero, the - separator component is the line dividing the area between the - button box and the child site. By default, this component is a Tkinter.Frame.

- - -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaToplevel. -

- -
interior()
-Return the child site for the dialog. This is the same as - component('dialogchildsite').

- - -
- -
invoke(index = Pmw.DEFAULT)
-Invoke the command specified by the command option as if the - button specified by index had been pressed and return the - result. index may have any of the forms accepted by the - Pmw.ButtonBox index() method.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create two buttons to launch the dialog.
-        w = Tkinter.Button(parent, text = 'Show application modal dialog',
-                command = self.showAppModal)
-        w.pack(padx = 8, pady = 8)
-
-        w = Tkinter.Button(parent, text = 'Show global modal dialog',
-                command = self.showGlobalModal)
-        w.pack(padx = 8, pady = 8)
-
-        w = Tkinter.Button(parent, text = 'Show dialog with "no grab"',
-                command = self.showDialogNoGrab)
-        w.pack(padx = 8, pady = 8)
-
-        w = Tkinter.Button(parent, text =
-                    'Show toplevel window which\n' +
-                    'will not get a busy cursor',
-                command = self.showExcludedWindow)
-        w.pack(padx = 8, pady = 8)
-
-        # Create the dialog.
-        self.dialog = Pmw.Dialog(parent,
-            buttons = ('OK', 'Apply', 'Cancel', 'Help'),
-            defaultbutton = 'OK',
-            title = 'My dialog',
-            command = self.execute)
-        self.dialog.withdraw()
-
-        # Add some contents to the dialog.
-        w = Tkinter.Label(self.dialog.interior(),
-            text = 'Pmw Dialog\n(put your widgets here)',
-            background = 'black',
-            foreground = 'white',
-            pady = 20)
-        w.pack(expand = 1, fill = 'both', padx = 4, pady = 4)
-
-        # Create the window excluded from showbusycursor.
-        self.excluded = Pmw.MessageDialog(parent,
-            title = 'I still work',
-            message_text =
-                'This window will not get\n' +
-                'a busy cursor when modal dialogs\n' +
-                'are activated.  In addition,\n' +
-                'you can still interact with\n' +
-                'this window when a "no grab"\n' +
-                'modal dialog is displayed.')
-        self.excluded.withdraw()
-        Pmw.setbusycursorattributes(self.excluded.component('hull'),
-            exclude = 1)
-
-    def showAppModal(self):
-        self.dialog.activate(geometry = 'centerscreenalways')
-
-    def showGlobalModal(self):
-        self.dialog.activate(globalMode = 1)
-
-    def showDialogNoGrab(self):
-        self.dialog.activate(globalMode = 'nograb')
-
-    def showExcludedWindow(self):
-        self.excluded.show()
-
-    def execute(self, result):
-        print 'You clicked on', result
-        if result not in ('Apply', 'Help'):
-            self.dialog.deactivate(result)
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 18 May 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/EntryField.gif b/Pmw/Pmw_1_2/doc/EntryField.gif deleted file mode 100644 index d9eeb8b24c4a2b860b430a9464f38b6a44914915..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2228 zcmV;l2ut@zNk%v~VL1V@0P+9;|Ns90007z9*@A+C|G>+cb9w*(00000EC2ui0677% z000C2D7xJKFv>}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ z$!t2G(5Q4u9SyG7tai)odcWYXcuX#v#Z~8d&2GEj@G~IYywdLrz#N~n^XYnjNPdD; zfgk~iiW>nCjZ=>hgoRRvACUry8kh^5nGK4bnTrmh5upsIrKAd`0)C;IqpF>;lsT3j zoUW%2n5>_jpsA%7zpcc{$jc9~z7o8*Gr1kRwX&_Oo}$OX%E8x)qDc6`czO5pwX>NS2)E0Rh-#+Cu?R+=d@)>&XHMvselo73AOG_#)+}HMXa|eUmwwyxSCYi$XFbim27_8`N(I` zRCsYNJ>)cN7OP(aaV)y?~x9{J;g9{%{ytwh;wQCGG&b+zv=g^}cPfoqM z_3PNPYv0bjyZ7(l!;2qJzP$PK=+moT&%V9;_wbRBoKL^L{rmXy>)+46zy5#x@lg;! z0R$Fk;DHDxsNjMOHt67k5Jo8Bgb#)W-+&ZmsNsejcIe@R09g1Qh6I#o;)y7xsN#w& zw&>!EFvck3j5M;ShluWxSmTZ*Cc@*7Kn5vfi#G;1fsRAM=wp&hHtD2|A&vlyU_aq# zft4{JX<`5=lGNprJ%+L+mrs^yW|BoB;+9Q7=MK zs^X-QvTEt8eqtIAM6%TS){uieP-{sA z?GC^?I;NPa()lQ#$#(1HvN|;@ZCi}hI<8!Em0Ezc><;T{wqd^O?YuvN`xLF`o)ncg z&Q7cDwb&BdsKBd!DKEVU&uH(xBjqb@QFpOK)D1`uOR%c$o_cV?9J{zMS!?bp@=m$p ziWXIFo}ic!T2xvj7P&s_7;D&EXQ z$~DO8r_xMUU82)Q^m>HUeNt^T(^zLcWf5GT>Gjt&hdtuZXtxck+Bp&^-Q0B7ZMWS} zqc`B)eE045-@4^}-hYG_ZusGdC$687j5qH1EC4=A;@E-h;-TD5e zJqJ}Vl=Gna^Oy805HkHQ(U*nTVc1i~l=4aWI&t$?Ivg!O#7kfov_XRtFTqsyf(cgf3M`tp~+45l!LNz7sz^O(p?rZShw%x1CHbG}j=@Xy3>UyLhAz2k9w1 zhTw-(A|Dc?_JQ@e#4r+!j04SA#(!#%6#n<~V@JYxP-|#yRBPO)U*;JBgGw=>ZlvQK z1>sJToveWo=_49Prcw}YZ;KeHU_kw43KYUrl%B~W!w4m@A5$C=p8u6DP}-R^q# zyWkD4c*jfL@|yR&=uNMBnUc-+y7zU}e6M`x>xSVnj-8cbE_d)tIsI;jzmpSUeX>fH zaP?)UMdgZaLH9|(o>8`|;HdKqd|Z2qmY)+j zkgX$!>+B30a>d4ubFItlW&>xs&W^UUb+g`TTl?DB&bGF<&FyY```h3Sx41iy0028z CHi3!& diff --git a/Pmw/Pmw_1_2/doc/EntryField.html b/Pmw/Pmw_1_2/doc/EntryField.html deleted file mode 100644 index 5417f144..00000000 --- a/Pmw/Pmw_1_2/doc/EntryField.html +++ /dev/null @@ -1,545 +0,0 @@ - - - - - - Pmw.EntryField reference manual - - - - -

Pmw.EntryField

- -
-
-

Name

-

Pmw.EntryField() - - entry widget with validation -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- An entry field contains an entry widget with optional validation of - various kinds. Built-in validation may be used, such as - integer, real, time or date, or an external validation - function may be supplied. If valid text is entered, it will be - displayed with the normal background. If invalid text is entered, - it is not displayed and the previously displayed text is restored. - If partially valid text is entered, it will be displayed with a - background color to indicate it is in error. An example of - partially valid real text is '-.', which may be the first two - charactes of the valid string '-.5'. Some validators, such as - date, have a relaxed interpretation of partial validity, which - allows the user flexibility in how they enter the text.

- -

Validation is performed early, at each keystroke or other event - which modifies the text. However, if partially valid text is - permitted, the validity of the entered text can be checked just - before it is to be used, which is a form of late validation.

- -

Minimum and maximum values may be specified. Some validators also - accept other specifications, such as date and time formats and - separators.

- -

- - -
-

Validation function return values

-

- Validation is performed by a function which takes as its first - argument the entered text and returns one of three standard - values, indicating whether the text is valid:

- -
Pmw.OK
The text is valid.

- -
-
Pmw.ERROR
The text is invalid and is not acceptable for - display. In this case the entry will be restored to its - previous value.

- -
-
Pmw.PARTIAL
The text is partially valid and is acceptable - for display. In this case the text will be displayed - using the errorbackground color.

-

- - -
- -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
command -
-This specifies a function to call whenever the <Return> key is - pressed or invoke() is called. The default is None.

- - -
- -
errorbackground -
-Specifies the background color to use when displaying invalid or - partially valid text. The default is 'pink'.

- - -
- -
extravalidators -
-This is a dictionary of extra validators. The keys are the names - of validators which may be used in a future call to the - validate option. Each value in the dictionary is a tuple of - (validate_function, stringtovalue_function).

-

The validate_function is used to implement the validation and - the stringtovalue_function is used to convert the entry input - into a value which can be compared with the minimum and maximum - limits. These functions are as described for the validate - option.

- -

If either of these is not given as a function, it is assumed to be - the name of one of the other extra validators or one of the - standard validators. The alias search is performed when the - validate option is configured, not when the extravalidators - option is configured or when the validate function is called.

- -

If the name of one of the extra validators is the same as one of - the standard validators, the extra validator takes precedence. The default is {}.

- - - -
- -
invalidcommand -
-This is executed when invalid text is entered and the text is - restored to its previous value (that is, when the validate - function returns Pmw.ERROR). It is also called if an attempt is - made to set invalid text in a call to setentry(). The default - is self.bell.

- - -
- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
modifiedcommand -
-This is called whenever the text of the entry has been changed - due to user action or by a call to setentry(). The default is None.

- - -
- -
sticky -
-Initialisation option. The default is 'ew'.

- - -
- -
validate -
-Specifies what kind of validation should be performed on the entry - input text.

-

The most general way to specify the validate option is as a - dictionary. The kind of validation is specified by the - 'validator' dictionary field, which may be the name of one of - the standard validators described below, the name of a validator - supplied by the extravalidators option, a function or None. - The default is None.

- -

Any other dictionary fields specify other restrictions on the - entered values. For all validators, the following fields may be - specified:

- -
'min'
Specifies the minimum acceptable value, or None if no - minimum checking should be performed. The default is None.

- -
-
'max'
Specifies the maximum acceptable value, or None if no - maximum checking should be performed. The default is None.

- -
-
'minstrict'
If true, then minimum checking is strictly enforced. - Otherwise, the entry input may be less than min, but will be - displayed using the errorbackground color. The default is true.

- -
-
'maxstrict'
If true, then maximum checking is strictly enforced. - Otherwise, the entry input may be more than max, but will be - displayed using the errorbackground color. The default is true.

- -
-

If the dictionary contains a 'stringtovalue' field, it overrides - the normal stringtovalue function for the validator. The - stringtovalue function is described below.

- -

Other fields in the dictionary (apart from the core fields - mentioned above) are passed on to the validator and - stringtovalue functions as keyword arguments.

- -

If validate is not a dictionary, then it is equivalent to - specifying it as a dictionary with a single 'validator' field. - For example, validate = 'real' is equivalent to /validate = - {'validator' : 'real'}/ and specifies real numbers without any - minimum or maximum limits and using '.' as the decimal point - character.

- -

The standard validators accepted in the 'validator' field are:

- -
'numeric'
An integer greater than or equal to 0. Digits - only. No sign.

- -
-
'integer'
Any integer (negative, 0 or positive) as accepted - by string.atol().

- -
-
'hexadecimal'
Hex number (with optional leading '0x'), as accepted - by string.atol(text, 16).

- -
-
'real'
A number, with or without a decimal point and optional - exponent (e or E), as accepted by string.atof(). This - validator accepts a 'separator' argument, which specifies - the character used to represent the decimal point. The - default 'separator' is '.'.

- -
-
'alphabetic'
Consisting of the letters 'a-z' and 'A-Z'. - In this case, 'min' and 'max' specify limits on the length - of the text.

- -
-
'alphanumeric'
Consisting of the letters 'a-z', 'A-Z' and '0-9'. - In this case, 'min' and 'max' specify limits on the length - of the text.

- -
-
'time'
Hours, minutes and seconds, in the format - 'HH:MM:SS', as accepted by Pmw.timestringtoseconds(). - This validator accepts a 'separator' argument, which - specifies the character used to separate the three fields. - The default separator is ':'. The time may be negative.

- -
-
'date'
Day, month and year, as accepted by - Pmw.datestringtojdn(). This validator accepts a - 'separator' argument, which specifies the character used to - separate the three fields. The default is ':'. This - validator also accepts a 'format' argument, which is passed to - Pmw.datestringtojdn() to specify the desired ordering of the - fields. The default is 'ymd'.

- -
-

If 'validator' is a function, then it will be called whenever - the contents of the entry may have changed due to user action or - by a call to setentry(). The function is called with at least - one argument, the first one being the new text as modified by the - user or setentry(). The other arguments are keyword arguments - made up of the non-core fields of the validate dictionary.

- -

The validator function should return Pmw.OK, Pmw.ERROR or - Pmw.PARTIAL as described above. It should not perform minimum - and maximum checking. This is done after the call, if it returns - Pmw.OK.

- -

The 'stringtovalue' field in the dictionary may be specified as - the name of one of the standard validators, the name of a - validator supplied by the extravalidators option, a function or - None.

- -

The stringtovalue function is used to convert the entry input - into a value which can then be compared with any minimum or - maximum values specified for the validator. If the 'min' or - 'max' fields are specified as strings, they are converted using - the stringtovalue function. The stringtovalue function is - called with the same arguments as the validator function. The - stringtovalue function for the standard number validators - convert the string to a number. Those for the standard alpha - validators return the length of the string. Those for the - standard 'time' and 'date' validators return the number of - seconds and the Julian Day Number, respectively. See - Pmw.stringtoreal(), Pmw.timestringtoseconds() and - Pmw.datestringtojdn().

- -

If the validator has been specified as a function and no - 'stringtovalue' field is given, then it defaults to the standard - python len() function.

- -

If 'validator' is None, no validation is performed. However, - minimum and maximum checking may be performed, according to the - stringtovalue function. For example, to limit the entry text to - a maximum of five characters:

- -
 Pmw.EntryField(validate = {'max' : 5})
- -

The validator functions for each of the standard validators can - be accessed as:

-
 Pmw.numericvalidator
- Pmw.integervalidator
- Pmw.hexadecimalvalidator
- Pmw.realvalidator
- Pmw.alphabeticvalidator
- Pmw.alphanumericvalidator
- Pmw.timevalidator
- Pmw.datevalidator
- - -

Whenever the validate option is configured, the text currently - displayed in the entry widget is revalidated. If it is not valid, - the errorbackground color is set and the invalidcommand - function is called. However, the displayed text is not modified.

- -

The default for validate is None.

- - - -
- -
value -
-Initialisation option. Specifies the initial contents of the entry. - If this text is invalid, it will be displayed with the - errorbackground color and the invalidcommand function will be called. - If both value and entry_textvariable options are specified in - the constructor, value will take precedence. The default is ''.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
entry -
-The widget where the user may enter text. Long text may be - scrolled horizontally by dragging with the middle mouse button. By default, this component is a Tkinter.Entry.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -In addition, methods from the -Tkinter.Entry class -are forwarded by this megawidget to the -entry component. -

- -
checkentry()
-Check the validity of the current contents of the entry widget - and return the result. - If the text is not valid, set the background to errorbackground and - call the invalidcommand function. If there is a variable - specified by the entry_textvariable option, this method should be - called after the set() method of the variable is called. If this - is not done in this case, the entry widget background will not be - set correctly.

- - -
- -
clear()
-Remove all text from the entry widget. Equivalent to setentry('').

- - -
- -
getvalue()
-Return the text displayed by the entry.

- - -
- -
invoke()
-Invoke the command specified by the command option as if the - <Return> key had been pressed and return the result.

- - -
- -
setentry(text)
-Same as setvalue() method.

- - -
- -
setvalue(text)
-Set the contents of the entry widget to text and carry out - validation as if the text had been entered by the user. If the - text is invalid, the entry widget will not be changed and the - invalidcommand function will be called. Return the validity - of text.

- - -
- -
valid()
-Return true if the contents of the entry widget are valid.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create and pack the EntryFields.
-        self._any = Pmw.EntryField(parent,
-                labelpos = 'w',
-                label_text = 'Any:',
-                validate = None,
-                command = self.execute)
-        self._real = Pmw.EntryField(parent,
-                labelpos = 'w',
-                value = '55.5',
-                label_text = 'Real (10.0 to 99.0):',
-                validate = {'validator' : 'real',
-                        'min' : 10, 'max' : 99, 'minstrict' : 0},
-                modifiedcommand = self.changed)
-        self._odd = Pmw.EntryField(parent,
-                labelpos = 'w',
-                label_text = 'Odd length:',
-                validate = self.custom_validate,
-                value = 'ABC')
-        self._date = Pmw.EntryField(parent,
-                labelpos = 'w',
-                label_text = 'Date (in 2000):',
-                value = '2000/2/29',
-                validate = {'validator' : 'date',
-                        'min' : '2000/1/1', 'max' : '2000/12/31',
-                        'minstrict' : 0, 'maxstrict' : 0,
-                        'format' : 'ymd'},
-                )
-        now = time.localtime(time.time())
-        self._date2 = Pmw.EntryField(parent,
-                labelpos = 'w',
-                label_text = 'Date (d.m.y):',
-                value = '%d.%d.%d' % (now[2], now[1], now[0]),
-                validate = {'validator' : 'date',
-                        'format' : 'dmy', 'separator' : '.'},
-                )
-        self._time = Pmw.EntryField(parent,
-                labelpos = 'w',
-                label_text = 'Time (24hr clock):',
-                value = '8:00:00',
-                validate = {'validator' : 'time',
-                        'min' : '00:00:00', 'max' : '23:59:59',
-                        'minstrict' : 0, 'maxstrict' : 0},
-                )
-        self._comma = Pmw.EntryField(parent,
-                labelpos = 'w',
-                label_text = 'Real (with comma):',
-                value = '123,456',
-                validate = {'validator' : 'real', 'separator' : ','},
-                )
-
-        entries = (self._any, self._real, self._odd, self._date, self._date2,
-                self._time, self._comma)
-
-        for entry in entries:
-            entry.pack(fill='x', expand=1, padx=10, pady=5)
-        Pmw.alignlabels(entries)
-
-        self._any.component('entry').focus_set()
-
-    def changed(self):
-        print 'Text changed, value is', self._real.getvalue()
-
-    def execute(self):
-        print 'Return pressed, value is', self._any.getvalue()
-
-    # This implements a custom validation routine.  It simply checks
-    # if the string is of odd length.
-    def custom_validate(self, text):
-        print 'text:', text
-        if len(text) % 2 == 0:
-          return -1
-        else:
-          return 1
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 22 May 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/ExampleDemo.py b/Pmw/Pmw_1_2/doc/ExampleDemo.py deleted file mode 100644 index f7ec1e71..00000000 --- a/Pmw/Pmw_1_2/doc/ExampleDemo.py +++ /dev/null @@ -1,33 +0,0 @@ -title = 'Pmw.EXAMPLE demonstration' - -# Import Pmw from this directory tree. -import sys -sys.path[:0] = ['../../..'] - -import Tkinter -import Pmw - -class Demo: - def __init__(self, parent): - - # Create and pack the EXAMPLEs. - self.widget1 = Pmw.Counter(parent) - self.widget1.setentry('1') - self.widget1.pack() - - self.widget2 = Pmw.Counter(parent, increment = 10) - self.widget2.setentry('100') - self.widget2.pack() - -###################################################################### - -# Create demo in root window for testing. -if __name__ == '__main__': - root = Tkinter.Tk() - Pmw.initialise(root) - root.title(title) - - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy) - exitButton.pack(side = 'bottom') - widget = Demo(root) - root.mainloop() diff --git a/Pmw/Pmw_1_2/doc/Group.gif b/Pmw/Pmw_1_2/doc/Group.gif deleted file mode 100644 index 9c4d8d5e9e41c5b63bf26877c83980f3f5f9fba8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2155 zcmV-x2$c6nNk%v~VXOhs0P+9;|Ns90008j#{{R60+1c5Gf`YIxU;qFBEC2ui0IUJg z000C2NV?qqFv>}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ z$!t2G(5Q4uty-_xtai)odcWYXcuX#v&uD2tvbMC-@VK1ue$*%Txqctc(=UE}f`e9X z0f&YJh;)kzfrOBeOl^mbl$Vy7ijth2I|ZPjqM&~cl%;j23!|*9uCK7Mva__cwzs&s zy1Tr+zQ4f16a@gq#>W7qiioO?mdwrz$kWu-*4NnC+S}aS-rwNi;^XAy=I7|c$rYH< zsnHFOp7Zn@#OiMFoBQr|_5T3vt&?z%ou*354z`mQu%W|(1P9_-u&C0SM$ZyC+{pfM zl|%>-JBl2sA|%LV25q7@sM;zC0UQMHTA?=Wah z$`*f4yE$y<#;_y5Q+wyGY0_%p&7NJhb=TVdWV>y)kGJsRy4@z1&1~*c-&&g^jE8D? zY~%fqmsY<0xM1j6ft#w1o4EP$eO3KsTVCH=@KpV<4eeQ>{eVV4PS2Z{xsVEl359EC4TD41#=T!>){8gBTQg&%$b;9e!B_(X^* zw%7!V@!{d2JQvpJVq6iR$QK(L5Qp1D`7C&2VR`{r6^%W*rzB#4RCptdMJ1NeGgDqS znRu2>caegb)z-*?Qc8HDkx{OOpP9QYDIc0>^2gzs9{vR7PicBbUUmZlS!Z_K@tIp! zbNaMfbGk8BXP#LuCYqrY658K?IR190Xm+X>Ts#`>$=zvw#_3a_J!x90m4BA1sgFwT z_o$eWM#rW*uWBbGBlo?jsF1df78afr{zA%xRcmb#5oSB)w%{(IZMfvhFmAc%g7|H^?D}wSyYP}ARWS6{Ywx}I=Bw|% z{Pyc_FJq!3@W2EYZ1BMdC#>+o43`t{!w^R-@x&BYZ1KeyXRPtY9Cz&T#~_C+^2j8Y zZ1Txt{HyZHEVu0P%P_}WuR0CaZ1c@H=dAP2Jf{OK$|JuEG`m6%jc(CKlZ$lH;4aOy zwN5`hWYlI&dotAmO8s+Q@j9!u16aFOs%N(~tLm0ke;Br;OTvkot(4+N^t$lA_NZ~^ zt(xxI;mz8f-g!HyG~Mh`pIsgNVS_;-ZN^Nz7DbQg8o>0 z2C!4!DuuRf0!`^;@7L}1Ut;EKipX~qeOL0MNs@Oe8-!mwAzPcFv|aHErr|f;-^zFciJ+z^YcL(p+lF z$2|llkU`r6O|qQDIRwpzS;88d^R@=O4m7VQ{ma;!%;&)tA_jl4o1hI%SHm6dt%p7= zR}6zllpzxFQ)7~u5|_xtCOYwnP?So~rbxvqTJiphSj=KEj>yF>dhv^345JvwNX9an z@r-CpqZ-%9#x}a~jc|;k9Op>KI@GbTTaAm z_XD7^Dgzs4R!MriRACx?$pCUH@>tY6X7;M5EKd>(oy-(gGmja}a7JO4)U0M96^X%v z^z%%2;#97f#0PVh6PP#Tl-!Ip8e@@7nf|eSCo1+u8gH1kPKYqsyBhiYKr z=ogzy1uu&GYJfpiickUpCXoZp9OnXAQHo+pq84>Y%xGqfg93n~99^k_^f$jzjnsnc z`zTAbI1XZ5S0zR=1j0R^ku`b0TX{TRN)%Ce^SNe4kRa09P{UgsxzNEL9|||9(S|Ctos`vV zL^rEUPP!|!qBQ_%MOREIi7*k`{v+XMv}8bWPQkUWl`L%QYQp0h%DN176g?UG&|>X% zP0}%uSR-)AAL=N!QAIBXFuSGuwYRg*jF45mI?UdB)}1-1)*t6~UiAV+wo?P{SRLCU z=-Oixof~h)418b!N6Uzs0YHB>IyVJljKLs-@P8(3I{{M+!ynVIm^geq5A#mK1pcsz zB?e-TiFj8iCfSR87fh}@RV(wW076?DOm>cmU&p^c76FdT@Klql@ex)tr>=C&hVJ69On?v z+01oz@tygb;uHVa&3P6;@}AAxXBHQbBf)TmCis#neGR)Z`706PO=NN@lE diff --git a/Pmw/Pmw_1_2/doc/Group.html b/Pmw/Pmw_1_2/doc/Group.html deleted file mode 100644 index b961a1f2..00000000 --- a/Pmw/Pmw_1_2/doc/Group.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - Pmw.Group reference manual - - - - -

Pmw.Group

- -
-
-

Name

-

Pmw.Group() - - frame with ring border and tag -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- This megawidget consists of an interior frame with an exterior - ring border and an identifying tag displayed over the top edge of - the ring. The programmer can create other widgets within the - interior frame.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
collapsedsize -
-Initialisation option. The distance from the bottom of the tag to the bottom of the ring - when the groupchildsite is collapsed. The default is 6.

- - -
- -
tagindent -
-Initialisation option. The distance from the left edge of the ring to the left side of - the tag component. The default is 10.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
groupchildsite -
-The frame which can contain other widgets to be grouped. By default, this component is a Tkinter.Frame.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
ring -
-This component acts as the enclosing ring around the - groupchildsite. The default borderwidth is 2 and the - default relief is 'groove'. By default, this component is a Tkinter.Frame.

- - -
- -
tag -
-The identifying tag displayed over the top edge of the enclosing - ring. If the pyclass for this component is None, (ie: - tag_pyclass = None, then no tag component is created. By default, this component is a Tkinter.Label.

- - -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -

- -
collapse()
-Do not display the groupchildsite component.

- - -
- -
expand()
-Display the groupchildsite component.

- - -
- -
interior()
-Return the frame within which the programmer may create widgets. - This is the same as component('groupchildsite').

- - -
- -
toggle()
-Display the groupchildsite component if it is currently hidden and - hide it if it is currently displayed.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-
-        # Create and pack the Groups.
-        w = Pmw.Group(parent, tag_text='label')
-        w.pack(fill = 'both', expand = 1, padx = 6, pady = 6)
-        cw = Tkinter.Label(w.interior(),
-                text = 'A group with the\ndefault Label tag')
-        cw.pack(padx = 2, pady = 2, expand='yes', fill='both')
-
-        w = Pmw.Group(parent, tag_pyclass = None)
-        w.pack(fill = 'both', expand = 1, padx = 6, pady = 6)
-        cw = Tkinter.Label(w.interior(), text = 'A group\nwithout a tag')
-        cw.pack(padx = 2, pady = 2, expand='yes', fill='both')
-
-        radiogroups = []
-        self.var = Tkinter.IntVar()
-        self.var.set(0)
-        radioframe = Tkinter.Frame(parent)
-        w = Pmw.Group(radioframe,
-                tag_pyclass = Tkinter.Radiobutton,
-                tag_text='radiobutton 1',
-                tag_value = 0,
-                tag_variable = self.var)
-        w.pack(fill = 'both', expand = 1, side='left')
-        cw = Tkinter.Frame(w.interior(),width=200,height=20)
-        cw.pack(padx = 2, pady = 2, expand='yes', fill='both')
-        radiogroups.append(w)
-
-        w = Pmw.Group(radioframe,
-                tag_pyclass = Tkinter.Radiobutton,
-                tag_text='radiobutton 2',
-                tag_font = Pmw.logicalfont('Helvetica', 4),
-                tag_value = 1,
-                tag_variable = self.var)
-        w.pack(fill = 'both', expand = 1, side='left')
-        cw = Tkinter.Frame(w.interior(),width=200,height=20)
-        cw.pack(padx = 2, pady = 2, expand='yes', fill='both')
-        radiogroups.append(w)
-        radioframe.pack(padx = 6, pady = 6, expand='yes', fill='both')
-        Pmw.aligngrouptags(radiogroups)
-
-        w = Pmw.Group(parent,
-                tag_pyclass = Tkinter.Checkbutton,
-                tag_text='checkbutton',
-                tag_foreground='blue')
-        w.pack(fill = 'both', expand = 1, padx = 6, pady = 6)
-        cw = Tkinter.Frame(w.interior(),width=150,height=20)
-        cw.pack(padx = 2, pady = 2, expand='yes', fill='both')
-
-        w = Pmw.Group(parent,
-                tag_pyclass = Tkinter.Button,
-                tag_text='Tkinter.Button')
-        w.configure(tag_command = w.toggle)
-        w.pack(fill = 'both', expand = 1, padx = 6, pady = 6)
-        cw = Tkinter.Label(w.interior(),
-                background = 'aliceblue',
-                text = 'A group with\na Button tag!?'
-        )
-        cw.pack(padx = 2, pady = 2, expand='yes', fill='both')
-
-        w = Pmw.Group(parent,
-                tag_pyclass = Tkinter.Button,
-                tag_text='Show/Hide')
-        w.configure(tag_command = w.toggle)
-        w.pack(fill = 'both', expand = 1, padx = 6, pady = 6)
-        cw = Tkinter.Label(w.interior(),
-                background = 'aliceblue',
-                text = 'Now you see me.\nNow you don\'t.'
-        )
-        cw.pack(padx = 2, pady = 2, expand='yes', fill='both')
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 15 November 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/HistoryText.gif b/Pmw/Pmw_1_2/doc/HistoryText.gif deleted file mode 100644 index 5ee3ae37eac8763f5b62714975f4a717fa14c19a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2298 zcmc&z`9IW+8hyq#-xt}LDN-^FN~A=Zx>J`d#fy^E$WlIJi8N_!nNnGj22s|Su?`Aj zsfi|(eYB{A^hzpOu355F^O~zq_x&60`SJNYpL5Q0&gZeU-)CvzgO^B!Mfe3OmHPJW z+a=Kww-wkMQBsmXBm#v(rO}+^_QC5fgS zz|x}0au^J8#pt{Ee^{kOQX)Rgi9yT(jzz2X@Wym$Ni;%4>?v3Y8X4p;(nJKX@$f$l zX%Y4apL|J-!Eg{{G>CL07$ju?+oeQ~gbjy|O7KCN0|ZbJ{5B1+e|C&AbQ{q`8(UJ> zr#i{wRKZITxBw~u@^ApO1i&)}eF|ht0h$O1z+(V9fW`!%5Q-L$#>2^piA0VM1~uf9 zEiHq_O0EKDDnvN}Ms+3h7!pAs!DESBtGrXtGH9SY1{xjYG=PYpya~Wv02MJlg&^@y zcBwzAU^E3Z(O^l0)Iz{%fH$C4{2(w!0s$W;R38h1FNVHsbmza+{^)r3kXU;tO*<#AjR-dJy}prlk-+?`=? zkV)#UE9t#udZH)Ko>j`twLClZuA5c%><%$rc5T$b$98nP3?t8;`ig-vXNE)m6nWwW z=&%Audm1VS?|HW;uic+D4VAdsEYIG?>XD|fk3IP#^HneEl~9uyBuoaq26Vbx_0Ur`62d zSo?C^&FU;G-t6SFN{f5PeZu2!#Oj95?eYcj zHPoY-JJ}a!9?U8C%LphPT9Y!cXR<|c-t1VcZ{NwB`M!a;S0XtRR!X8rj!4j zlv*-mSXRVFF+VeCMjfRThkb!xOK!JqKUJC+G4-|VWQgokd2v?Ylr_D8ImN6>&tZBm zXR^zEt6CZYr>lKhl7|?}v-g#&@5_uZ@5b#J-guHDTRBr_LN_1rirc_0r(Ydz^3P4o zu{9t+dgKw(@NkC_zQM&T=yc7Ky2gT3e^-y<8}8}ZCyNyHj!q}+z0mEM`DNkST~?ra z?x(mbSlJbZB63zvVy`hRgYB( zY9P+qx98J>fk~gJr|L!fQe)*@|Heg z!|yj6NnuTgPapqGYxBP&S_u7g`med|ns#UVC+-9*_c<4=-n}?e89T^occ%p8qK<2a zJWAJ`F?%UIHfS*UI_M6xj_-PM`7{-I;)YT@`&h~<%uOz@cUs%7^{h?JC2ZgNfUL4s zg{UxHjHnRViEUHPpO*v&O~GhCo*_?rPPuN;_j8Lstt?e`p}jM+W7iLt$T_*U>(Jd5yHy0VGh1*QFx?t9 zW`eZhUR@mi4{cjlLApmRPTyik*)d#@f#u^2Y?F-a(*-w^w&@wU581iZ2{O~13_{nN0|C$;W&hX`ku@u1t!Oqkvu^BKo5%q>NR{_L1!@!d*TnXruwVH%?pnIZL|v&kyV#7Ulrh3d33PnO(T20 zI_!ES>5Ic4dwBjXg@mi$< TtoJrmG%fo*Qm1ZG0e1cuHO1Nk diff --git a/Pmw/Pmw_1_2/doc/HistoryText.html b/Pmw/Pmw_1_2/doc/HistoryText.html deleted file mode 100644 index c42dad64..00000000 --- a/Pmw/Pmw_1_2/doc/HistoryText.html +++ /dev/null @@ -1,427 +0,0 @@ - - - - - - Pmw.HistoryText reference manual - - - - -

Pmw.HistoryText

- -
-
-

Name

-

Pmw.HistoryText() - - text widget with a course-grained form of history -

- - -
-

Inherits

-Pmw.ScrolledText
-
-

Description

-

- A history text is a scrolled text widget with added functionality - to maintain a history of each screen and allow editing of prior - screens. Here, screen refers to the entire contents of the text - widget. This widget does not support a fine-grained history of - every change made to the text.

- -

Together with a few buttons and a scrolled text to display the - results, a history text can be used as the query-entry part of a - simple interactive text-based database query system. When the - user enters and executes a query, the query (the entire contents - of the text widget) is added to the history list. The user may - view previous queries and either execute them again or modify them - and execute the new query. If a previously executed query is - modified, the user may undo or redo all changes made to the query - before the query is executed.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
borderframe -
-Initialisation option. If true, the borderframe component will be created. The default is 0.

- - -
- -
columnheader -
-Initialisation option. If true, the columnheader component will be created. The default is 0.

- - -
- -
compressany -
-See addhistory(). The default is 1.

- - -
- -
compresstail -
-See addhistory(). The default is 1.

- - -
- -
historycommand -
-This is a callback to indicate whether the currently displayed - entry in the history list has a previous or next entry. The - callback is given two arguments, prevstate and nextstate. If - the currently displayed entry is first in the history list, then - prevstate is 'disabled', otherwise it is 'normal'. If the - currently displayed entry is last in the history list, then - nextstate is 'disabled', otherwise it is 'normal'. These - values can be used, for example, to modify the state of Next and - Previous buttons that call the next() and prev() methods. The default is None.

- - -
- -
hscrollmode -
-The horizontal scroll mode. If 'none', the horizontal scrollbar - will never be displayed. If 'static', the scrollbar will always - be displayed. If 'dynamic', the scrollbar will be displayed - only if necessary. The default is 'dynamic'.

- - -
- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
rowcolumnheader -
-Initialisation option. If true, the rowcolumnheader component will be created. The default is 0.

- - -
- -
rowheader -
-Initialisation option. If true, the rowheader component will be created. The default is 0.

- - -
- -
scrollmargin -
-Initialisation option. The distance between the scrollbars and the text widget. The default is 2.

- - -
- -
usehullsize -
-Initialisation option. If true, the size of the megawidget is determined solely by the - width and height options of the hull component.

-

Otherwise, the size of the megawidget is determined by the width - and height of the text component, along with the size and/or - existence of the other components, such as the label, the - scrollbars and the scrollmargin option. All these affect the - overall size of the megawidget. The default is 0.

- - - -
- -
vscrollmode -
-The vertical scroll mode. If 'none', the vertical scrollbar - will never be displayed. If 'static', the scrollbar will always - be displayed. If 'dynamic', the scrollbar will be displayed - only if necessary. The default is 'dynamic'.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
borderframe -
-A frame widget which snuggly fits around the text widget, to give - the appearance of a text border. It is created with a border so - that the text widget, which is created without a border, looks - like it has a border. By default, this component is a Tkinter.Frame.

- - -
- -
columnheader -
-A text widget with a default height of 1 displayed above the main - text widget and which scrolls horizontally in sync with the - horizontal scrolling of the main text widget. By default, this component is a Tkinter.Text. Its component group is Header.

- - -
- -
horizscrollbar -
-The horizontal scrollbar. By default, this component is a Tkinter.Scrollbar. Its component group is Scrollbar.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
- -
rowcolumnheader -
-A text widget displayed to the top left of the main text widget, - above the row header and to the left of the column header if they - exist. The widget is not scrolled automatically. By default, this component is a Tkinter.Text. Its component group is Header.

- - -
- -
rowheader -
-A text widget displayed to the left of the main text widget and - which scrolls vertically in sync with the vertical scrolling of - the main text widget. By default, this component is a Tkinter.Text. Its component group is Header.

- - -
- -
text -
-The text widget which is scrolled by the scrollbars. If the - borderframe option is true, this is created with a borderwidth - of 0 to overcome a known problem with text widgets: if a widget - inside a text widget extends across one of the edges of the text - widget, then the widget obscures the border of the text widget. - Therefore, if the text widget has no border, then this overlapping - does not occur. By default, this component is a Tkinter.Text.

- - -
- -
vertscrollbar -
-The vertical scrollbar. By default, this component is a Tkinter.Scrollbar. Its component group is Scrollbar.

- - -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.ScrolledText. -

- -
addhistory()
-Append the currently displayed text to the history list.

-

If compressany is true, a new entry will be added to the history - list only if the currently displayed entry has changed.

- -

If compresstail is true, a new entry will be added to the - history list only if the currently displayed entry has changed - or if it is not the last entry in the history list.

- - - -
- -
gethistory()
-Return the history list. Each entry in the list is a 3-tuple. - The first item in a history entry is the original text as added by - addhistory(). The second item is the edited text (if the user - has modified the entry but addhistory() has not yet been called - on the text). The third item specifies whether the entry should - currently display the original or modified text.

- - -
- -
next()
-Display the next screen in the history list.

- - -
- -
prev()
-Display the previous screen in the history list.

- - -
- -
redo()
-Reverse the effect of undo().

- - -
- -
undo()
-Undo all changes made since this entry was added to the history - list.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create and pack the PanedWidget to hold the query and result
-        # windows.
-        # !! panedwidget should automatically size to requested size
-        panedWidget = Pmw.PanedWidget(parent,
-                orient = 'vertical',
-                hull_height = 400,
-                hull_width = 550)
-        panedWidget.add('query', min = 0.05, size = 0.2)
-        panedWidget.add('buttons', min = 0.1, max = 0.1)
-        panedWidget.add('results', min = 0.05)
-        panedWidget.pack(fill = 'both', expand = 1)
-
-        # Create and pack the HistoryText.
-        self.historyText = Pmw.HistoryText(panedWidget.pane('query'),
-                text_wrap = 'none',
-                text_width = 60,
-                text_height = 10,
-                historycommand = self.statechange,
-        )
-        self.historyText.pack(fill = 'both', expand = 1)
-        self.historyText.component('text').focus()
-
-        buttonList = (
-            [20, None],
-            ['Clear', self.clear],
-            ['Undo', self.historyText.undo],
-            ['Redo', self.historyText.redo],
-            [20, None],
-            ['Prev', self.historyText.prev],
-            ['Next', self.historyText.next],
-            [30, None],
-            ['Execute', Pmw.busycallback(self.executeQuery)],
-        )
-        self.buttonDict = {}
-
-        buttonFrame = panedWidget.pane('buttons')
-        for text, cmd in buttonList:
-            if type(text) == type(69):
-                frame = Tkinter.Frame(buttonFrame, width = text)
-                frame.pack(side = 'left')
-            else:
-                button = Tkinter.Button(buttonFrame, text = text, command = cmd)
-                button.pack(side = 'left')
-                self.buttonDict[text] = button
-
-        for text in ('Prev', 'Next'):
-            self.buttonDict[text].configure(state = 'disabled')
-
-        self.results = Pmw.ScrolledText(panedWidget.pane('results'), text_wrap = 'none')
-        self.results.pack(fill = 'both', expand = 1)
-
-    def statechange(self, prevstate, nextstate):
-        self.buttonDict['Prev'].configure(state = prevstate)
-        self.buttonDict['Next'].configure(state = nextstate)
-
-    def clear(self):
-        self.historyText.delete('1.0', 'end')
-
-    def addnewlines(self, text):
-        if len(text) == 1:
-            text = text + '\n'
-        if text[-1] != '\n':
-            text = text + '\n'
-        if text[-2] != '\n':
-            text = text + '\n'
-        return text
-
-    def executeQuery(self):
-        sql = self.historyText.get()
-        self.results.insert('end', 'Query:\n' + self.addnewlines(sql))
-        self.results.see('end')
-        self.results.update_idletasks()
-        self.historyText.addhistory()
-        results = 'Results:\nfoo'
-        if len(results) > 0:
-            self.results.insert('end', self.addnewlines(results))
-        self.results.see('end')
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 20 May 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/LabeledWidget.gif b/Pmw/Pmw_1_2/doc/LabeledWidget.gif deleted file mode 100644 index dfa61540861a06dc2c6edff357d0f11890fdea23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 887 zcmV--1Bm=bNk%v~VWR+a0P+9;|Ns90007z9+2!Tsf`Wno0000000000EC2ui0HXkO z000C2IJ(^aFv>}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhHyg+MGCkI1BQ z$!t22!p?I_ty-0UD2FKMdcWYXcuX#v&s{)PtKp*G@VNY|X159Ryndfv+lP33f`ess ze}IIEihYNOi(Ua`k#Cc8hK&?%j{=oqoo1hKmzWZokD*_vW2$GPq!6ZYkpZ-xkhGPv zwYR&Rdakbyv2eS+kX^--$;isezkb0F!<4CEsLsc}*{o*3(F@aPouRq7*vQQ0=y~4X z1L0@m*38@0+F;y;(C*-YbMpAstpj-N89!nEdl+#=)HVK2 zqr^BAqgmWUl1#{8BTK5Jv+rQal`BuadI__nOj0y!Zn}vnr_Mz@8~Oa1DCnV~LkNU~Zk1E~B(v*gM8ID7H@`5j~d zg+&V>{aLf>)u%B>ajlxQWZI%_SH=C$);)}6bi0hbSx>>=*~|#vN_-Eu^Y0TGUIoRg$9!4CGtzmS-(|MDDuB|+9GTzlzzc{a6`}bqwznw41_x`~D$pt4} zY3i-Q(1G^_2;YFMfd`6s1PvtKdHSU1;DfzHc+Yld=tmcSm3f#Kh<1sH7>RM2*wcj} zGI$${CAzp9jJ++QqEIv{^wAzS9+hJr+`Z8wQ$MbfokPhOBczPOp|~D`M{a0NkexBf+?Njmh@2c$mStss39cDOo0+`{oO=){c?O-c*_le1 zKX@t@s6J?R#i^&F zM__EIwpxX%4Ze1lg|ZSNTcW4cipH&(=Bg{KFaG*empBT$2d|y_M{2AX$cC!yvS2h@ z>a)-)My!w3PIN7i*?MK6W8j7>F1YE9Ywo$|Zadw&?6&LfyYR*<@4WQZYwx}I=Bw|% N{PyebzY` - - - - Pmw.LabeledWidget reference manual - - - - -

Pmw.LabeledWidget

- -
-
-

Name

-

Pmw.LabeledWidget() - - frame with label -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- This megawidget consists of an interior frame with an associated - label which can be positioned on any side of the frame. The - programmer can create other widgets within the interior frame.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
sticky -
-Initialisation option. The default is 'nsew'.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
- -
labelchildsite -
-The frame which can contain other widgets to be labelled. By default, this component is a Tkinter.Frame.

- - -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -

- -
interior()
-Return the frame within which the programmer may create widgets. - This is the same as component('labelchildsite').

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-
-        # Create a frame to put the LabeledWidgets into
-        frame = Tkinter.Frame(parent, background = 'grey90')
-        frame.pack(fill = 'both', expand = 1)
-
-        # Create and pack the LabeledWidgets.
-        column = 0
-        row = 0
-        for pos in ('n', 'nw', 'wn', 'w'):
-            lw = Pmw.LabeledWidget(frame,
-                    labelpos = pos,
-                    label_text = pos + ' label')
-            lw.component('hull').configure(relief='sunken', borderwidth=2)
-            lw.grid(column=column, row=row, padx=10, pady=10)
-            cw = Tkinter.Button(lw.interior(), text='child\nsite')
-            cw.pack(padx=10, pady=10, expand='yes', fill='both')
-
-            # Get ready for next grid position.
-            column = column + 1
-            if column == 2:
-              column = 0
-              row = row + 1
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 8 November 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/MainMenuBar.gif b/Pmw/Pmw_1_2/doc/MainMenuBar.gif deleted file mode 100644 index aa7a7bf88eafed57d468ac3bee0d5a5a2542b097..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q(%Nk%v~VcG#50Pz3-|Ns90007z9*@A+CEC2ui0NMc^00091gpR4p?GK}z zwAzca-n{z{hT_N!28pKX%C_zc$8u`U_KoNI&i8xm3krwCqVWg5x|ln5oGlSh?oeaEO2j=|MUQdfG6kTDtiP+tX8d+{sYv{7k@yXcjjd};&I`T1DSbZfns8kQzO9aW z%$#0}d-s-X?;kaC=J>HY7>i!9fdv^V5G77qFk${sNenkEo-*KM@fKRdhcM(bcN4dj zLjW=3MuQL{el!_PCC73eFKWCgGN+$e-3VH{)hp;q4K6RVA;D%A<~49`?P zK^=1Wu0qdUHZgLYR`BIMu{fie^+M9-9#U6j4m>&yV9lq(SP9hEQSQfOEYJF-B8@NE zWDBlog8MhI;))T}DC~RTF=RfHn=QT!wQ_`eh5;eQ4Eii*prK2fzTEk=>ecH~vwjU5 zkn7mAYk!$-JGbsAxOe;hUBtwI;lzs@KaM=P^5x8%JAV#6y7cMPt6RU0J-hbp+`D`K Ip1c46I~k4xXaE2J diff --git a/Pmw/Pmw_1_2/doc/MainMenuBar.html b/Pmw/Pmw_1_2/doc/MainMenuBar.html deleted file mode 100644 index 4f0fea88..00000000 --- a/Pmw/Pmw_1_2/doc/MainMenuBar.html +++ /dev/null @@ -1,421 +0,0 @@ - - - - - - Pmw.MainMenuBar reference manual - - - - -

Pmw.MainMenuBar

- -
-
-

Name

-

Pmw.MainMenuBar() - - manager for toplevel native menus -

- - -
-

Inherits

-Pmw.MegaArchetype
-
-

Description

-

- This class is a wrapper for the Tkinter.Menu class. It should be - used as the main menu of toplevel windows. The class is similar - to Pmw.MenuBar, but should be used when native menus are required. - See the Tkinter.Menu documentation for full details.

- -

This class should be created as the child of a Tkinter.Toplevel - and should then be specified as the menu associated with the - toplevel, using the toplevel's configure() method. For example:

-
 # Create a Pmw.MegaToplevel.
- megaToplevel = Pmw.MegaToplevel()
- # Get the Tkinter.Toplevel from Pmw.MegaToplevel.
- toplevel = megaToplevel.interior()
- # Create the menu bar for the toplevel.
- menuBar = Pmw.MainMenuBar(toplevel)
- # Configure the toplevel to use the menuBar.
- toplevel.configure(menu = menuBar)
- - -

There are methods to add menus, both as toplevel menus and - sub-menus, and for adding menu items to the menus. Each menu item - may have help text to be displayed by a Pmw.Balloon. Each menu and - cascaded menu (sub-menu) is referenced by name which is supplied - on creation.

- -

This megawidget is derived from Pmw.MegaArchetype (not Pmw.MegaWidget - like most other megawidgets), with the hull class being - Tkinter.Menu.

- -

(Note that due to bugs in Tk's menubar functionality, balloon help - has not been implemented and status help does not work properly.)

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
balloon -
-Specifies a Pmw.Balloon to display the help text for menu items. If - None, no help is displayed. If the balloon has an associated - Pmw.MessageBar, the help text will also be displayed there.

-

Due to a bug in some versions of Tk (8.0 and possible others), - help text will not be displayed by the balloon. However, help - text will be displayed in the balloon's associated messagebar. The default is None.

- - - -
- -
hotkeys -
-Initialisation option. If true, keyboard accelerators will be assigned to each menu item. - Keyboard accelerators can be used to access the menus without - using the mouse. The accelerator character is always one of the - alphanumeric characters in the text label of the menu item and is - indicated by an underline.

-

To select a menu, simultaneously press the <Alt> key and the - accelerator character indicated on a toplevel menu item. The - arrows keys can then be used to select other menus and menu items. - To invoke a menu item, press <Return> or press the accelerator - character indicated on the menu item.

- -

Each accelerator character will be assigned automatically unless - traverseSpec is supplied to the addmenu(), addmenuitem() or - addcascademenu() methods. The automatically selected - accelerator character for a menu item is the first character in - the label text that has not already been used as an accelerator in - the menu containing the menu item.

- -

If traverseSpec is given, it must be either an integer or a - character. If an integer, it specifies the index of the character - in the label text to use as the accelerator character. If a - character, it specifies the character to use as the accelerator - character. The default is 1.

- - - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
hull -
-The toplevel menu widget. By default, this component is a Tkinter.Menu.

- - -
-
-

Dynamic components

-

- Menu components are created dynamically by the addmenu() and - addcascademenu() methods. By default, these are of type - Tkinter.Menu and are created with a component group of Menu.

-

- - - -
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaArchetype. -In addition, methods from the -Tkinter.Menu class -are forwarded by this megawidget to the -hull component. -

- -
addcascademenu(parentMenuName, menuName, statusHelp = '', traverseSpec = None, **kw)
-Add a cascade menu (sub-menu) to the menu parentMenuName. The - menuName argument must not be the same as any menu already - created using the addmenu() or addcascademenu() methods.

-

A menu item in the parent menu is created (with the - add_cascade() method of the parent menu) using all keyword - arguments except tearoff and name.

- -

If the label keyword argument is not given, the label option - of the menu item defaults to menuName. If the underline - keyword argument is not given (and the hotkeys megawidget option - is true) the underline option is determined as described under - hotkeys and is used to specify the keyboard accelerator.

- -

The statusHelp argument is used as the help string for the menu - item. This is displayed using the showstatus() method of the - balloon.

- -

The tearoff and name keyword arguments, if present, are passed - to the constructor of the menu. See Tkinter.Menu for details of - these options. The menu is created as a component named - menuName.

- - - -
- -
addmenu(menuName, balloonHelp, statusHelp = None, traverseSpec = None, **kw)
-Add a cascade menu to the toplevel menu. The menuName argument - must not be the same as any menu already created using the - addmenu() or addcascademenu() methods.

-

A menu item in the toplevel menu is created (with the - add_cascade() method) using all keyword arguments except - tearoff and name.

- -

If the label keyword argument is not given, the label option - of the menu button defaults to menuName. If the underline - keyword argument is not given (and the hotkeys megawidget option - is true) the underline option is determined as described under - hotkeys and is used to specify the keyboard accelerator.

- -

The statusHelp argument is used as the help string for the menu - item. This is displayed using the showstatus() method of the - balloon. Currently balloonHelp is not used, due to a bug in Tk - version 8.0.

- -

The tearoff and name keyword arguments, if present, are passed - to the constructor of the menu. See Tkinter.Menu for details of - these options. The menu is created as a component named - menuName.

- - - -
- -
addmenuitem(menuName, itemType, statusHelp = '', traverseSpec = None, **kw)
-Add a menu item to the menu menuName. The kind of menu item is - given by itemType and may be one of command, separator, - checkbutton, radiobutton or cascade (although cascade menus - are better added using the addcascademenu() method). Any - keyword arguments present will be passed to the menu when creating - the menu item. See Tkinter.Menu for the valid options for each - item type. In addition, a keyboard accelerator may be - automatically given to the item, as described under hotkeys.

-

When the mouse is moved over the menu item, the helpString will - be displayed by the balloon's statuscommand.

- - - -
- -
deletemenu(menuName)
-Delete the menu menuName and all its items. The menu may either - be a toplevel menu or a cascade menu.

- - -
- -
deletemenuitems(menuName, start, end = None)
-Delete menu items from the menu menuName. If end is not - given, the start item is deleted. Otherwise all items from - start to end are deleted.

- - -
- -
disableall()
-Disable all toplevel menus.

- - -
- -
enableall()
-Enable all toplevel menus.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create button to launch the toplevel with main menubar.
-        w = Tkinter.Button(parent, text = 'Show Pmw.MainMenuBar demo',
-                command = lambda parent=parent: MainMenuBarToplevel(parent))
-        w.pack(padx = 8, pady = 8)
-
-class MainMenuBarToplevel:
-    def __init__(self, parent):
-        # Create the toplevel to contain the main menubar.
-        megaToplevel = Pmw.MegaToplevel(parent, title = title)
-        toplevel = megaToplevel.interior()
-
-        # Create the Balloon for this toplevel.
-        self.balloon = Pmw.Balloon(toplevel)
-
-        # Create and install the MenuBar.
-        menuBar = Pmw.MainMenuBar(toplevel,
-                balloon = self.balloon)
-        toplevel.configure(menu = menuBar)
-        self.menuBar = menuBar
-
-        # Add some buttons to the MainMenuBar.
-        menuBar.addmenu('File', 'Close this window or exit')
-        menuBar.addmenuitem('File', 'command', 'Close this window',
-                command = PrintOne('Action: close'),
-                label = 'Close')
-        menuBar.addmenuitem('File', 'separator')
-        menuBar.addmenuitem('File', 'command', 'Exit the application',
-                command = PrintOne('Action: exit'),
-                label = 'Exit')
-
-        menuBar.addmenu('Edit', 'Cut, copy or paste')
-        menuBar.addmenuitem('Edit', 'command', 'Delete the current selection',
-                command = PrintOne('Action: delete'),
-                label = 'Delete')
-
-        menuBar.addmenu('Options', 'Set user preferences')
-        menuBar.addmenuitem('Options', 'command', 'Set general preferences',
-                command = PrintOne('Action: general options'),
-                label = 'General...')
-
-        # Create a checkbutton menu item.
-        self.toggleVar = Tkinter.IntVar()
-        # Initialise the checkbutton to 1:
-        self.toggleVar.set(1)
-        menuBar.addmenuitem('Options', 'checkbutton', 'Toggle me on/off',
-                label = 'Toggle',
-                command = self._toggleMe,
-                variable = self.toggleVar)
-        self._toggleMe()
-
-        menuBar.addcascademenu('Options', 'Size',
-                'Set some other preferences', traverseSpec = 'z', tearoff = 1)
-        for size in ('tiny', 'small', 'average', 'big', 'huge'):
-            menuBar.addmenuitem('Size', 'command', 'Set size to ' + size,
-                    command = PrintOne('Action: size ' + size),
-                    label = size)
-
-        menuBar.addmenu('Help', 'User manuals', name = 'help')
-        menuBar.addmenuitem('Help', 'command', 'About this application',
-                command = PrintOne('Action: about'),
-                label = 'About...')
-
-        # Create and pack the main part of the window.
-        self.mainPart = Tkinter.Label(toplevel,
-                text = 'This is the\nmain part of\nthe window',
-                background = 'black',
-                foreground = 'white',
-                padx = 30,
-                pady = 30)
-        self.mainPart.pack(fill = 'both', expand = 1)
-
-        # Create and pack the MessageBar.
-        self.messageBar = Pmw.MessageBar(toplevel,
-                entry_width = 40,
-                entry_relief='groove',
-                labelpos = 'w',
-                label_text = 'Status:')
-        self.messageBar.pack(fill = 'x', padx = 10, pady = 10)
-        self.messageBar.message('state',
-            'Balloon/status help not working properly - Tk menubar bug')
-
-        buttonBox = Pmw.ButtonBox(toplevel)
-        buttonBox.pack(fill = 'x')
-        buttonBox.add('Disable\nall', command = menuBar.disableall)
-        buttonBox.add('Enable\nall', command = menuBar.enableall)
-        buttonBox.add('Create\nmenu', command = self.add)
-        buttonBox.add('Delete\nmenu', command = self.delete)
-        buttonBox.add('Create\nitem', command = self.additem)
-        buttonBox.add('Delete\nitem', command = self.deleteitem)
-
-        # Configure the balloon to displays its status messages in the
-        # message bar.
-        self.balloon.configure(statuscommand = self.messageBar.helpmessage)
-
-        self.testMenuList = []
-
-    def _toggleMe(self):
-        print 'Toggle value:', self.toggleVar.get()
-
-    def add(self):
-        if len(self.testMenuList) == 0:
-            num = 0
-        else:
-            num = self.testMenuList[-1]
-        num = num + 1
-        name = 'Menu%d' % num
-        self.testMenuList.append(num)
-
-        self.menuBar.addmenu(name, 'This is ' + name)
-
-    def delete(self):
-        if len(self.testMenuList) == 0:
-            self.menuBar.bell()
-        else:
-            num = self.testMenuList[0]
-            name = 'Menu%d' % num
-            del self.testMenuList[0]
-            self.menuBar.deletemenu(name)
-
-    def additem(self):
-        if len(self.testMenuList) == 0:
-            self.menuBar.bell()
-        else:
-            num = self.testMenuList[-1]
-            menuName = 'Menu%d' % num
-            menu = self.menuBar.component(menuName)
-            if menu.index('end') is None:
-                label = 'item X'
-            else:
-                label = menu.entrycget('end', 'label') + 'X'
-            self.menuBar.addmenuitem(menuName, 'command', 'Help for ' + label,
-                    command = PrintOne('Action: ' + menuName + ': ' + label),
-                    label = label)
-            
-    def deleteitem(self):
-        if len(self.testMenuList) == 0:
-            self.menuBar.bell()
-        else:
-            num = self.testMenuList[-1]
-            menuName = 'Menu%d' % num
-            menu = self.menuBar.component(menuName)
-            if menu.index('end') is None:
-                self.menuBar.bell()
-            else:
-                self.menuBar.deletemenuitems(menuName, 0)
-            
-class PrintOne:
-    def __init__(self, text):
-        self.text = text
-
-    def __call__(self):
-        print self.text
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 22 April 2000 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/MegaArchetype.html b/Pmw/Pmw_1_2/doc/MegaArchetype.html deleted file mode 100644 index 03f62660..00000000 --- a/Pmw/Pmw_1_2/doc/MegaArchetype.html +++ /dev/null @@ -1,459 +0,0 @@ - - - - - - Pmw.MegaArchetype reference manual - - - - -

Pmw.MegaArchetype

- -
-

Name

-

Pmw.MegaArchetype() - - abstract base class for all Pmw megawidgets -

- - -
-

Description

-

- This class is the basis for all Pmw megawidgets. It provides - methods to manage options and component widgets.

- -

This class is normally used as a base class for other classes. If - the hullClass argument is specified, such as in the Pmw.MegaWidget - and Pmw.MegaToplevel classes, a container widget is created to act - as the parent of all other component widgets. Classes derived - from these sub classes create other component widgets and options - to implement megawidgets that can be used in applications.

- -

If no hullClass argument is given to the constructor, no - container widget is created and only the option configuration - functionality is available.

- -

- - -
-

Components

-

- A megawidget is generally made up of other widgets packed - within the megawidget's containing widget. These sub-widgets - are called the components of the megawidget and are given - logical names for easy reference. The component mechanism - allows the user of a megawidget to gain controlled access to - some of the internals of the megawidget, for example to call a - method of a component or to set a component's configuration - options.

- -

Sub components: If a component is itself a megawidget containing - sub-components, then these sub-components can be referred to - using the notation component_subcomponent. For example, - Pmw.ComboBox has a component named entryfield which is an - instance of Pmw.EntryField, which itself has a Tkinter.Entry - component named entry. In the context of the combobox, this - entry widget can be referred to as entryfield_entry.

- -

Component aliases: Because the sub-component notation may - make component names inconveniently long, components and - sub-components can be aliased to simpler names. For example, - the entryfield_entry sub-component of Pmw.ComboBox is aliased - to simply entry. If there is no conflict in component - names, sub-component names are usually aliased to the name of - the "leaf" component.

- -

Component groups: Similar components of a megawidget can be - given a group name, which allows all components of a group - to be referenced using the one group name. For example, the - two arrow components of Pmw.Counter have a group name of Arrow. - Also, megawidgets that can create an unlimited number of - similar components, such as Pmw.ButtonBox, create each of these - components with the same group name. By convention, group - names begin with a capital letter.

-

- - - -
-

Options

-

- A megawidget defines options which allow the megawidget user - to modify the appearance and behaviour of the megawidget. - Using the same technique as Tkinter widgets, the values of - megawidget options may be set in calls to the constructor and - to configure() and the values may be queried by calls to - cget() and configure(). Like Tkinter widgets, megawidget - options are initialised with default values. Also, if the - useTkOptionDb option to Pmw.initialise() has been set, - then the Tk option database will be queried to get the initial - values. Strings found in the option database are converted - to python objects (integer, float, tuple, dictionary, etc) - using a restricted eval() call. Anything that is not accepted by - eval() is treated as a string.

- -

Inherited options: As well as the options defined in a class, - a derived class inherits all options of its base classes. The - default value of an option defined by a base class may be - modified by the derived class.

- -

Initialisation options: Some megawidget options can only be - set in the call to the constructor. These are called - initialisation options. Unlike normal configuration - options, they cannot be set by calling the configure() - method.

- -

Component options: Options of the components of a megawidget - can be referred to using the notation component_option. - Like the megawidget options, component options can be used in - calls to the constructor and to the cget() and configure() - methods. For example, the state option of the Tkinter.Text - text component of Pmw.ScrolledText may be set by calling

-
 widget.configure(text_state = 'disabled')
- - -

Sub-components, component aliases and component groups may - also be combined with options. For example, the state - option of the entryfield_entry component of Pmw.ComboBox - may be set by calling

-
 combobox.configure(entryfield_entry_state = 'normal')
- - -

Since it has an alias, it is more convenient to use the - equivalent form

-
 combobox.configure(entry_state = 'normal')
- - -

Also, the background color of both arrows of Pmw.Counter - can be set using the Arrow component group.

-
 counter.configure(Arrow_background = 'aliceblue')
- - -

- - -
-

The pyclass component option

-

- The pyclass component option is a special notation that can - be used to specify a non-default python class for a component. - This can only be used when the component is being constructed. - For a component created during the construction of its parent - megawidget, this option must be given to the constructor in - the form component_pyclass. For example, to change the - python class of the text sub-component of Pmw.TextDialog - to a class FontText.Text

-
 dialog = Pmw.TextDialog(text_pyclass = FontText.Text)
- - -

For components created after the construction of the parent - megawidget, the pyclass option must be passed into the - method which constructs the component. For example, to set - the python class of a button in Pmw.ButtonBox to a class - MyButton:

-
 buttonBox.add('special', pyclass = MyButton)
- - -

The new python class of the component must support all methods - and options that are used by the megawidget when operating on - the component. The exact interface required for each - component is not documented. You will have to examine the Pmw - source code. However, any class derived from the default - class of a component can be used as the new class of the - component, as long as all of the original methods and options - are still supported. For example, any class derived from - Tkinter.Text can be used as the class of the text - sub-component of Pmw.TextDialog.

- -

The pyclass component option should not be confused with the - class option that some of the Tk widgets support. The - class option sets the Tk option database class for the - widget and is used by Tk to query the database for the default - values of the widget's other options. The name pyclass was - chosen so that it did not conflict with any known Tk options.

- -

- - -
-

Construction

-

- The constructors of classes derived from this class all accept - the same arguments: one positional argument and any number of - keyword arguments. The positional argument defaults to None - (meaning the root window) and specifies the widget to use as - the parent when creating the - megawidget's hull component. The keyword arguments define - initial values for options. The format for the constructors - of derived classes is:

- -
   def __init__(self, parent = None, **kw):
-

- - - -
- -

Methods

- -
addoptions(optionDefs)
-Add additional options for this megawidget. The optionDefs - argument is treated in the same way as for the defineoptions() - method.

-

This method is for use by derived classes. It is only used if a - megawidget should conditionally define some options, perhaps - depending on the value of other options. Usually, megawidgets - unconditionally define all their options in the call to - defineoptions() and do not need to use addoptions(). This - method must be called after the call to defineoptions() and - before the call to initialiseoptions().

- - - -
- -
cget(option)
-Return the current value of option (which should be in the - format described in the Options section). This method is also - available using object subscripting, for example - myWidget['font']. Unlike Tkinter's cget(), which always returns - a string, this method returns the same value and type as used when - the option was set (except where option is a component option - and the component is a Tkinter widget, in which case it returns - the string returned by Tcl/Tk).

- - -
- -
component(name)
-Return the component widget whose name is name. This - allows the user of a megawidget to access and configure component - widgets directly.

- - -
- -
componentaliases()
-Return the list of aliases for components. Each item in the list - is a tuple whose first item is the name of the alias and whose - second item is the name of the component or sub-component it - refers to.

- - -
- -
componentgroup(name)
-Return the group of the component whose name is name or None - if it does not have a group.

- - -
- -
components()
-Return a sorted list of names of the components of this - megawidget.

- - -
- -
configure(option = None, **kw)
-Query or configure the megawidget options.

-

If no arguments are given, return a tuple consisting of all - megawidget options and values, each as a 5-element tuple - (name, resourceName, resourceClass, default, value). - This is in the same format as the value returned by the standard - Tkinter configure() method, except that the resource name is - always the same as the option name and the resource class is the - option name with the first letter capitalised.

- -

If one argument is given, return the 5 element tuple for option.

- -

Otherwise, set the configuration options specified by the keyword - arguments. Each key should be in the format described in the - Options section.

- - - -
- -
createcomponent(componentName, componentAliases, componentGroup, widgetClass, *widgetArgs, **kw)
-Create a component widget by calling widgetClass with the - arguments given by widgetArgs and any keyword arguments. The - componentName argument is the name by which the component will - be known and must not contain the underscore, '_', character. - The componentGroup argument specifies the group of the - component. The componentAliases argument is a sequence of - 2-element tuples, whose first item is an alias name and whose - second item is the name of the component or sub-component it is to - refer to.

-

If this method is called during megawidget construction, any - component options supplied to the megawidget constructor which - refer to this component (by componentName or componentGroup) - are added to the kw dictionary before calling widgetClass. If - the dictionary contains a 'pyclass' key, then this item is - removed from the dictionary and the value is used instead of - widgetClass. For more details see The pyclass component option - section.

- -

This method may be called by derived classes during or after - megawidget construction. It returns the instance of the class - created.

- - - -
- -
createlabel(parent, childCols = 1, childRows = 1)
-Create a Tkinter.Label component named 'label' in the parent - widget. This is a convenience method used by several megawidgets - that require an optional label. The widget must have options - named labelpos and labelmargin. If labelpos is None, no - label is created. Otherwise, a label is created and positioned - according to the value of labelpos and labelmargin. The label - is added to the parent using the grid() method, with childCols - and childRows indicating how many rows and columns the label - should span. Note that all other child widgets of the parent - must be added to the parent using the grid() method. The - createlabel() method may be called by derived classes during - megawidget construction.

- - -
- -
defineoptions(keywords, optionDefs, dynamicGroups = ())
-Create options for this megawidget. The optionDefs argument - defines the options. It is a sequence of 3-element tuples, - (name, default, callback), where name is the name of the - option, default is its default value and callback is the - function to call when the value of the option is set by a call to - configure(). The keywords argument should be the keyword - arguments passed in to the constructor of the megawidget. The user - may override the default value of an option by supplying a keyword - argument to the constructor.

-

If any option created by a base class is also defined by - optionDefs, then the derived class's default value will take - precedence over the base class's. If the callback field is not - None, then this will also override the callback set by the base - class.

- -

If callback is Pmw.INITOPT, then the option is an - initialisation option.

- -

The dynamicGroups argument contains a list of the groups of the - components created dynamically by this megawidget. If a group is - included in this list, then it not an error if a keyword argument - for the group is given to the constructor or to configure(), - even when no components with this group have been created.

- -

If defineoptions() is called, it must be called once in the - megawidget constructor before the call to the constructor of the - base class and there must be a matching call to - initialiseoptions() at the end of the constructor.

- - - -
- -
destroy()
-Destroy the hull component widget, if it exists, including all - of its children.

- - -
- -
destroycomponent(name)
-Remove the megawidget component called name. This method may be - called by derived classes to destroy a megawidget component. It - destroys the component widget and then removes all record of the - component from the megawidget.

- - -
- -
hulldestroyed()
-Return true if the Tk widget corresponding to the hull component - has been destroyed.

- - -
- -
initialiseoptions(dummy = None)
-Check keyword arguments and call option callback functions. This - method must be called, at the end of a megawidget constructor, if - and only if defineoptions() was also called in the constructor. - The dummy argument is not required, but is retained for - backwards compatibility.

-

It checks that all keyword arguments given to the constructor have - been used. If not, it raises an error indicating which arguments - were unused. A keyword is defined to be used if, during the - construction of a megawidget, it is defined in a call to - defineoptions() or addoptions() (by the megawidget or one of - its base classes), or it references, by name, a component of the - megawidget, or it references, by group, at least one component. - It also calls the configuration callback function for all options - that have a callback.

- -

This method is only effective when called by the constructor of - the leaf class, that is, the class in the class hierarchy which - first called defineoptions(). For all other classes in the - class hierarchy (base classes), the method returns immediately.

- - - -
- -
interior()
-Return the widget framing the interior space in which any children - of this megawidget should be created. By default, this returns - the hull component widget, if one was created, or None - otherwise. A subclass should use the widget returned by - interior() as the parent of any components or sub-widgets it - creates. Megawidgets which can be further subclassed, such as - Pmw.Dialog, should redefine this method to return the widget in - which subclasses should create children. The overall containing - widget is always available as the hull component.

- - -
- -
isinitoption(option)
-If option is an initialisation option, return true. Otherwise, - return false (the option is a configuration option). The option - argument must be an option of this megawidget, not an option of a - component. Otherwise an exception is raised.

- - -
- -
options()
-Return a sorted list of this megawidget's options. Each item in - the list is a 3-element tuple, (option, default, isinit), - where option is the name of the option, default is its default - value and isinit is true if the option is an initialisation - option.

- - -
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 22 May 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/MegaToplevel.html b/Pmw/Pmw_1_2/doc/MegaToplevel.html deleted file mode 100644 index 53c1fe03..00000000 --- a/Pmw/Pmw_1_2/doc/MegaToplevel.html +++ /dev/null @@ -1,267 +0,0 @@ - - - - - - Pmw.MegaToplevel reference manual - - - - -

Pmw.MegaToplevel

- -
-

Name

-

Pmw.MegaToplevel() - - base class for megawidgets within a toplevel -

- - -
-

Inherits

-Pmw.MegaArchetype
-
-

Description

-

- This class creates a megawidget contained within a toplevel - window. It may be used directly to create a toplevel megawidget - or it may be used as a base class for more specialised toplevel - megawidgets, such as Pmw.Dialog. It creates a Tkinter.Toplevel - component, named hull, to act as the container of the megawidget. - The window class name for the hull widget is set to the - most-specific class name for the megawidget. Derived classes - specialise this class by creating other widget components as - children of the hull widget.

- -

The megawidget may be used as either a normal toplevel window or - as a modal dialog. Use show() and withdraw() for normal use - and activate() and deactivate() for modal dialog use. If the - window is deleted by the window manager while being shown - normally, the default behaviour is to destroy the window. If the - window is deleted by the window manager while the window is active - (ie: when used as a modal dialog), the window is deactivated. - Use the userdeletefunc() and usermodaldeletefunc() methods to - override these behaviours. Do not call protocol() to set the - WM_DELETE_WINDOW window manager protocol directly if you want to - use this window as a modal dialog.

- -

The currently active windows form a stack with the most recently - activated window at the top of the stack. All mouse and - keyboard events are sent to this top window. When it - deactivates, the next window in the stack will start to receive - events.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
activatecommand -
-If this is callable, it will be called whenever the megawidget is - activated by a call to activate(). The default is None.

- - -
- -
deactivatecommand -
-If this is callable, it will be called whenever the megawidget is - deactivated by a call to deactivate(). The default is None.

- - -
- -
master -
-This is used by the activate() method to control whether the - window is made transient during modal dialogs. See the - activate() method. The default is None.

- - -
- -
title -
-This is the title that the window manager displays in the title - bar of the window. The default is None.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Toplevel.

- - -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaArchetype. -In addition, methods from the -Tkinter.Toplevel class -are forwarded by this megawidget to the -hull component. -

- -
activate(globalMode = 0, geometry = 'centerscreenfirst')
-Display the window as a modal dialog. This means that all mouse - and keyboard events go to this window and no other windows can - receive any events. If you do not want to restrict mouse and - keyboard events to this window, use the show() method instead.

-

If the BLT extension to Tk is present, a busy cursor will be - displayed on other toplevel windows, using Pmw.showbusycursor().

- -

The activate() method does not return until the deactivate() - method is called, when the window is withdrawn, the grab released - and the result returned.

- -

If globalMode is false, the window will grab control of the - pointer and keyboard, preventing any events from being delivered - to any other toplevel windows within the application. If - globalMode is true, the grab will prevent events from being - delivered to any other toplevel windows regardless of application. - Global grabs should be used sparingly, if at all.

- -

If globalMode is 'nograb', then no grab is performed. If BLT - is present, this will allow mouse and keyboard events to be - received by other windows whose exclude busycursor attribute has - been set to true by a call to Pmw.setbusycursorattributes(). - Note that if 'nograb' is used and BLT is not present, then all - other windows will receive mouse and keyboard events. This is - because, in plain Tk, there is no way to specify that two windows - (only) receive events. If your application may be used without - BLT, then do not use 'nograb'.

- -

When the window is displayed, it is positioned on the screen - according to geometry which may be one of:

- -
centerscreenfirst
The window will be centered the first time it is activated. - On subsequent activations it will be positioned in the same - position as the last time it was displayed, even if it has - been moved by the user.

- -
-
centerscreenalways
The window will be be centered on the screen (halfway across - and one third down).

- -
-
first + spec
It is assumed that the rest of the argument (after 'first') - is a standard geometry specification. The window will be - positioned using this specification the first time it is - activated. On subsequent activations it will be positioned in - the same position as the last time it was displayed, even if - it has been moved by the user. For example, - geometry = first+100+100 will initially display the window - at position (100,100). Other calls to activate() will not - change the previous position of the window.

- -
-
spec
This is a standard geometry specification. The window will be - be positioned using this specification.

- -
-

If the BLT Tcl extension library is present, a clock cursor - will be displayed until the window is deactivated.

- -

If the activatecommand option is callable, it is called just - before the window begins to wait for the result.

- -

If the master option is not None, the window will become a - transient window of master, which should be a toplevel window. - If master has the special value of 'parent', the master is the - toplevel window of the window's parent.

- - - -
- -
active()
-Return true if the megawidget is currently active (that is, - activate() is currently waiting for a result to be passed to it - by a call to deactivate()).

- - -
- -
deactivate(result = None)
-This should be called while a call to activate() is waiting. It - will withdraw the window, release the grab and cause the - activate() call to return with the value of result.

-

If the deactivatecommand option is callable, it is called just - before the deactivate() method returns.

- - - -
- -
destroy()
-Destroy the hull component widget, including all of its - children. If the megawidget is currently active, deactivate it.

- - -
- -
show(master = None)
-Make the window visible. This raises or deiconifies the toplevel - window. If the window has previously been shown it will remain in - the same position. This means that calling withdraw() then - show() will not move the window, whereas calling withdraw() - then deiconify() may change the window's position. (This may - depend on the behaviour of the window manager.)

- - -
- -
userdeletefunc(func = None)
-If func is None, return the function that will be called - when the window is deleted by the window manager while being - displayed normally. If func is not None, set this function to - func. By default, the function is self.destroy.

- - -
- -
usermodaldeletefunc(func = None)
-If func is None, return the function that will be called - when the window is deleted by the window manager while it is - active (ie: when being used as a modal dialog). If func is not - None, set this function to func. By default, the function is - self.deactivate.

- - -
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 22 May 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/MegaWidget.html b/Pmw/Pmw_1_2/doc/MegaWidget.html deleted file mode 100644 index d18698bb..00000000 --- a/Pmw/Pmw_1_2/doc/MegaWidget.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - Pmw.MegaWidget reference manual - - - - -

Pmw.MegaWidget

- -
-

Name

-

Pmw.MegaWidget() - - base class for megawidgets within a frame -

- - -
-

Inherits

-Pmw.MegaArchetype
-
-

Description

-

- This class creates a megawidget contained within a Tkinter.Frame - window. The class acts as the base class for megawidgets that are - not contained in their own toplevel window, such as Pmw.ButtonBox and - Pmw.ComboBox. It creates a Tkinter.Frame component, named hull, - to act as the container of the megawidget. The window class name - for the hull widget is set to the most-specific class name for - the megawidget. Derived classes specialise this class by - creating other widget components as children of the hull widget.

- -

- - -
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
-
- -

Methods

-This megawidget has no methods of its own. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaArchetype. -In addition, methods from the -Tkinter.Frame class -are forwarded by this megawidget to the -hull component. -

-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 22 May 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/MenuBar.gif b/Pmw/Pmw_1_2/doc/MenuBar.gif deleted file mode 100644 index aa7a7bf88eafed57d468ac3bee0d5a5a2542b097..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q(%Nk%v~VcG#50Pz3-|Ns90007z9*@A+CEC2ui0NMc^00091gpR4p?GK}z zwAzca-n{z{hT_N!28pKX%C_zc$8u`U_KoNI&i8xm3krwCqVWg5x|ln5oGlSh?oeaEO2j=|MUQdfG6kTDtiP+tX8d+{sYv{7k@yXcjjd};&I`T1DSbZfns8kQzO9aW z%$#0}d-s-X?;kaC=J>HY7>i!9fdv^V5G77qFk${sNenkEo-*KM@fKRdhcM(bcN4dj zLjW=3MuQL{el!_PCC73eFKWCgGN+$e-3VH{)hp;q4K6RVA;D%A<~49`?P zK^=1Wu0qdUHZgLYR`BIMu{fie^+M9-9#U6j4m>&yV9lq(SP9hEQSQfOEYJF-B8@NE zWDBlog8MhI;))T}DC~RTF=RfHn=QT!wQ_`eh5;eQ4Eii*prK2fzTEk=>ecH~vwjU5 zkn7mAYk!$-JGbsAxOe;hUBtwI;lzs@KaM=P^5x8%JAV#6y7cMPt6RU0J-hbp+`D`K Ip1c46I~k4xXaE2J diff --git a/Pmw/Pmw_1_2/doc/MenuBar.html b/Pmw/Pmw_1_2/doc/MenuBar.html deleted file mode 100644 index e2c04a6c..00000000 --- a/Pmw/Pmw_1_2/doc/MenuBar.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - Pmw.MenuBar reference manual - - - - -

Pmw.MenuBar

- -
-
-

Name

-

Pmw.MenuBar() - - manager megawidget for menu buttons and menus -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- A menu bar is a container megawidget which manages a number of - menu buttons and dropdown menus. There - are methods to add menu buttons and menus to the menu bar and for - adding menu items to the menus. Menu buttons may be added to the - left or right of the megawidget. Each menu button and menu item may - have help text to be displayed by a Pmw.Balloon. Each menu - and cascaded menu (sub-menu) is referenced by name which is - supplied on creation.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
balloon -
-Specifies a Pmw.Balloon to display the help text for menu - buttons and menu items. If None, no help is displayed. If the - balloon has an associated Pmw.MessageBar, the help text will also be - displayed there. The default is None.

- - -
- -
hotkeys -
-Initialisation option. If true, keyboard accelerators will be assigned to each menu - button and menu item. Keyboard accelerators can be used to access - the menus without using the mouse. The accelerator character is - always one of the alphanumeric characters in the text label of the - menu or menu item and is indicated by an underline.

-

To select a menu, simultaneously press the <Alt> key and the - accelerator character indicated on a menu button. The arrows keys - can then be used to select other menus and menu items. To invoke a - menu item, press <Return> or press the accelerator character - indicated on the menu item.

- -

Each accelerator character will be assigned automatically unless - traverseSpec is supplied to the addmenu(), addmenuitem() or - addcascademenu() methods. The automatically selected - accelerator character for a menu button (or menu item) is the - first character in the label text that has not already been used - as an accelerator for a menu button (or in the menu containing the - menu item).

- -

If traverseSpec is given, it must be either an integer or a - character. If an integer, it specifies the index of the character - in the label text to use as the accelerator character. If a - character, it specifies the character to use as the accelerator - character. The default is 1.

- - - -
- -
padx -
-Initialisation option. Specifies a padding distance to leave between each menu button in - the x direction and also between the menu buttons and the outer - edge of the menu bar. The default is 0.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
-
-

Dynamic components

-

- Menu button components are created dynamically by the - addmenu() method. By default, these are of type - Tkinter.Menubutton and are created with a component group of - Button.

- -

Menu components are created dynamically by the addmenu() and - addcascademenu() methods. By default, these are of type - Tkinter.Menu and are created with a component group of Menu.

-

- - - -
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -

- -
addcascademenu(parentMenuName, menuName, statusHelp = '', traverseSpec = None, **kw)
-Add a cascade menu (sub-menu) to the menu parentMenuName. The - menuName argument must not be the same as any menu already - created using the addmenu() or addcascademenu() methods.

-

A menu item in the parent menu is created (with the - add_cascade() method of the parent menu) using all keyword - arguments except tearoff.

- -

If the label keyword argument is not given, the label option - of the menu item defaults to menuName. If the underline - keyword argument is not given (and the hotkeys megawidget option - is true) the underline option is determined as described under - hotkeys and is used to specify the keyboard accelerator.

- -

The statusHelp argument is used as the help string for the menu - item. This is displayed using the showstatus() method of the - balloon.

- -

The tearoff keyword argument, if present, is passed to the - constructor of the menu. The menu is created as a component named - menuName-menu.

- - - -
- -
addmenu(menuName, balloonHelp, statusHelp = None, side = 'left', traverseSpec = None, **kw)
-Add a menu button and its associated menu to the menu bar. The - menuName argument must not be the same as any menu already - created using the addmenu() or addcascademenu() methods.

-

Any keyword arguments present (except tearoff) will be passed to - the constructor of the menu button. If the text keyword - argument is not given, the text option of the menu button - defaults to menuName. If the underline keyword argument is - not given (and the hotkeys megawidget option is true) the - underline option is determined as described under hotkeys and - is used to specify the keyboard accelerator. Each menu button is - packed into the menu bar using the given side, which should be - either left or right. The menu button is created as a - component named menuName-button.

- -

If the balloon option has been defined, balloonHelp and - statusHelp are passed to the balloon as the help strings for the - menu button. See the bind() method of Pmw.Balloon for how these - strings may be displayed.

- -

The tearoff keyword argument, if present, is passed to the - constructor of the menu. The menu is created as a component named - menuName-menu.

- - - -
- -
addmenuitem(menuName, itemType, statusHelp = '', traverseSpec = None, **kw)
-Add a menu item to the menu menuName. The kind of menu item is - given by itemType and may be one of command, separator, - checkbutton, radiobutton or cascade (although cascade menus - are better added using the addcascademenu() method). Any - keyword arguments present will be passed to the menu when creating - the menu item. See Tkinter.Menu for the valid options for each - item type. In addition, a keyboard accelerator may be - automatically given to the item, as described under hotkeys.

-

When the mouse is moved over the menu item, the helpString will - be displayed by the balloon's statuscommand.

- - - -
- -
deletemenu(menuName)
-Delete the menu menuName and all its items. The menu may either - be a toplevel menu (in which case the corresponding menu button is - also deleted) or a cascade menu.

- - -
- -
deletemenuitems(menuName, start, end = None)
-Delete menu items from the menu menuName. If end is not - given, the start item is deleted. Otherwise all items from - start to end are deleted.

- - -
- -
disableall()
-Disable all toplevel menus.

- - -
- -
enableall()
-Enable all toplevel menus.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create the Balloon.
-        self.balloon = Pmw.Balloon(parent)
-
-        # Create and pack the MenuBar.
-        menuBar = Pmw.MenuBar(parent,
-                hull_relief = 'raised',
-                hull_borderwidth = 1,
-                balloon = self.balloon)
-        menuBar.pack(fill = 'x')
-        self.menuBar = menuBar
-
-        # Add some buttons to the MenuBar.
-        menuBar.addmenu('File', 'Close this window or exit')
-        menuBar.addmenuitem('File', 'command', 'Close this window',
-                command = PrintOne('Action: close'),
-                label = 'Close')
-        menuBar.addmenuitem('File', 'separator')
-        menuBar.addmenuitem('File', 'command', 'Exit the application',
-                command = PrintOne('Action: exit'),
-                label = 'Exit')
-
-        menuBar.addmenu('Edit', 'Cut, copy or paste')
-        menuBar.addmenuitem('Edit', 'command', 'Delete the current selection',
-                command = PrintOne('Action: delete'),
-                label = 'Delete')
-
-        menuBar.addmenu('Options', 'Set user preferences')
-        menuBar.addmenuitem('Options', 'command', 'Set general preferences',
-                command = PrintOne('Action: general options'),
-                label = 'General...')
-
-        # Create a checkbutton menu item.
-        self.toggleVar = Tkinter.IntVar()
-        # Initialise the checkbutton to 1:
-        self.toggleVar.set(1)
-        menuBar.addmenuitem('Options', 'checkbutton', 'Toggle me on/off',
-                label = 'Toggle',
-                command = self._toggleMe,
-                variable = self.toggleVar)
-        self._toggleMe()
-
-        menuBar.addcascademenu('Options', 'Size',
-                'Set some other preferences', traverseSpec = 'z', tearoff = 1)
-        for size in ('tiny', 'small', 'average', 'big', 'huge'):
-            menuBar.addmenuitem('Size', 'command', 'Set size to ' + size,
-                    command = PrintOne('Action: size ' + size),
-                    label = size)
-
-        menuBar.addmenu('Help', 'User manuals', side = 'right')
-        menuBar.addmenuitem('Help', 'command', 'About this application',
-                command = PrintOne('Action: about'),
-                label = 'About...')
-
-        # Create and pack the main part of the window.
-        self.mainPart = Tkinter.Label(parent,
-                text = 'This is the\nmain part of\nthe window',
-                background = 'black',
-                foreground = 'white',
-                padx = 30,
-                pady = 30)
-        self.mainPart.pack(fill = 'both', expand = 1)
-
-        # Create and pack the MessageBar.
-        self.messageBar = Pmw.MessageBar(parent,
-                entry_width = 40,
-                entry_relief='groove',
-                labelpos = 'w',
-                label_text = 'Status:')
-        self.messageBar.pack(fill = 'x', padx = 10, pady = 10)
-        self.messageBar.message('state', 'OK')
-
-        buttonBox = Pmw.ButtonBox(parent)
-        buttonBox.pack(fill = 'x')
-        buttonBox.add('Disable\nall', command = menuBar.disableall)
-        buttonBox.add('Enable\nall', command = menuBar.enableall)
-        buttonBox.add('Create\nmenu', command = self.add)
-        buttonBox.add('Delete\nmenu', command = self.delete)
-        buttonBox.add('Create\nitem', command = self.additem)
-        buttonBox.add('Delete\nitem', command = self.deleteitem)
-
-        # Configure the balloon to displays its status messages in the
-        # message bar.
-        self.balloon.configure(statuscommand = self.messageBar.helpmessage)
-
-        self.testMenuList = []
-
-    def _toggleMe(self):
-        print 'Toggle value:', self.toggleVar.get()
-
-    def add(self):
-        if len(self.testMenuList) == 0:
-            num = 0
-        else:
-            num = self.testMenuList[-1]
-        num = num + 1
-        name = 'Menu%d' % num
-        self.testMenuList.append(num)
-
-        self.menuBar.addmenu(name, 'This is ' + name)
-
-    def delete(self):
-        if len(self.testMenuList) == 0:
-            self.menuBar.bell()
-        else:
-            num = self.testMenuList[0]
-            name = 'Menu%d' % num
-            del self.testMenuList[0]
-            self.menuBar.deletemenu(name)
-
-    def additem(self):
-        if len(self.testMenuList) == 0:
-            self.menuBar.bell()
-        else:
-            num = self.testMenuList[-1]
-            menuName = 'Menu%d' % num
-            menu = self.menuBar.component(menuName + '-menu')
-            if menu.index('end') is None:
-                label = 'item X'
-            else:
-                label = menu.entrycget('end', 'label') + 'X'
-            self.menuBar.addmenuitem(menuName, 'command', 'Help for ' + label,
-                    command = PrintOne('Action: ' + menuName + ': ' + label),
-                    label = label)
-            
-    def deleteitem(self):
-        if len(self.testMenuList) == 0:
-            self.menuBar.bell()
-        else:
-            num = self.testMenuList[-1]
-            menuName = 'Menu%d' % num
-            menu = self.menuBar.component(menuName + '-menu')
-            if menu.index('end') is None:
-                self.menuBar.bell()
-            else:
-                self.menuBar.deletemenuitems(menuName, 0)
-            
-class PrintOne:
-    def __init__(self, text):
-        self.text = text
-
-    def __call__(self):
-        print self.text
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 22 April 2000 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/MessageBar.gif b/Pmw/Pmw_1_2/doc/MessageBar.gif deleted file mode 100644 index 0dc444658814786e25a8be6dbe9f9b13cff5234c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmV;k0Zjf!Nk%v~VU7VT0Pz3-|Ns90007z9*@A+CEC2ui0FD7H00091l#i*)?GK}z zwAzca-n{z{hT=$;=82~2%C_zc$MQ_q_KoNI&iDQg3<`(DqVb4KDwoWr^9hYgr_`$T zip^@b+^+Wv4kHKTviXcotJmzd`wfrF=k&V$j?e4&1Lgn#7$`VMSZH{Nn5ekO*y#8O z87VnQS!sFc2Oze|nevy}87d0$xl}renp$zn5#Z{=swz9H5R36@fE)0z%VA3ktom!w zd(d0VfSfTL+}z1bp`7b_Og;UITuiN<0PXz!uH*;}MOF3Y0+<_>m$)gaSBf zJQ>7fIdcWiP1F@qpF2$`YeG?(z}m`d11%2RWsclTn?xJZRD!dpQW;5UG+hdn#Z#t7 zqgwSbHAdE}TtjSq@rRGtv1H4dJ&QK2S~^w7TzU&PuH3nF>)O3Lx2xX0eEa(S3plXg d!GsGNK8!fA;>C;`JAMo~vgFB>D|adY06W$N+F1Yq diff --git a/Pmw/Pmw_1_2/doc/MessageBar.html b/Pmw/Pmw_1_2/doc/MessageBar.html deleted file mode 100644 index 69be04e7..00000000 --- a/Pmw/Pmw_1_2/doc/MessageBar.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - Pmw.MessageBar reference manual - - - - -

Pmw.MessageBar

- -
-
-

Name

-

Pmw.MessageBar() - - information line for displaying short messages -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- A message bar contains a single-line message display area. Messages - of several different types may displayed. Messages are cleared - after a period defined for each message type. Each message type - has a priority so that if the application attempts to display more - than one message at a time, the message with the highest priority - will be displayed. Messages may be accompanied by a number of - audible bells.

- -

This megawidget can be used for both interactive help messages - (when the mouse enters certain widgets) and also for other general - messages.

- -

To perform the help function it can cooperate with the Pmw.Balloon - megawidget so that the programmer (or user) can choose either - balloon help, message bar help, both or neither.

- -

This megawidget supports a configurable number of message types. - The default types include 'state', 'help', 'usererror' and - 'systemerror'. The difference between these are the length of - time they are displayed, the number of bells that are rung and the - priority of the message. For example, the 'help' message type - is lower in priority than the 'usererror', so that error - messages will always be displayed in preference to help messages - regardless of the order the messages are created. The 'state' - message type is lowest in priority but has no timeout, so it - should contain messages describing the current state of the - application, such as Waiting for database connection or 'Waiting - for file to be unlocked'. Generally this should be set to the - empty string when the application is running normally. By default - the help messages (with message type 'help') time out after 5 - seconds, so that if the cursor happens to be left over a widget, - the application state will be redisplayed after a short time.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
messagetypes -
-Initialisation option. This defines what message types are supported by the message bar - and the characteristics of those message types. It is a - dictionary where the key is a string specifying a message type and - the value is a tuple of four integers, (priority, showtime, - bells, logmessage), where priority is the rank of the - message type, showtime is the number of seconds to display - messages of this message type, bells is the number of audible - bells to ring and logmessage is a boolean - specifying whether this message should be logged for retrieval - later. Messages with a higher priority are displayed in - preference to those with lower priority. If a high priority - message times out (because it has been displayed for showtime - seconds), then a lower priority message may be displayed. A - showtime of 0 means that the message will never time out and - is useful for displaying messages describing the current state of - the application as opposed to messages describing events. Logging - is not currently implemented. The default is

-
 {
-     'systemerror'  : (5, 10, 2, 1),
-     'usererror'    : (4, 5, 1, 0),
-     'busy'         : (3, 0, 0, 0),
-     'systemevent'  : (2, 5, 0, 0),
-     'userevent'    : (2, 5, 0, 0),
-     'help'         : (1, 5, 0, 0),
-     'state'        : (0, 0, 0, 0),
- }
- - - -
- -
silent -
-If true, no audible bells will sound, regardless of the value for - bells defined in the messagetypes option. The default is 0.

- - -
- -
sticky -
-Initialisation option. The default is 'ew'.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
entry -
-The widget where the messages are displayed. Long messages may be - scrolled horizontally by dragging with the middle mouse button. By default, this component is a Tkinter.Entry.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -In addition, methods from the -Tkinter.Entry class -are forwarded by this megawidget to the -entry component. -

- -
helpmessage(text)
-A convenience method to display text in the message bar - according to the characteristics defined by the help message type. - Equivalent to message('help', text).

- - -
- -
message(type, text)
-Display text in the message bar according to the characteristics - defined by the type message type, as discussed under - messagetypes.

- - -
- -
resetmessages(type)
-Clear the type message and all message types with a lower - priority, except permanent messages, such as state. This is - useful to clear the busy message and any outstanding event and - help messages.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create and pack the MessageBar.
-        self._messagebar = Pmw.MessageBar(parent,
-                entry_width = 40,
-                entry_relief='groove',
-                labelpos = 'w',
-                label_text = 'Status:')
-        self._messagebar.pack(side = 'bottom', fill = 'x',
-                expand = 1, padx = 10, pady = 10)
-
-        # Create and pack the ScrolledListBox to change the MessageBar.
-        self.box = Pmw.ScrolledListBox(parent,
-                listbox_selectmode='single',
-                items=('state', 'help', 'userevent', 'systemevent',
-                        'usererror', 'systemerror', 'busy',),
-                label_text='Message type',
-                labelpos='n',
-                selectioncommand=self.selectionCommand)
-        self.box.pack(fill = 'both', expand = 'yes', padx = 10, pady = 10)
-
-        self._index = 0
-        self._stateCounter = 0
-
-    def selectionCommand(self):
-        sels = self.box.getcurselection()
-        if len(sels) > 0:
-            self._index = self._index + 1
-            messagetype = sels[0]
-            if messagetype == 'state':
-                self._stateCounter = (self._stateCounter + 1) % 3
-                text = stateMessages[self._stateCounter]
-                if text != '':
-                    text = text + ' (' + messagetype + ')'
-                self._messagebar.message('state', text)
-            else:
-                text = messages[messagetype]
-                text = text + ' (' + messagetype + ')'
-                self._messagebar.message(messagetype, text)
-                if messagetype == 'busy':
-                    Pmw.showbusycursor()
-                    self.box.after(2000)
-                    Pmw.hidebusycursor()
-                    self._messagebar.resetmessages('busy')
-                    text = 'All files successfully removed'
-                    text = text + ' (userevent)'
-                    self._messagebar.message('userevent', text)
-
-
-messages = {
-    'help': 'Save current file',
-    'userevent': 'Saving file "foo"',
-    'busy': 'Busy deleting all files from file system ...',
-    'systemevent': 'File "foo" saved',
-    'usererror': 'Invalid file name "foo/bar"',
-    'systemerror': 'Failed to save file: file system full',
-}
-
-stateMessages = {
-    0: '',
-    1: 'Database is down',
-    2: 'Waiting for reply from database',
-}
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/MessageDialog.gif b/Pmw/Pmw_1_2/doc/MessageDialog.gif deleted file mode 100644 index f6ac164348bf965727373d187d747a252628fd14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3374 zcmV+}4bk#PNk%v~VKo8V0P+9;|Ns90007z9*}!0TU@$v^f`b2srvLx|EC2ui05t*J z000C2Xu8}^F3L%(y*TU5yZ>OwK%z#FWvZ@h>%OpYdgN)}crNFB@BhG{a7Zi~kI1BQ z$+Yc?GDUMrty-_xtagi(N>LbaY)mej&myr!U8#LdY_xn%ud`+ueAvBH4E}(Dfp~(2 zhKGoWii?bmj*pO$l9QB`1B8s2i+D98jhdFBhyekCq>QHnsi>u~O~wCw8b$@A^<@%roe-?-ic1st?3o1%gL9+As8@7%(N@oG7I7j7TJi1=(xylDOp zqr8Lw4K^S^&`%*?0t=d)K=P77kl;F2{5Vr4GK#irF02W$W=#}eySTX6u z92;hq1Xu25$ZwT)!h7)L>PB0428HMB9bbQdon_s3EHrO^$bsGtMmx6TrB6=C{>2>g z^6S`(PRsr{lWlC1tGaB?y}bEKy3afP-i`hG@a~_hpHE-&_VeQN)2&{=zyAOK{CP(n zcu_cEM08vvsNjMOHrND$K|lzEgbr3{;e{AxsG$>50N~+=AciR7h$NP1;)y7xsN#w& zw&>!EFvck3j5Gou#t8rjpyQ4__UPk}Kn5w~kVF<~&7Dv9p9 z^=5l-z5pvL@3ztQJMO;$C*177Nt%OY06Ic^roo0HtnkI^GHfI%JaQbR#1e~1F^}Y8 zY%<9j7a8)7D=!K1wBlAg?8!9mJ7mi~I?VDo9drCL&jPdzGSFkjOtQr^2W+#DIQJa! z&`(DlG}KcE-6O;vd#tR{>LQ(VzDozWvd&{i+_Bj#qm6dRFQ;8JyNG^ma@asN-S*mN zTkUq)dh2ag)6H_NW65$WO!tp=tL=B*eDl3{-${<#^~{C-Cww^KIV*nm<9NGmHQP^0 zKDgJFn|pcAY-dfi>Qb{__0F)rzBSyEmTq~<8)v<<)>HG&^Uu6P-aFud(@v`G0G}Qx z@p=kQCF#g>tNfqAhweP#(esP@qSae(yt~*ENtNiOE|al$*@x|teFjOn5i6^aECm6 z6%8>K!yw{th!-oO5qpS4!vPUo-Ai5*E%!uj`E34fQ&d_NrFBK-rOSskq#wYrCOoBO zF?m~zRu_qQMzEzZS!DF$7u$$0C7NrENu(pa-UvrBvJriDyki;7IKE#QvPK*<*%ki? zq(eF~M*oW&#{9_0ACd2ik*wV$DQUR=fh&J}EEXp_S;#tO@_0*}VJYc#O7Nw!RQF3^ zD$ei9|V~$(ZAsr5R8w83)Tk0_s;zpeB&{mam|9D#n&hgkyeciQqEf8JB5T2_idI3X zb$tVEYo4(BLAJ_uPSnz%UiZq^1;+KRbUIdF2TNGJ{uQut0wWPaiP(4nlCh1Al46qx z*~o^@rKYQ_W%Y&G_i1*sdg|;aKMUG1iPnCkEiIc)D?QR$bdfSG*XB%Gr^z}Iq*4+Z z<^;)0ovz8YRK)GaVmn5a&6TxZ{!Q&ku{KVlVveT6>)B1GyHHBn@@k7rU2}t4-QGe8 zxLOo0l!ltqlse6(t=pV>)5~6)Ds-N%Tb+En1YR_X_er{Ks24A~-a*Q-zx+%oPyt-i zEY;VI_jMU@?{;0!9hITnm2P!)w>Jpal)+?kXn-9XzCbGY!WgX{e|=lj*lm}iO#A1F zHC$jU9k`Cl4Je9-DQzEz;u(AQvX4!$lJeWR0FT(cEUs{Sutr z$gW9)?wj=N;mqfZyIr%rHp0H% zHR6b7>s-fC*ivF=6tgMm+(Fr)2xW4KmyFWXJ=?q{o^NcWO-~?Ov)0yzC9U--Y8`Jo z#|lMvjg#EDgSPvfCB?S44P9#*b86GH9B;JCDd~wF}y$C=Y^y0` zPoKAsE*bRUc|71oovnpE3Ui@jnYq9|Il;SE>@m0e-|>#_uzT%aPHLCZ*)sLg*G=@j z%N*87XX#cQ4O5dBxWAvBY~UsdnmW-9K*#JrjN-qIXD zKAD=I;eNJ=H`n`h@3r>RzI@=<_4>qr@U`uR`Swpc z=alDjZT`)#>EZK!@g#?~!Hv9Iu&1^9jD~(;;(tCCcM#@(4R=)XlyLJ`NQL!)5a?H& zcUE*lfHkLK3W$GV(>4Y8d*c&V6=SbjmadU%3$m)B7+h+ayj zc|GQSu2y&*7Gt1RdQ>-UYnO8S)=cH(cFsj&nD%%D!-HF5d-XGA{KAAElXb5Igw#f@A0{N|-)a2zgxSSz>sGL(+z$^@ecxDQOr#Ye;x< zh+1@5hk4h6gXf2mb%*$qhmHm+BAAGYcrbk^h>>R~CX*;0=7=68iIK>NW=M$&2Z_95 z{%4+8BC&#rfvAa*V~L&kiKzG?%p!?~m}rO?D}=awt0;<{M~bC5F0goLyh4iu*FjFVH0#<*Iz2#w0Pi^MpJ z+Zczy*jZd=EVCGnwK$IC*p1d$dnSgC*f=`V=!n(mQu*bCQkIU)sEzEnFz&ca#B+DJ zc7%4qkJ%`W|M-WT_>NX4bWc`;T6j*<=#L9&DCPJt2i1Y{<~`upj|zE_kBE%km|Gh; zgm*WQD^-ypDUySekyA2|`Zsk3hLH4VkuFIkFd36F#dsoDlk+$~IO&r2sA?_#7j=85 zl5uF0LfMi;xswm$I|eCt?TjrgN1LkONw&T1EMdtjHlU5SFDimbvti z*|-3lmXjl?F3Gr-EV+(w`H}${jlB4lcd3(kNtSz=Z+(fE4T+Yu<(2g)h-&#uYttghJcrkU^i+%Zwpc$Bkxmk#qimEvxra71x35a%i zmwVV+iRp*4nOwD5hqqZ)otc)W2}`{RTD!S~WulqJd7Q|pnZS~q%t=@Uu_4eIozgj- z)QJP(!2xk#2im!v+}WKVkezKn1K{bMy*&yu+1PK5D EJ0Y9oMF0Q* diff --git a/Pmw/Pmw_1_2/doc/MessageDialog.html b/Pmw/Pmw_1_2/doc/MessageDialog.html deleted file mode 100644 index f3e35884..00000000 --- a/Pmw/Pmw_1_2/doc/MessageDialog.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - - - Pmw.MessageDialog reference manual - - - - -

Pmw.MessageDialog

- -
-
-

Name

-

Pmw.MessageDialog() - - a dialog displaying a text message and an icon -

- - -
-

Inherits

-Pmw.Dialog
-
-

Description

-

- A message dialog is a dialog window which displays a simple - message to the user along with one or more buttons to press.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
activatecommand -
-If this is callable, it will be called whenever the megawidget is - activated by a call to activate(). The default is None.

- - -
- -
borderx -
-Initialisation option. The padding to the left and right of the text message and icon. The default is 20.

- - -
- -
bordery -
-Initialisation option. The padding above and below the text message and icon. The default is 20.

- - -
- -
buttonboxpos -
-Initialisation option. Specifies on which side of the dialog window to place the button - box. Must be one of 'n', 's', 'e' or 'w'. The default is 's'.

- - -
- -
buttons -
-This must be a tuple or a list and specifies the names on the - buttons in the button box. The default is ('OK',).

- - -
- -
command -
-Specifies a function to call whenever a button in the button box - is invoked or the window is deleted by the window manager. The - function is called with a single argument, which is the name of - the button which was invoked, or None if the window was deleted - by the window manager.

-

If the value of command is not callable, the default behaviour - is to deactivate the window if it is active, or withdraw the - window if it is not active. If it is deactivated, deactivate() - is called with the button name or None as described above. The default is None.

- - - -
- -
deactivatecommand -
-If this is callable, it will be called whenever the megawidget is - deactivated by a call to deactivate(). The default is None.

- - -
- -
defaultbutton -
-Specifies the default button in the button box. If the <Return> - key is hit when the dialog has focus, the default button will be - invoked. If defaultbutton is None, there will be no default - button and hitting the <Return> key will have no effect. The default is None.

- - -
- -
iconmargin -
-Initialisation option. The padding between the text message and icon. The default is 20.

- - -
- -
iconpos -
-Initialisation option. Specifies on which side of the text message to place the icon. - Must be one of 'n', 's', 'e' or 'w'. The default is None.

- - -
- -
master -
-This is used by the activate() method to control whether the - window is made transient during modal dialogs. See the - activate() method. The default is 'parent'.

- - -
- -
separatorwidth -
-Initialisation option. If this is greater than 0, a separator line with the specified - width will be created between the button box and the child site, - as a component named separator. Since the default border of the - button box and child site is raised, this option does not - usually need to be set for there to be a visual separation between - the button box and child site. The default is 0.

- - -
- -
title -
-This is the title that the window manager displays in the title - bar of the window. The default is None.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
buttonbox -
-This is the button box containing the buttons for the dialog. By - default it is created with the options - (hull_borderwidth = 1, hull_relief = 'raised'). By default, this component is a Pmw.ButtonBox.

- - -
- -
dialogchildsite -
-This is the child site for the dialog, which may be used to - specialise the megawidget by creating other widgets within it. By - default it is created with the options - (borderwidth = 1, relief = 'raised'). By default, this component is a Tkinter.Frame.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Toplevel.

- - -
- -
icon -
-If the iconpos option is not None, this component is created - to contain the icon label for the dialog. To display a bitmap as - an icon, set the icon_bitmap component option to any of the - forms acceptable to Tk, such as 'warning' or 'error'. By default, this component is a Tkinter.Label.

- - -
- -
message -
-The label to contain the text message for the dialog. To set - the text, use the message_text component option. By default, this component is a Tkinter.Label.

- - -
- -
separator -
-If the separatorwidth initialisation option is non-zero, the - separator component is the line dividing the area between the - button box and the child site. By default, this component is a Tkinter.Frame.

- - -
-
- -

Methods

-This megawidget has no methods of its own. -For a description of its inherited methods, see the -manual for its base class -Pmw.Dialog. -

-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        self.parent = parent
-
-        # Create dialog 1.
-        self.dialog1 = Pmw.MessageDialog(parent,
-            title = 'Simple message dialog',
-            defaultbutton = 0,
-            message_text = 'A simple message dialog\nwith no callback.')
-        self.dialog1.iconname('Simple message dialog')
-        self.dialog1.withdraw()
-
-        # Create dialog 2.
-        self.dialog2 = Pmw.MessageDialog(parent,
-            title = 'Bell ringing dialog',
-            message_text = 'This message dialog\nwill ring the bell ' +
-                'when\nyou click on the buttons.',
-            iconpos = 'w',
-            icon_bitmap = 'error',
-            command = self.execute2,
-            buttons = ('One', 'Two', 'Three', 'Close'))
-        self.dialog2.iconname('Bell ringing dialog')
-        self.dialog2.withdraw()
-
-        # Create dialog 3.
-        self.dialog3 = Pmw.MessageDialog(parent,
-            title = 'Vertical button dialog',
-            message_text = 'This message dialog\nhas the buttons on the\n' +
-                'right hand side.',
-            buttonboxpos = 'e',
-            iconpos = 'n',
-            icon_bitmap = 'warning',
-            buttons = ('Goodbye', 'Au revoir', 'Sayonara', 'Close'),
-            defaultbutton = 'Close')
-        self.dialog3.iconname('Vertical button dialog')
-        self.dialog3.withdraw()
-
-        # Create some buttons to launch the dialogs.
-        w = Tkinter.Button(parent, text = 'Simple dialog',
-                command = lambda self = self:
-                        self.dialog1.activate(geometry = 'first+100+100'))
-        w.pack(padx = 8, pady = 8)
-
-        w = Tkinter.Button(parent, text = 'Bell ringing dialog',
-                command = self.dialog2.activate)
-        w.pack(padx = 8, pady = 8)
-
-        w = Tkinter.Button(parent, text = 'Vertical buttons',
-                command = self.dialog3.activate)
-        w.pack(padx = 8, pady = 8)
-
-        w = Tkinter.Button(parent, text = 'On the fly dialog',
-                command = self._createOnTheFly)
-        w.pack(padx = 8, pady = 8)
-
-    def execute2(self, result):
-        print 'You clicked on', result
-        if result is None:
-            self.dialog2.deactivate(result)
-        elif result == 'Close':
-            self.dialog2.deactivate(result)
-        else:
-            for count in range({'One': 1, 'Two': 2, 'Three': 3}[result]):
-                if count != 0:
-                    self.dialog2.after(200)
-                self.dialog2.bell()
-
-    def _createOnTheFly(self):
-        dialog = Pmw.MessageDialog(self.parent,
-            title = 'On the fly dialog',
-            defaultbutton = 0,
-            buttons = ('OK', 'Apply', 'Cancel', 'Help'),
-            message_text = 'This dialog was created when you clicked ' +
-                'on the button.')
-        dialog.iconname('Simple message dialog')
-        result = dialog.activate()
-
-        print 'You selected', result
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 18 May 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/NoteBook.gif b/Pmw/Pmw_1_2/doc/NoteBook.gif deleted file mode 100644 index 206a88d396dccfdec3f2dbb9edc3e6a721ac6811..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2585 zcmV+!3g-1kNk%v~VUPja0Pz3-|Ns90007z9*@A+CEC2ui0FVLO00091l#i*)?GK}z zwAzca-n{z{hT=$;=82~2%C_zc$MQ_q_KoNI&iDQg3<`(DqVb4KDwoWr^9hYgr_`$T zip^@b-0lJZ4vWX+viXcotJiD*q79GB(eJtazV^oO{JwuZVDLBC7brl8C}*h062=HI z5b4+yIWVbI`M3h632Eu}BniqC*_py=+8_$GO1YRyf(on9>QuW_IvYExdvHtoY5Usy zAxkXqiyQ2E9AZqIjJXWl4D#F?os?~qTitQ3yL}{1)a|_i{t&Q5ez2bK&JfSi?(SoL zo{{b_e^oEg4-u#J5bxtWkRT$Y&ZbJ3FFkFPi1Oyhm?}Hw>`Brhtzj88@`4c3B+RKh ztERjvG$&Q8TeDX6`LqGVt}Mw~_1ZA4gNjUpGe0dO~K+4>+^dIoC1A$wPxT=6GQyyuyr)Qywm1c5SN7KO>G_mv`^5f%956 zjodkS@zp6PKmJ_!^YCCNOt(({@<6)Uol5xo)+^loQvTfr*N>KLhs}4}R{0r7m|BMU z_8wmV9{3%7_1(oCd&lWSRB1=;1lvau<|dkM19s<~hKywhT!`2)NLXzpVPzCgL-i!! zgcNpwpEAB-pp*y&fzV@e+1aSTjwE`g&4?ic3Br#Wz}4iCMAm_$g-AGQ0h1qKnSqH> zP6>gLU2u7jlH*7T<{=frLM9Jw=CE6uYI^gg4t3rTXPRPiaVHLa){rNdd$MEZm4y}& z=#+zM@#jT{mV>6CYo;PfB9>l?X{MTP$|(kmX7LH9qK-;xsis;QDFdI%$?7?YelcmQ zvTFBgk+IH-YeuyuuxhTpYO*VpzYc3xum|)?{%o?KrV6XF&Q@crAh$kC?U>BkT5YzJ zUd!vW+I~w#v~z+>E}z^ATW-4koO`Ud>b`rXr|!Z_uMpxQTW`KJ+&izn{=&(wwEqr_ zXu#tVjPMWqCd_b|@-CTJY)~=RFuV(spk;U&SDfv|BW%2!f*il=u?P^M_!3|!M@8ev zxt6>nX%Idb*Hx!$zc#uO<5E z`j*Z>&aJ1edcCYK;5zNF$8Is>nQM)^;4n)K1Ir#FK0M(4cF+{LRh# z@;vX+k378r$RDr#^&RVO!QI_^Pi^+dR8M#kY9JOg42h$&^>7h`{Qd?YYXiQ0)*q3^ zkSW*yqzeF0UT28Z{p2RV1X;m++Z)>WUXYI6=4Fv4P`gpAlZjkCPp!L6V`_Xlk|} zr2tWb{Ym0yj2NI6y#-0!;GzBmLWqPV1`$b#i_r;7^tQ{iuW!ww9SpfRo-z7OiV@PG zovgT-(21~h%sOJ<#8?>5ln0M30^4@zI59M~u`<7*7;(PVGDN{KOmfWP2(Q(}H0BY7 zlKc+>y9G!lQgV=OJS2M}DKq?~EqsmS-ygn1VB|}Im zDsq(iOP?b%2^|DIkve+pH z)TeSRs#0wjRjW!-r(%_;THWeVyXsY?f;Fs7jVM{mYSFWb)vRir>R8)q)wjYmt8ASs zUDImUid{9Y#gi*vJ?huL=4-Fo6zr@BE03CR&}W9lMqt|(vW+FQu~I;+mD0&gk(@-8 ziKJ|}9@{onI`fOew3%nCAXKFV(~yL;wzRD+)OZQP(9t2We(@t4?^p+$ z3U|1~6)tXj{>ah174em=gym`Z=~7JkkU)HMEiI?{T<9M6iVYQuVri31Vxm;zE84S#@6Ej1}+(GOHVZhE6k(t|!=HwKW4F7LO;7Wb9jpk=^pi_e9)HEqH&ft`6kDYWUMlC^a+HurAQ7!~1GG`VHXE z61eG@Z99WU8q}n7!SnGfX zmESX7_`n}Nd5KrN+V%eT#^ZhQ+{?1%FOT`mYu>h$cc9ll5BkuH{tk~HyyRJB+0#3g z;HuY5>RZny(8AtTvY$P)YH#};<39JR$2jkGwfo=4p7p}Faqx@p_TwXe?#f?2-a)td v=u3b4)UW<*J!SpuYk&LP@BYr55B~6rfBfVxzxmIP{`9MV{p`PQ0RR9y*@{4q diff --git a/Pmw/Pmw_1_2/doc/NoteBook.html b/Pmw/Pmw_1_2/doc/NoteBook.html deleted file mode 100644 index 38601f7e..00000000 --- a/Pmw/Pmw_1_2/doc/NoteBook.html +++ /dev/null @@ -1,344 +0,0 @@ - - - - - - Pmw.NoteBook reference manual - - - - -

Pmw.NoteBook

- -
-
-

Name

-

Pmw.NoteBook() - - a set of tabbed pages -

- - -
-

Inherits

-Pmw.MegaArchetype
-
-

Description

-

- A notebook contains a set of tabbed pages. At any one time only - one of these pages (the selected page) is visible, with the - other pages being hidden "beneath" it. Another page in the - notebook may be displayed by clicking on the tab attached to the - page. The tabs are displayed along the top edge.

- -

Optionally, the notebook may be displayed without tabs. In this - case, another selection widget, such as Pmw.OptionMenu, may be used - to select the pages.

- -

This megawidget is derived from Pmw.MegaArchetype (not Pmw.MegaWidget - like most other megawidgets), with the hull class being - Tkinter.Canvas.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
arrownavigation -
-Initialisation option. If true and a tab button has the keyboard focus, then the Left and - Right arrow keys can be used to select the page before or after - the tab button with the focus. The default is 1.

- - -
- -
borderwidth -
-Initialisation option. The width of the border drawn around each tab and around the - selected page. The default is 2.

- - -
- -
createcommand -
-Specifies a function to call when a page is selected for the first - time. The function is called with a single argument, which is the - name of the selected page, and is called before the raisecommand - function. This allows the creation of the page contents to be - deferred until the page is first displayed. The default is None.

- - -
- -
lowercommand -
-Specifies a function to call when the selected page is replaced - with a new selected page. The function is called with a single - argument, which is the name of the previously selected page, and - is called before the createcommand or raisecommand functions. The default is None.

- - -
- -
pagemargin -
-Initialisation option. The margin (in pixels) around the selected page inside the - notebook's page border. The default is 4.

- - -
- -
raisecommand -
-Specifies a function to call when a new page is selected. The - function is called with a single argument, which is the name of - the selected page. The default is None.

- - -
- -
tabpos -
-Initialisation option. Specifies the location of the tabs. If 'n', tabs are created - for each page and positioned at the top of the notebook. If - None, no tabs are created, in which case another selection - widget can be used to select pages by calling the selectpage() - method. The default is 'n'.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
hull -
-This acts as the body for the megawidget. The contents of the - megawidget are created as canvas items and positioned in the - hull using the canvas coordinate system. By default, this component is a Tkinter.Canvas.

- - -
-
-

Dynamic components

-

- Page and tab components are created dynamically by the add() - and insert() methods. By default, the pages are of type - Tkinter.Frame and are created with a component group of Page - and the tabs are of type Tkinter.Button and are created with a - component group of Tab.

-

- - - -
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaArchetype. -In addition, methods from the -Tkinter.Canvas class -are forwarded by this megawidget to the -hull component. -

- -
add(pageName, **kw)
-Add a page at the end of the notebook. See the insert() method - for full details.

- - -
- -
delete(*pageNames)
-Delete the pages given by pageNames from the notebook. Each of - the pageNames may have any of the forms accepted by the - index() method.

-

If the currently selected page is deleted, then the next page, in - index order, is selected. If the end page is deleted, then the - previous page is selected.

- - - -
- -
getcurselection()
-Return the name of the currently selected page.

- - -
- -
index(index, forInsert = 0)
-Return the numerical index of the page corresponding to index. - This may be specified in any of the following forms:

-
name
Specifies the page labelled name.

- -
-
number
Specifies the page numerically, where 0 corresponds to - the first page.

- -
-
Pmw.END
Specifies the last page.

- -
-
Pmw.SELECT
Specifies the currently selected page.

- -
-

If forInsert is true, Pmw.END returns the number of pages - rather than the index of the last page.

- - - -
- -
insert(pageName, before = 0, **kw)
-Add a page to the notebook as a component named pageName. The - page is added just before the page specified by before, which - may have any of the forms accepted by the index() method. If - tabpos is not None, also create a tab as a component named - pageName-tab. Keyword arguments prefixed with page_ or - tab_ are passed to the respective constructors when creating the - page or tab. If the tab_text keyword argument is not given, the - text option of the tab defaults to pageName. If a page is - inserted into an empty notebook, the page is selected. To add a - page to the end of the notebook, use add(). The method returns - the pageName component widget.

- - -
- -
nextpage(pageIndex = None)
-If pageIndex is None, then select the page after the - currently selected page. Otherwise select the page after - pageIndex, which may have any of the forms accepted by the - index() method.

- - -
- -
page(pageIndex)
-Return the frame component widget of the page pageIndex, where - pageIndex may have any of the forms accepted by the index() - method.

- - -
- -
pagenames()
-Return a list of the names of the pages, in display order.

- - -
- -
previouspage(pageIndex = None)
-If pageIndex is None, then select the page before the - currently selected page. Otherwise select the page before - pageIndex, which may have any of the forms accepted by the - index() method.

- - -
- -
recolorborders()
-Change the color of the page and tab borders. This method is - required because the borders are created as canvas polygons and - hence do not respond to normal color changing techniques, such as - Pmw.Color.changecolor().

- - -
- -
selectpage(page)
-Select page to be the currently selected page. The page will be - raised and the previous selected page will be lowered.

- - -
- -
setnaturalsize(pageNames = None)
-Set the width and height of the notebook to be the maximum - requested width and height of the pages specified by pageNames. - If pageNames is None, the size of all pages are used to - determine the size of the notebook. Otherwise, pageNames must - be a list of page names whose sizes are to be used to determine - the size of the notebook. This method should be called after all - pages and their contents have been created. It calls - update_idletasks() so that the width and height of the pages can - be determined. This may cause the notebook to flash onto the - screen at the default size before resizing to the natural size.

- - -
- -
tab(pageIndex)
-Return the tab component widget of the page pageIndex, where - pageIndex may have any of the forms accepted by the index() - method. If tabpos is None, return None.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create and pack the NoteBook.
-        notebook = Pmw.NoteBook(parent)
-        notebook.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
-
-        # Add the "Appearance" page to the notebook.
-        page = notebook.add('Appearance')
-        notebook.tab('Appearance').focus_set()
-
-        # Create the "Toolbar" contents of the page.
-        group = Pmw.Group(page, tag_text = 'Toolbar')
-        group.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
-        b1 = Tkinter.Checkbutton(group.interior(), text = 'Show toolbar')
-        b1.grid(row = 0, column = 0)
-        b2 = Tkinter.Checkbutton(group.interior(), text = 'Toolbar tips')
-        b2.grid(row = 0, column = 1)
-
-        # Create the "Startup" contents of the page.
-        group = Pmw.Group(page, tag_text = 'Startup')
-        group.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
-        home = Pmw.EntryField(group.interior(), labelpos = 'w',
-            label_text = 'Home page location:')
-        home.pack(fill = 'x', padx = 20, pady = 10)
-
-        # Add two more empty pages.
-        page = notebook.add('Helpers')
-        page = notebook.add('Images')
-
-        notebook.setnaturalsize()
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 30 October 1999 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/OptionMenu.gif b/Pmw/Pmw_1_2/doc/OptionMenu.gif deleted file mode 100644 index a36b151ebdc8c4d383287e33885000326de69ab5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2354 zcmV-23C;FLNk%v~VJZQt0P+9;|Ns90007z9+3f7>f`WpMj*b8T00000EC2ui04f2h z000C2D7xJKFv>}*y*TU5yU#!%OZg&m(N#c&_g$?Vr4$a7Zk2en^pV z$!t1t$>eiNty(2f6)6ZVd+!)_Si!0ee}2i5dJab$TDEdhA+ddq&U-?#+W!OZm7rZrpuf)KSl(q@n5MKoEVr~ zfbxM#We=h1bmvs6)p%2*YSjueD+-ZM*t6!@gz=q96m~TLgJ{dYZt9EUKwn=;0!sbuvU%h2@R^3W9FWt^u0goJaF=vCI zIK_qx3}BP%*RCD76#&<>-pipeTV{tD^wr(BMOy@ClX2YQKUb>Gd<3?0$VUksL+&?m zV#_{%?|rG;I#AXbP@7HeoqWv3t0EVhY+<9kBz8Ki7>hVB8)3aSK|#KJm=$&Kn5w~kVF<~WNfWixZ?}09qHtgP(~@GjQr5J zBiH<*;-V{<|i!ZYYZ;vu8Ma zCbVFLC(tbl^=S`!FpNbFu8GQe8g+fBl`RIrGB<>`J5Za&F{jaGhq;?wkZwz1+Ny69 z?NxT)zw!ZiE@uGSr&v+(bR@8DZyAeCM8zFEUwjmYyYIy^fGb>D0-C`8eOp{?V{#@37EG;)K#{n3<2GVlnW_HrsP}WzyIzxRH)B8!LwP`~iXZK5D ztAVs;R_A1Kl;zU{jZO8ha~VUB@5(ll3*n1Fnp@=9y=0ZFwSx z9uQdh;FDbkdlRU1(-XJ8a7yhI?DT4fxdd@<3ZHCk?I6SFI_s~G?y%+NoX$b&cyP<( z@Od~~x(?4DuW|Cm=gS69LNyNj_Pz(tuJo@wy~N|z!=5r)EQ=of1;|UvJSxWC6*S|E zYhQow;A=`ghOlo*RC}`iD_V=L|C60k;Y2f`b zr#uQ7kWW3Dk_ev^4a9&feHGw8cA! zag1gtqaDtO#yVlKjagEo9M}j)Xvi@RbgbiO-l)evIB$mBvmpV|0mVMr0DCAzp%L?B<2KC+EQ)~?1L|NgfU12Q<$}UQ!yWLOdlo_Q+MrLYuV}<)u4$Xgn`WfIdB|m&vq{oQ!#S5(0J2r)263~8Ctskl4q|RbAsB!@_sP$G z`tzRv4X8i|O3;25pq(EqTeoTk4u(~bp8gCZPN4u$(2830q8J6}LCK~NduqU=DS1LQ zCHb&GQ8c3{O{q%xxzU93EoyVgUCmS$8eReqBHrU&()P##yo{wVL;J=ER!Y>ORKs4ezRm%Hy2U)^)9RaOb9;}t52>vHUI;dD`PX# z*n!Y>0AE!bKmf}&tC^K)eC^Fx9eT?aEbyL$MJ;Va@K4D?HnOjEtz{|e+RE;;wsFlY zZ=%9k+YC-7!0Fj%_bObfssNI0{{5*?S=-OK!Zxw7eXVV$``qeU_p-VTi&?L8o9a20 zcAQ&ka)8r=Xnry%vQ+JA;ksDqw%4-Pb*^t3zmcTwd0B6DvmUHU%Qy%Of|d^=oWqh1(M8D`Rk zKg{Czf_TCsZt#8Wsz3AckinIOFnx7gUmoYU#1^LUrBX~r9AEax7(MZ!h};6iBKgS{ zRr0KCEX5T=`N{&7GNY*6B_m_`%PbW#HC+h9GXKcQU{13>wG1dSoB7SK8Nos4Oy@e= z`ObLGv!3_NXFO-~msJA(K%WOq=t3KM&wmDVqQt4_aCWoNPJA?^bHL;#B)ZX+X2PWv zo#{`icNpHBv?;lq0#U9|)ZARcAR`!RRM)~EfIMyX7H3uEtoi|)1~ei;rh+khxWGH~HQ9}O*8Ki7zz5Fo zhV!eL9ym7)w(anWTRad7FO8)MaPf|J9OB#RCC5EZ@`gXL - - - - Pmw.OptionMenu reference manual - - - - -

Pmw.OptionMenu

- -
-
-

Name

-

Pmw.OptionMenu() - - single item selection megawidget -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- An option menu consists of a menu button - and an associated menu which pops up when the button is pressed. - The text displayed in the menu button is updated whenever an item - is selected in the menu. The currently selected value can be - retrieved from the megawidget.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
command -
-Specifies a function to call whenever a menu item is selected or - the invoke() method is called. The function is called with the - currently selected value as its single argument. The default is None.

- - -
- -
initialitem -
-Initialisation option. Specifies the initial selected value. This option is treated in - the same way as the index argument of the setitems() method. The default is None.

- - -
- -
items -
-Initialisation option. A sequence of strings containing the initial items to be displayed - in the menu component. The default is ().

- - -
- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
sticky -
-Initialisation option. The default is 'ew'.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
- -
menu -
-The popup menu displayed when the menubutton is pressed. By default, this component is a Tkinter.Menu.

- - -
- -
menubutton -
-The menu button displaying the currently selected value. By default, this component is a Tkinter.Menubutton.

- - -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -

- -
getcurselection()
-Same as getvalue() method.

- - -
- -
getvalue()
-Return the currently selected value.

- - -
- -
index(index)
-Return the numerical index of the menu item corresponding to - index. This may be specified in any of the following forms:

-
name
Specifies the menu item labelled name.

- -
-
number
Specifies the menu item numerically, where 0 corresponds to - the first menu item.

- -
-
Pmw.END
Specifies the last menu item.

- -
-
Pmw.SELECT
Specifies the currently selected menu item.

- -
- - -
- -
invoke(index = Pmw.SELECT)
-Calling this method is the same as selecting the menu item - specified by index: the text displayed by the - menubutton component is updated and the function specified by - the command option is called. index may have any of the - forms accepted by the index() method. The value returned by - command is returned.

- - -
- -
setitems(items, index = None)
-Replace all the items in the menu component with those specified - by items, which must be a sequence of strings.

-

If index is not None, set the selected value to index, which - may have any of the forms accepted by the index() method.

- -

If index is None and the textvariable option of the - menubutton component is the empty string, then if - the previous selected value is one of the items, then do not - change the selection. If the previous selected value is no longer - in items, then set the selected value to the first value in - items. If items is empty, set the selected value to the empty - string.

- -

If index is None and the textvariable option of the - menubutton component is not the empty string, then do not set - the selected value. This assumes that the variable is already (or - will be) set to the desired value.

- - - -
- -
setvalue(text)
-Set the text displayed by the menubutton component to text.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create and pack the OptionMenu megawidgets.
-        # The first one has a textvariable.
-        self.var = Tkinter.StringVar()
-        self.var.set('steamed')
-        self.method_menu = Pmw.OptionMenu(parent,
-                labelpos = 'w',
-                label_text = 'Choose method:',
-                menubutton_textvariable = self.var,
-                items = ['baked', 'steamed', 'stir fried', 'boiled', 'raw'],
-                menubutton_width = 10,
-        )
-        self.method_menu.pack(anchor = 'w', padx = 10, pady = 10)
-
-        self.vege_menu = Pmw.OptionMenu (parent,
-                labelpos = 'w',
-                label_text = 'Choose vegetable:',
-                items = ('broccoli', 'peas', 'carrots', 'pumpkin'),
-                menubutton_width = 10,
-                command = self._printOrder,
-        )
-        self.vege_menu.pack(anchor = 'w', padx = 10, pady = 10)
-
-        self.direction_menu = Pmw.OptionMenu (parent,
-                labelpos = 'w',
-                label_text = 'Menu direction:',
-                items = ('flush', 'above', 'below', 'left', 'right'),
-                menubutton_width = 10,
-                command = self._changeDirection,
-        )
-        self.direction_menu.pack(anchor = 'w', padx = 10, pady = 10)
-
-        menus = (self.method_menu, self.vege_menu, self.direction_menu)
-        Pmw.alignlabels(menus)
-
-    def _printOrder(self, vege):
-        # Can use 'self.var.get()' instead of 'getcurselection()'.
-        print 'You have chosen %s %s.' % \
-            (self.method_menu.getcurselection(), vege)
-
-    def _changeDirection(self, direction):
-        for menu in (self.method_menu, self.vege_menu, self.direction_menu):
-            menu.configure(menubutton_direction = direction)
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 23 October 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/PanedWidget.gif b/Pmw/Pmw_1_2/doc/PanedWidget.gif deleted file mode 100644 index eecbbf201834091ec69748438206fbdb9424ebd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1917 zcmV-@2ZH!VNk%v~VUPiU0Pz3-|Ns90007z9*@A+CEC2ui0FVKI00091l#i*)?GK}z zwAzca-n{z{hT=$;=82~2iUIBm$MQ_q_KoNI&iDQg3<`(DqVYH!3|JZ^^9hYMmr$ql zDgX=s*vYmF4okmPu9&GcpBdz}`weO{hAV(v+^nI@Yy#~}N)|0PO|5N_jncjSYTc`F4Q{^hElqwNZdMMK&MyDDK3so( zJf1hte-Kadk6OMr0sCz$7y@CjG)mre(bBM?L4FV;I!tKM3O@c@bCgY-$FYe=aIoNn z{Fv$_29=mfzF~>76U+)T8@Y5-GiIZl5_k%_xyGl?LL*TKLT{K$`h56Rv&>cTFi#(4r7SE;?ml-XH zb?eNeMZzXJ`xk0?s;|h-ZTq$4+ADqoUr8J}Y$VKi87I}eIb<%;Z!G&;ojHX&*^MlD zj;?!=izcaykMSM*`6S!FxG-Y+ ziGG2YqKp#I$d!o>@+V>fJW^s~VK^?LA_POC<)eEn){-PrPeMuHk`PAefR(E?2_pjm zd>iVr(dy`Q?>5t{4HE0c5D3lMu{#K$|&^=}(ym=!s;NYT#)ApqXK5 zjGuWDYC@V1{P+N)0!T{Vn|)|mXabamRb*#tYFeSCk1Cocnp_^~C8&j-Iq9T^n%NVg zbzs`+pNj%IC#$X+>PM%meQN8fxbFI=uFJ?8{$8A_?n-E`uNvEcqgmP+X|bzb>ngT- z^2!FX1d*C;xZC16F18Oyy9thrmMbo~?wWh7s9A!`ZoTh@d+w>2%9(1dnfeQGwB9CD zCY$}P`)|U%3VJKF{~`=9qY-Wxr@;%58!W{6_J``l4Ok2@zXuMy2CbV4yKTl6Z@d$* z7sDDc%7#v?AGn&r9P-Kw*V(1VFP9o~z?6}EhRI$wt1!ki`Rbd?Hv=8A!15-l?9UHp zYyrB}^sK~3o;2cWy=}DBDMLN@&N~|Z{_)3cUcNTWBTqf+-@<0AvF3yyV))6#VqUiB z@h0f`>A7a^@B&(+LwSvy_cCQ!Opn1er?-!o`xG40TE*M&1fRj|<-zSc>#^7kB=R5- zUwqnos`vcx(ue&!!P&RWd?<`>&pprKZ`pmxoDc3;zS4>B?6)`c;m5{NsS?gy%ovXzYD`JKqE*2*Cte@MZ_(8}=Nyw)aI4 zgk_^3{x(p+xE;zetzo!4Oap^ zBL)zOL<|EDVR$GYRxO4f+`#@3S!hEL2yt^2e4^Y!)xN}R5dk#YQF5+`z!z<>0%KfQ z7w6N)p-J&hSd?J~(8#{|t+84q6y6(+=({jlAdai6;tWHWK{a|YaZ&su3Ed<}HrCOQ zcSK|jN9e%VO;SEed>|7eNdZEZ5l)>XWVf=ope7zqex!S0hnl#^MkO(ojvNpu_eV+F zVUm_7d`2(jcuQHr@|T<2WsGW>%3!Kue5_Pb?Ruoj`!y3cv5eI)r#UTG#zluxsAi>< zSt&c}QjgvgUo;6w%+aZ7k5m#TG>vIHWX1@b&CBIG$yt$%=yRX^?595?a?Ty*^PdDQ zs6ku!8W$XNq52#qL;fEMQRNBAJrS+wK?B-Ni)xghRodu96Xem5Hq?B$IgTrK!;aqY z&ZH;pWd)}Vcf9 zRGJ*Mr%-)LR42hybEwpXS0xZndE?WrYVfNm4Xap_`UIJJV5?+3t0|@m)~ZHJu5QH& zSCLxMx~8kGS~aU)V*%H)(v_xv-D_G0I}E=T7AJviDq0uI*t=5ov5-}YWaCQN%HD{t zBvGtpjl|i5c=ofux~yO`OWLNH*0Fg_t*2JoSH$K)wuQ}VXKAYz-0Ib~qSY-%T??Vc z#ul}}JuGZ*T}#~J=0&*3ZLM-cy9nO~W3 - - - - Pmw.PanedWidget reference manual - - - - -

Pmw.PanedWidget

- -
-
-

Name

-

Pmw.PanedWidget() - - frame subdivided into several resizable panes -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- A paned widget is a container megawidget which manages a number of - resizable frames, known as panes. Each pane may act as the container for - other widgets. The user may interactively resize the panes by - dragging a small rectangle (the handle) or the line between the - panes (the separator). The panes may be arranged horizontally or - vertically. Each pane may have maximum and minimum limits of its - size.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
command -
-Specifies a function to be called whenever the size of any of the - panes changes. The function is called with a single argument, - being a list of the sizes of the panes, in order. For vertical - orientation, the size is the height of the panes. For - horizontal orientation, the size is the width of the panes. The default is None.

- - -
- -
handlesize -
-Initialisation option. Specifies the size in pixels of the square handle which appears on - the lines separating the panes. The default is 8.

- - -
- -
orient -
-Initialisation option. Specifies the orientation of the paned widget. This may be - 'horizontal' or 'vertical'. If 'vertical', the panes are - stacked above and below each other, otherwise the panes are laid - out side by side. The default is 'vertical'.

- - -
- -
separatorrelief -
-Initialisation option. Specifies the relief of the lines separating the panes. The default is 'sunken'.

- - -
- -
separatorthickness -
-Initialisation option. Specifies the thickness of the lines separating the panes. The default is 2.

- - -
-
-

Pane options

-

- Each pane has the following options. These may be set when - creating or configuring a pane. The value of each option may - be an integer, which specifies a pane size in pixels, or a - real number between 0.0 and 1.0, which specifies a pane size - proportional to the size of the entire paned widget.

- -
size
Specifies the initial size of the pane. The default is 0.

- -
-
min
Specifies the minimum size of the pane. The default is 0.

- -
-
max
Specifies the maximum size of the pane. The default is a - very large number.

-

- - -
- -
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
-
-

Dynamic components

-

- Frame, separator and handle components are created dynamically - by the add() and insert() methods. The components are of type - Tkinter.Frame and are created with component groups of - Frame, Separator and Handle respectively.

-

- - - -
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -

- -
add(name, **kw)
-Add a pane to the end of the paned widget as a component named - name. This is equivalent to calling insert() with before - set to the current number of panes. The method returns the name - component widget.

- - -
- -
configurepane(name, **kw)
-Configure the pane specified by name, where name is either an - integer, specifying the index of the pane, or a string, specifying - the name of the pane. The keyword arguments specify the new - values for the options for the pane. These options are described - in the Pane options section.

- - -
- -
delete(name)
-Delete the pane specified by name, where name is either an - integer, specifying the index of the pane, or a string, specifying - the name of the pane.

-

If the pane deleted was not the only pane in the paned widget, - also delete the separator and handle components named - separator-n and handle-n, where n is the number of - panes remaining.

- - - -
- -
insert(name, before = 0, **kw)
-Add a pane to the paned widget as a component named name. The - pane is added just before the pane specified by before, where - before may be either an integer, specifying the index of the - pane, or a string, specifying the name of the pane. The keyword - arguments specify the initial values for the options for the new - pane. These options are described in the Pane options section. - To add a pane to the end of the paned widget, use add().

-

The new pane is created as a Tkinter.Frame component named name. - If this is not the only pane, a separator and handle are also - created as components named separator-n and handle-n, - where n is one less than the number of panes. The method - returns the name component widget.

- - - -
- -
move(name, newPos, newPosOffset = 0)
-Move the pane specified by name to the new position specified by - newPos. The first two arguments may be either an integer, - specifying the index of the pane, or a string, specifying the name - of the pane. If newPosOffset is specified, it is added to the - newPos index. For example, to move a horizontal pane one pane - to the left, specify the name or index of the pane for both name - and newPos and specify -1 for newPosOffset.

- - -
- -
pane(name)
-Return the Tkinter.Frame pane widget for the pane specified by - name, where name is either an integer, specifying the index of - the pane, or a string, specifying the name of the pane.

- - -
- -
panes()
-Return a list of the names of the panes, in display order.

- - -
- -
setnaturalsize()
-If oriented horizontally, set the width of the paned widget to the - sum of the requested widths of all panes and set the height to the - maximum requested height of all panes.

-

If oriented vertically, set the height of the paned widget to the - sum of the requested heights of all panes and set the width to the - maximum requested width of all panes.

- - - -
- -
updatelayout()
-Recalculate size and position of panes. This method must be - called after adding or deleting one or more panes. However it - does not need to be called when panes are first added to a newly - created paned widget, before it has been displayed.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-
-        # Create a main PanedWidget with a few panes.
-        self.pw = Pmw.PanedWidget(parent,
-                orient='vertical',
-                hull_borderwidth = 1,
-                hull_relief = 'sunken',
-                hull_width=300,
-                hull_height=400)
-        for self.numPanes in range(4):
-            if self.numPanes == 1:
-                name = 'Fixed size'
-                pane = self.pw.add(name, min = .1, max = .1)
-            else:
-                name = 'Pane ' + str(self.numPanes)
-                pane = self.pw.add(name, min = .1, size = .25)
-            label = Tkinter.Label(pane, text = name)
-            label.pack(side = 'left', expand = 1)
-            button = Tkinter.Button(pane, text = 'Delete',
-                    command = lambda s=self, n=name: s.deletePane(n))
-            button.pack(side = 'left', expand = 1)
-            # TODO: add buttons to invoke self.moveOneUp and self.moveOneUp.
-
-        self.pw.pack(expand = 1, fill='both')
-
-        buttonBox = Pmw.ButtonBox(parent)
-        buttonBox.pack(fill = 'x')
-        buttonBox.add('Add pane', command = self.addPane)   
-        buttonBox.add('Move pane', command = self.move)   
-        self.moveSrc = 0
-        self.moveNewPos = 1
-        self.moveBack = 0
-
-    def move(self):
-        numPanes = len(self.pw.panes())
-        if numPanes == 0:
-            print 'No panes to move!'
-            return
-
-        if self.moveSrc >= numPanes:
-            self.moveSrc = numPanes - 1
-        if self.moveNewPos >= numPanes:
-            self.moveNewPos = numPanes - 1
-        print 'Moving pane', self.moveSrc, 'to new position', self.moveNewPos
-        self.pw.move(self.moveSrc, self.moveNewPos)
-
-        self.moveSrc, self.moveNewPos = self.moveNewPos, self.moveSrc
-        if self.moveBack:
-            if self.moveNewPos == numPanes - 1:
-                self.moveNewPos = 0
-                if self.moveSrc == numPanes - 1:
-                    self.moveSrc = 0
-                else:
-                    self.moveSrc = self.moveSrc + 1
-            else:
-                self.moveNewPos = self.moveNewPos + 1
-        self.moveBack = not self.moveBack
-
-    def addPane(self):
-        self.numPanes = self.numPanes + 1
-        name = 'Pane ' + str(self.numPanes)
-        print 'Adding', name
-        pane = self.pw.add(name, min = .1, size = .25)
-        label = Tkinter.Label(pane, text = name)
-        label.pack(side = 'left', expand = 1)
-        button = Tkinter.Button(pane, text = 'Delete',
-                command = lambda s=self, n=name: s.deletePane(n))
-        button.pack(side = 'left', expand = 1)
-        self.pw.updatelayout()
-
-    def deletePane(self, name):
-        print 'Deleting', name
-        self.pw.delete(name)
-        self.pw.updatelayout()
-
-    def moveOneUp(self, name):
-        self.pw.move(name, name, -1)
-
-    def moveOneDown(self, name):
-        self.pw.move(name, name, 1)
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 14 April 2001 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/PmwFunctions.html b/Pmw/Pmw_1_2/doc/PmwFunctions.html deleted file mode 100644 index af22de8f..00000000 --- a/Pmw/Pmw_1_2/doc/PmwFunctions.html +++ /dev/null @@ -1,766 +0,0 @@ - - - - - - Pmw functions reference manual - - - - -

Pmw functions

- -
-
Pmw.aboutcontact(value)
-

- The value passed to this function is used to construct the text - displayed by Pmw.AboutDialog megawidgets created subsequently.

- -

- - -
-
Pmw.aboutcopyright(value)
-

- The value passed to this function is used to construct the text - displayed by Pmw.AboutDialog megawidgets created subsequently.

- -

- - -
-
Pmw.aboutversion(value)
-

- The value passed to this function is used to construct the text - displayed by Pmw.AboutDialog megawidgets created subsequently.

- -

- - -
-
Pmw.aligngrouptags(groups)
-

- This function takes a sequence of Pmw.Groups and adjusts the - vertical position of the tags in each group so that they all have - the height of the tallest tag. This can be used when groups are - positioned side-by-side but the natural height of the tags are - different because, for example, different fonts with different - sizes are used.

- -

- - -
-
Pmw.alignlabels(widgets, sticky = None)
-

- Adjust the size of the labels of all the widgets to be equal, so - that the body of each widget lines up vertically. This assumes - that each widget is a megawidget with a label component in - column 0 (ie, the labelpos option was set to 'w', 'wn' or - 'ws'). If sticky is set to a combination of 'n', 's', - 'e' and 'w', the label will be positioned within its cell - accordingly. For example to make labels right justified, set - sticky to 'e', 'ne' or 'se'.

- -

- - -
-
Pmw.alphabeticvalidator(text)
-

- Validator function for Pmw.EntryField alphabetic standard validator.

- -

- - -
-
Pmw.alphanumericvalidator(text)
-

- Validator function for Pmw.EntryField alphanumeric standard validator.

- -

- - -
-
Pmw.busycallback(command, updateFunction = None)
-

- Create a wrapper function which displays a busy cursor while - executing command and return the wrapper. When the wrapper - function is called, it first calls Pmw.showbusycursor(), then - the command (passing any arguments to it), then Pmw.hidebusycursor(). - The return value of command is returned from the wrapper.

- -

If updateFunction is specified, it is called just before the - call to Pmw.hidebusycursor(). This is intended to be the - Tkinter update() method, in which case it will clear any events - that may have occurred while command was executing. An example - of this usage is in the ShowBusy demonstration: run the - demonstration, click on the entry widget then click on the button - and type some characters while the busy cursor is displayed. No - characters should appear in the entry widget.

- -

Note that the Tkinter update() method should only be called when - it is known that it can be safely called. One case where a - problem has been found is when a filehandler has been created (on - a non-blocking Oracle database connection), but the filehandler - does not read from the connection. The connection is read (by a - call to the Oracle fetch function ofen) in a loop which also - contains a call to _tkinter.dooneevent(). If update() is - called from dooneevent() and there is data to be read on the - connection, then the filehandler will be called continuously, thus - hanging the application.

- -

- - -
-
Pmw.clearbusycursor()
-

- Unconditionally remove the event block and busy cursor from all - windows. This undoes all outstanding calls to - Pmw.showbusycursor().

- -

- - -
-
Pmw.datestringtojdn(text, format = 'ymd', separator = '/')
-

- Return the Julian Day Number corresponding to the date in text. - A Julian Day Number is defined as the number of days since 1 Jan 4713 - BC. The date must be specified as three integers separated by the - separator character. The integers must be in the order specified by - format, which must be a combination of 'd', 'm' and 'y' in - any order. These give the order of the day, month and year - fields. Examples of valid input are:

-
 'dmy':  31/01/99  31/1/1999  31/1/99
- 'mdy':  01/31/99  1/31/1999  1/31/99
- 'ymd':  99/01/31  1999/1/31  99/1/31
- - -

If the application's - pivot year (default 50) is not None and the year specified - in text has only one or two digits, then the year is - converted to a four digit year. If it is less than or equal to - the pivot year, then it is incremented by the application's - century value (default 2000). If it is more than the pivot year - then it is incremented by the century value less 100.

- -

The function Pmw.setyearpivot() can be used to change the - default values for the application's - pivot and century.

- -

- - -
-
Pmw.datevalidator(text, format = 'ymd', separator = '/')
-

- Validator function for Pmw.EntryField date standard validator.

- -

- - -
-
Pmw.displayerror(text)
-

- This is a general purpose method for displaying background errors - to the user. The errors would normally be programming errors and - may be caused by errors in Tk callbacks or functions called by other - asynchronous events.

- -

If the global error report file (set by calling - Pmw.reporterrorstofile()) is None, the error message `text` is - written to standard error and also shown in a text window. If - displayerror is called while previous error messages are being - displayed, the window is raised and the new error is queued. The - queued errors may be viewed by the user or ignored by dismissing - the window.

- -

If the global error report file is not None, `text` is written - to the file. file may be any object with a write() method, - such as sys.stderr.

- -

- - -
-
Pmw.drawarrow(canvas, color, direction, tag, baseOffset = 0.25, edgeOffset = 0.15)
-

- Draw a triangle in the Tkinter.Canvas canvas in the given - color. The value of direction may be 'up', 'down', - 'left' or 'right' and specifies which direction the arrow - should point. The values of baseOffset and edgeOffset specify - how far from the edges of the canvas the points of the triangles - are as a fraction of the size of the canvas.

- -

- - -
-
Pmw.forwardmethods(fromClass, toClass, toPart, exclude = ())
-

- Forward methods from one class to another.

- -

This function adds methods to the class fromClass. The names of - the methods added are the names of the methods of the class - toClass (and its base classes) except those which are already - defined by fromClass or are found in the exclude list. - Special methods with one or more leading or trailing underscores - are also excluded.

- -

When one of the added methods is called, the method of the same - name is called on an instance defined by toPart and the return - value passed back. If toPart is a string, then it specifies the - name of an attribute (not a component) of the fromClass - object. The class of this attribute should be toClass. If - toPart is not a string, it must be a function taking a - fromClass object and returning a toClass object.

- -

This function must be called outside of and after the definition - of fromClass.

- -

For example:

- -
class MyClass:
-    def __init__(self):
-        ...
-        self.__target = TargetClass()
-        ...
-
-    def foo(self):
-        pass
-
-    def findtarget(self):
-        return self.__target
-
-Pmw.forwardmethods(MyClass, TargetClass, '__target',
-    ['dangerous1', 'dangerous2'])
-
-# ...or...
-
-Pmw.forwardmethods(MyClass, TargetClass,
-    MyClass.findtarget, ['dangerous1', 'dangerous2'])
- -

In both cases, all TargetClass methods will be forwarded from - MyClass except for dangerous1, dangerous2, special methods like - __str__, and pre-existing methods like foo.

- -

- - -
-
Pmw.grabstacktopwindow()
-

- Return the window at the top of the grab stack (the window - currently with the grab) or None if the grab stack is empty (no - window has the grab). See also pushgrab().

- -

- - -
-
Pmw.hexadecimalvalidator(text)
-

- Validator function for Pmw.EntryField hexadecimal standard validator.

- -

- - -
-
Pmw.hidebusycursor(forceFocusRestore = 0)
-

- Undo one call to Pmw.showbusycursor(). If there are no - outstanding calls to Pmw.showbusycursor(), remove the event - block and busy cursor.

- -

If the focus window has not been changed since the corresponding - call to Pmw.showbusycursor(), or if forceFocusRestore is true, - then the focus is restored to that saved by Pmw.showbusycursor().

- -

- - -
-
Pmw.initialise(root = None, size = None, fontScheme = None, useTkOptionDb = 0, noBltBusy = 0, disableKeyboardWhileBusy = None)
-

- Initialise Pmw. This performs several functions:

-
  • Set up a trap in the Tkinter Toplevel constructor so that a - list of Toplevels can be maintained. A list of all Toplevel - windows needs to be kept so that Pmw.showbusycursor() can - create busy cursors for them.

    - -
  • -
  • Set up a trap in the Tkinter Toplevel and Frame destructors - so that Pmw is notified when these widgets are destroyed. - This allows Pmw to destroy megawidgets when their hull - widget is destroyed and to prune the list of Toplevels.

    - -
  • -
  • Modify Tkinter's CallWrapper class to improve the display of - errors which occur in callbacks. If an error occurs, the - new CallWrapper class calls Pmw.clearbusycursor() to - remove any outstanding busy cursors and calls - Pmw.displayerror() to display the error.

    - -
  • -
  • Using the window given by root, set the WM_DELETE_WINDOW - root window protocol to destroy the root window. This means - that the root window is destroyed if the window manager - deletes it. This is only done if the protocol has not been - set before the call to Pmw.initialise(). This protocol is - required if there is a modal dialog displayed and the window - manager deletes the root window. Otherwise the application - will not exit, even though there are no windows.

    - -
  • -
  • Set the base font size for the application to size. This - is used by Pmw.logicalfont() as the default point size for - fonts. If this is not given, the default is 14, except - under NT where it is 16. These are reasonable default - sizes for most screens, but for unusually high or low screen - resolutions, an appropriate size should be supplied. Note - that Tk's definition of point size, is somewhat - idiosyncratic.

    - -
  • -
  • Set the Tk option database for root according to - fontScheme. This changes the default fonts set by Tk. - fontScheme may be one of

    -
    None
    Do not change the Tk defaults.

    - -
    -
    'pmw1'
    If running under posix (Unix), set the default font to - be Helvetica with bold italic menus, italic scales and - a special balloon font 6 points smaller than the base - font size and with the 'pixel' field set to '12'. - For other operating systems (such as NT or Macintosh), - simply set the default font to be Helvetica. All - fonts are as returned by calls to Pmw.logicalfont().

    - -
    -
    'pmw2'
    This is the same as 'pmw1' except that under posix - the balloon font is 2 points smaller than the base - font size and the 'pixel' field is not set.

    - -
    -
    'default'
    This sets the default fonts using the Tk font naming - convention, rather than that returned by - Pmw.logicalfont(). The default font is bold - Helvetica. The font for entry widgets is Helvetica. - The font for text widgets is Courier The size of all - fonts is the application base font size as described - above.

    - -
    - -
  • -
  • If root is None, use the Tkinter default root window as the - root, if it has been created, or create a new Tk root window. - The initialise() method returns this root.

    - -
  • -
  • If useTkOptionDb is true, then, when a megawidget is - created, the Tk option database will be queried to get the - initial values of the options which have not been set in - the call to the constructor. The resource name used in the - query is the same as the option name and the resource class - is the option name with the first letter capitalised. If - useTkOptionDb is false, then options for newly created - megawidgets will be initialised to default values.

    - -
  • -
  • If noBltBusy is true, then Pmw.showbusycursor() will not - display a busy cursor, even if the BLT busy command is - present.

    - -
  • -
  • If disableKeyboardWhileBusy is false, then do not disable - keyboard input while displaying the busy cursor. Normally, - Pmw ignores keyboard input while displaying the busy cursor - by setting the focus for each toplevel window to the Blt - busy window. However, under NT, this may cause the toplevel - windows to be raised. If this is not acceptable, programs - running on NT can request show/hidebusycursor to not ignore - keyboard input by setting disableKeyboardWhileBusy to true - in Pmw.initialise().

    - -
- -

It is not absolutely necessary to call this function to be able to use - Pmw. However, some functionality will be lost. Most importantly, - Pmw megawidgets will not be notified when their hull widget is - destroyed. This may prevent the megawidget from cleaning up - timers which will try to access the widget, hence causing a - background error to occur.

- -

- - -
-
Pmw.installedversions(alpha = 0)
-

- If alpha is false, return the list of base versions of Pmw - that are currently installed and available for use. If alpha is - true, return the list of alpha versions.

- -

- - -
-
Pmw.integervalidator(text)
-

- Validator function for Pmw.EntryField integer standard validator.

- -

- - -
-
Pmw.jdntoymd(jdn, julian = -1, papal = 1)
-

- Return the year, month and day of the Julian Day Number jdn. If - julian is 1, then the date returned will be in the Julian - calendar. If julian is 0, then the date returned will be in - the modern calendar. If julian is -1, then which calendar to - use will be automatically determined by the value of jdn and - papal. If papal is true, then the date set by Pope Gregory - XIII's decree (4 October 1582) will be used as the last day to use - the Julian calendar. If papal is false, then the last day to - use the Julian calendar will be according to British-American - usage (2 September 1752).

- -

- - -
-
Pmw.logicalfont(name = 'Helvetica', sizeIncr = 0, **kw)
-

- Return the full name of a Tk font, being a hyphen-separated list - of font properties. The logical name of the font is given by - name and may be one of 'Helvetica', 'Times', 'Fixed', - 'Courier' or 'Typewriter'. Pmw uses this name to define the - default values of many of the font properties. The size of the - font is the base font size for the application specified in the - call to Pmw.initialise() increased or decreased by the value of - sizeIncr. The other properties of the font may be specified by - other named arguments. These may be 'registry', 'foundry', - 'family', 'weight', 'slant', 'width', 'style', - 'pixel', 'size', 'xres', 'yres', 'spacing', - 'avgwidth', 'charset' and 'encoding'.

- -

- - -
-
Pmw.logicalfontnames()
-

- Return the list of known logical font names that can be given - to Pmw.logicalfont().

- -

- - -
-
Pmw.numericvalidator(text)
-

- Validator function for Pmw.EntryField numeric standard validator.

- -

- - -
-
Pmw.popgrab(window)
-

- Remove window from the grab stack. If there are not more - windows in the grab stack, release the grab. Otherwise set the - grab and the focus to the next window in the grab stack. See also - pushgrab().

- -

- - -
-
Pmw.pushgrab(grabWindow, globalMode, deactivateFunction)
-

- The grab functions (pushgrab(), popgrab(), releasegrabs() - and grabstacktopwindow()) are an interface to the Tk grab - command which implements simple pointer and keyboard grabs. When - a grab is set for a particular window, Tk restricts all pointer - events to the grab window and its descendants in Tk's window - hierarchy. The functions are used by the activate() and - deactivate() methods to implement modal dialogs.

- -

Pmw maintains a stack of grabbed windows, where the window on the - top of the stack is the window currently with the grab. The grab - stack allows nested modal dialogs, where one modal dialog can be - activated while another modal dialog is activated. When the - second dialog is deactivated, the first dialog becomes active - again.

- -

Use pushgrab() to add grabWindow to the grab stack. This - releases the grab by the window currently on top of the stack (if - there is one) and gives the grab and focus to the grabWindow. - If globalMode is true, perform a global grab, otherwise perform - a local grab. The value of deactivateFunction specifies a - function to call (usually grabWindow.deactivate) if popgrab() is - called (usually from a deactivate() method) on a window which is - not at the top of the stack (that is, does not have the grab or - focus). For example, if a modal dialog is deleted by the window - manager or deactivated by a timer. In this case, all dialogs - above and including this one are deactivated, starting at the top - of the stack.

- -

For more information, see the Tk grab manual page.

- -

- - -
-
Pmw.realvalidator(text, separator = '.')
-

- Validator function for Pmw.EntryField real standard validator.

- -

- - -
-
Pmw.releasegrabs()
-

- Release grab and clear the grab stack. This should normally not - be used, use popgrab() instead. See also pushgrab().

- -

- - -
-
Pmw.reporterrorstofile(file = None)
-

- Sets the global error report file, which is initially None. See - Pmw.displayerror()

- -

- - -
-
Pmw.setalphaversions(*alpha_versions)
-

- Set the list of alpha versions of Pmw to use for this session to - the arguments. When searching for Pmw classes and functions, - these alpha versions will be searched, in the order given, before - the base version. This must be called before any other Pmw class - or function, except functions setting or querying versions.

- -

- - -
-
Pmw.setbusycursorattributes(window, **kw)
-

- Use the keyword arguments to set attributes controlling the effect - on window (which must be a Tkinter.Toplevel) of future calls - to Pmw.showbusycursor(). The attributes are:

- -
exclude
a boolean value which specifies whether the window - will be affected by calls to Pmw.showbusycursor(). If a window - is excluded, then the cursor will not be changed to a busy cursor - and events will still be delivered to the window. By default, - windows are affected by calls to Pmw.showbusycursor().

- -
-
cursorName
the name of the cursor to use when displaying the - busy cursor. If None, then the default cursor is used.

- -
-

- - -
-
Pmw.setgeometryanddeiconify(window, geom)
-

- Deiconify and raise the toplevel window and set its position and - size according to geom. This overcomes some problems with the - window flashing under X and correctly positions the window under - NT (caused by Tk bugs).

- -

- - -
-
Pmw.setversion(version)
-

- Set the version of Pmw to use for this session to version. If - Pmw.setversion() is not called, the latest installed version of - Pmw will be used. This must be called before any other Pmw class - or function, except functions setting or querying versions.

- -

- - -
-
Pmw.setyearpivot(pivot, century = None)
-

- Set the pivot year and century for the application's date - processing. These values are used in the datestringtojdn() - method, which is used by Pmw.Counter and Pmw.EntryField - and derived classes. The initial values of pivot and century - are 50 and 2000 repectively. Return a tuple containing the - old values of pivot and century.

- -

- - -
-
Pmw.showbusycursor()
-

- Block events to and display a busy cursor over all windows in this - application that are in the state 'normal' or 'iconic', except - those windows whose exclude busycursor attribute has been set to - true by a call to Pmw.setbusycursorattributes().

- -

If a window and its contents have just been created, - update_idletasks() may have to be called before - Pmw.showbusycursor() so that the window is mapped to the screen. - Windows created or deiconified after calling - Pmw.showbusycursor() will not be blocked.

- -

To unblock events and remove the busy cursor, use - Pmw.hidebusycursor(). Nested calls to Pmw.showbusycursor() - may be made. In this case, a matching number of calls to - Pmw.hidebusycursor() must be made before the event block and - busy cursor are removed.

- -

If the BLT extension to Tk is not present, this function has no - effect other than to save the value of the current focus window, - to be later restored by Pmw.hidebusycursor().

- -

- - -
-
Pmw.stringtoreal(text, separator = '.')
-

- Return the real number represented by text. This is similar to - string.atof() except that the character representing the decimal - point in text is given by separator.

- -

- - -
-
Pmw.timestringtoseconds(text, separator = ':')
-

- Return the number of seconds corresponding to the time in text. - The time must be specified as three integers separated by the - separator character and must be in the order hours, minutes and - seconds. The first number may be negative, indicating a negative - time.

- -

- - -
-
Pmw.timevalidator(text, separator = ':')
-

- Validator function for Pmw.EntryField time standard validator.

- -

- - -
-
Pmw.tracetk(root = None, on = 1, withStackTrace = 0, file = None)
-

- Print debugging trace of calls to, and callbacks from, the Tk - interpreter associated with the root window . If root is - None, use the Tkinter default root. If on is true, start - tracing, otherwise stop tracing. If withStackTrace is true, - print a python function call stacktrace after the trace for each - call to Tk. If file is None, print to standard error, - otherwise print to the file given by file.

- -

For each call to Tk, the Tk command and its options are printed as - a python tuple, followed by the return value of the command (if - not the empty string). For example:

- -
python executed:
-  button = Tkinter.Button()
-  button.configure(text = 'Hi')
-
-tracetk output:
-  CALL  TK> 1:  ('button', '.3662448') -> '.3662448'
-  CALL  TK> 1:  ('.3662448', 'configure', '-text', 'Hi')
- -

Some calls from python to Tk (such as update, tkwait, - invoke, etc) result in the execution of callbacks from Tk to - python. These python callbacks can then recursively call into Tk. - When displayed by tracetk(), these recursive calls are indented - proportionally to the depth of recursion. The depth is also - printed as a leading number. The return value of a call to Tk - which generated recursive calls is printed on a separate line at - the end of the recursion. For example:

- -
python executed:
-  def callback():
-      button.configure(text = 'Bye')
-      return 'Got me!'
-  button = Tkinter.Button()
-  button.configure(command = callback)
-  button.invoke()
- -
tracetk output:
-  CALL  TK> 1:  ('button', '.3587144') -> '.3587144'
-  CALL  TK> 1:  ('.3587144', 'configure', '-command', '3638368callback')
-  CALL  TK> 1:  ('.3587144', 'invoke')
-  CALLBACK> 2:    callback()
-  CALL  TK> 2:    ('.3587144', 'configure', '-text', 'Bye')
-  CALL RTN> 1:  -> 'Got me!'
- -

Pmw.initialise() must be called before tracetk() so that hooks - are put into the Tkinter CallWrapper class to trace callbacks from - Tk to python and also to handle recursive calls correctly.

- -

- - -
-
Pmw.version(alpha = 0)
-

- If alpha is false, return the base version of Pmw being used - for this session. If Pmw.setversion() has not been called, this - will be the latest installed version of Pmw. If alpha is true, - return the list of alpha versions of Pmw being used for this - session, in search order. If Pmw.setalphaversions() has not - been called, this will be the empty list.

- -

- - -
-
Pmw.ymdtojdn(year, month, day, julian = -1, papal = 1)
-

- Return the Julian Day Number corresponding to year, month and - day. See jdntoymd() for description of other arguments)

- -

- - -
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/PromptDialog.gif b/Pmw/Pmw_1_2/doc/PromptDialog.gif deleted file mode 100644 index b82205c921b71042bd7e117cb410afe2b843c4cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1959 zcmV;Y2Uz$=Nk%v~VcGzs0P+9;|Ns90007z9*}!0TU@$v^f`b2srvLx|EC2ui0NMbg z000C2Xu8}^F3L%(y*TU5IqaZ8d|_#xXsRwF_>FKZ&*E&~c&_h!@BhFcu=W!vgvg|F z$!t2GG-GW;T3N5yEQ`vOwlZI>cuWRYE#b@e^%=O|aQHV)uiNkVynfH``~P@zdxCmv zM{R?MfQxqlj*pCyc8-#jZ-jZ6fiH&&e43Vvly0M;k)@`KpmwWuhEoQgim8C5l#c;# zxVn%7qrbVny|=lu#|=Dy`QmirMGv2`efqv(gjoJa zpu=?L;KXuwNg*PJmmEUlIEkLNim0e%>)y?~x9{J;g9{%{{LBad0+K6V&b+zv=g^}|pH98H z_3PNPYtLT5B=YUx!;2qJzPx$u-TfXv&%V9;_wdQ5Py9W;{rmXym!Hq3zW)CI00t-^ ze~0)d;DHDxxSw|lHt67k)e%^Ofe=<`p@I^wcj1N{2AClM6m}@$i06G6B8e!b$Q^?! zw&d51dBKipAkQNF_;iR6+4vdH97brB+DW3G zbmFp{pm9EuXPk%%K&YaM!fB|ZJNh{yo^m#tC!~o|%IKkoR_bY>j$+#9mouvAoT!5~ z7bv2dZp!Jak&-GSpM@HFX{EQWx+$u>ruw6#BGPIpte2{a>9M}H{z~kqW9}%dvc570 zDVx;7+H0b9%KGB7p<3(htDqL^>ad>1+ANO3HcD-%xT>oxrM8Z%?ylz2XXd@&0gLax z$?3~4zW)AeX21f6NpQhk9z4&&3^(lX!w^R-@x&BYY%#>!DO|wD9Cz&T#~_C+^2j8Y zZ1Tw{r>wHc=}M>Z$}q<)^UO5YtTF&CNB1(qD9V;IbUT~ZF3;upoUyjl1+ejXLlZro z(dZ#PozewFi|y5%HtlqHP_KAyc2svtZ?%k)U2VKuKaKOzUt<^ct%J6U_M<nXNx`U*z?-0cHK4V9o^f@@~ODEf^)rg)NNmfIC)zBH+~)7*9Bc(<(A+5xYzb- zH~Dy+cRn5FFd7cs=;D=bdUU8qsQPoPhv)k1&&5ui=9CkT`*ONZ$2;l1|DIg%F3*1I z(n1$+Jn}j#uPXDKJO4ZMKua$z^~MW`{c|r9C;s^4mv8?0vsvG-_JbCH{`>I9FF$eW z3!w1D_~)A2pvz3@~fHv)<_*Z=8=vCvg024*dgW-QaZAEpdK@) zJUu2dM~+mRA^|xeK|WGOhLj{EDXAgh-Eoq8)FdVsnK~LW$B~CTVI;+KNgI+zvx*;Tmbd=61MQPug{hT>cOJl(@hN&FBr(eg)mmLE)BAbuLq%N&D7D zGZj!qUX+@xYbdJZqfqTIR8{-5RjUr#jb&vMo`*y!Jz?r9Y~IwDAKhCwNlH{{HPmGl z&E82fs!^kUi=`gj<{{fT(_~qdr%1)AC4o6q#QilRcPIx`%+yE-Pq=K(Aopc#fQxsOIg3_cj$mw8FRM>@b6+&wrre}_z zShtQcs*XKuDH#x0a$44vn04u69~9YWjuU8$B~fEVt66c@QJ$a0WoYR-S_hTZqNfF4 zYDqX(?9^4Yel1*Ef6Lq1`nI-7dkU^vi76W~I(N0SeXeu03R?h3ce+5`=5@tLT~Df! zjKl;IatGE(KPnNt7xf}!wW!|vbg{khc`tn5Bj5RIiM{r9kBPR+-~Rgdza2BlYX(f< t0vk9A>d?R$%D~_TI~WWuaKVBfOyLSYI1LI8O%V>v;SRq>!#zj<06TMv^cw&G diff --git a/Pmw/Pmw_1_2/doc/PromptDialog.html b/Pmw/Pmw_1_2/doc/PromptDialog.html deleted file mode 100644 index f04b350b..00000000 --- a/Pmw/Pmw_1_2/doc/PromptDialog.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - - Pmw.PromptDialog reference manual - - - - -

Pmw.PromptDialog

- -
-
-

Name

-

Pmw.PromptDialog() - - selection dialog displaying an entry field -

- - -
-

Inherits

-Pmw.Dialog
-
-

Description

-

- The prompt dialog is a dialog window which displays an entry field - which can be used to prompt the user for a value.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
activatecommand -
-If this is callable, it will be called whenever the megawidget is - activated by a call to activate(). The default is None.

- - -
- -
borderx -
-Initialisation option. The padding to the left and right of the entry field. The default is 20.

- - -
- -
bordery -
-Initialisation option. The padding above and below the entry field. The default is 20.

- - -
- -
buttonboxpos -
-Initialisation option. Specifies on which side of the dialog window to place the button - box. Must be one of 'n', 's', 'e' or 'w'. The default is 's'.

- - -
- -
buttons -
-This must be a tuple or a list and specifies the names on the - buttons in the button box. The default is ('OK',).

- - -
- -
command -
-Specifies a function to call whenever a button in the button box - is invoked or the window is deleted by the window manager. The - function is called with a single argument, which is the name of - the button which was invoked, or None if the window was deleted - by the window manager.

-

If the value of command is not callable, the default behaviour - is to deactivate the window if it is active, or withdraw the - window if it is not active. If it is deactivated, deactivate() - is called with the button name or None as described above. The default is None.

- - - -
- -
deactivatecommand -
-If this is callable, it will be called whenever the megawidget is - deactivated by a call to deactivate(). The default is None.

- - -
- -
defaultbutton -
-Specifies the default button in the button box. If the <Return> - key is hit when the dialog has focus, the default button will be - invoked. If defaultbutton is None, there will be no default - button and hitting the <Return> key will have no effect. The default is None.

- - -
- -
master -
-This is used by the activate() method to control whether the - window is made transient during modal dialogs. See the - activate() method. The default is 'parent'.

- - -
- -
separatorwidth -
-Initialisation option. If this is greater than 0, a separator line with the specified - width will be created between the button box and the child site, - as a component named separator. Since the default border of the - button box and child site is raised, this option does not - usually need to be set for there to be a visual separation between - the button box and child site. The default is 0.

- - -
- -
title -
-This is the title that the window manager displays in the title - bar of the window. The default is None.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
buttonbox -
-This is the button box containing the buttons for the dialog. By - default it is created with the options - (hull_borderwidth = 1, hull_relief = 'raised'). By default, this component is a Pmw.ButtonBox.

- - -
- -
dialogchildsite -
-This is the child site for the dialog, which may be used to - specialise the megawidget by creating other widgets within it. By - default it is created with the options - (borderwidth = 1, relief = 'raised'). By default, this component is a Tkinter.Frame.

- - -
- -
entryfield -
-The entry field for the user to enter a value. By default, this component is a Pmw.EntryField.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Toplevel.

- - -
- -
separator -
-If the separatorwidth initialisation option is non-zero, the - separator component is the line dividing the area between the - button box and the child site. By default, this component is a Tkinter.Frame.

- - -
-
-

Component aliases

-Sub-components of components of this megawidget -may be accessed via the following aliases.

-
entry -
-Alias for entryfield_entry. -
-
label -
-Alias for entryfield_label. -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.Dialog. -In addition, methods from the -Pmw.EntryField class -are forwarded by this megawidget to the -entryfield component. -

- -
deleteentry(first, last = None)
-Delete text from the entry field's entry widget. An alias for - component('entry').delete().

- - -
- -
indexentry(index)
-An alias for component('entry').index().

- - -
- -
insertentry(index, text)
-Insert text into the entry field's entry widget. An alias for - component('entry').insert().

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create the dialog to prompt for the password.
-        self.dialog = Pmw.PromptDialog(parent,
-            title = 'Password',
-            label_text = 'Password:',
-            entryfield_labelpos = 'n',
-            entry_show = '*',
-            defaultbutton = 0,
-            buttons = ('OK', 'Cancel'),
-            command = self.execute)
-        self.dialog.withdraw()
-
-        # Create the confirmation dialog.
-        self.confirm = Pmw.MessageDialog(
-            title = 'Are you sure?',
-            message_text = 'Are you really sure?',
-            defaultbutton = 0,
-            buttons = ('OK', 'Cancel'))
-        self.confirm.withdraw()
-
-        # Create button to launch the dialog.
-        w = Tkinter.Button(parent, text = 'Show prompt dialog',
-                command = self.dialog.activate)
-        w.pack(padx = 8, pady = 8)
-
-    def execute(self, result):
-        if result is None or result == 'Cancel':
-            print 'Password prompt cancelled'
-            self.dialog.deactivate(result)
-        else:
-            result = self.confirm.activate()
-            if result == 'OK':
-                print 'Password entered ' + self.dialog.get()
-                self.dialog.deactivate()
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 18 May 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/RadioSelect.gif b/Pmw/Pmw_1_2/doc/RadioSelect.gif deleted file mode 100644 index 026a1397ed5214a2e2e046edd401667efbaa0c5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4476 zcmV-?5rghWNk%v~VbTE*0rCI<|Ns90007z9*@A+CurOc%0000000000EC2ui0MY>v z0RRL3D7xJKFv>}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ z$!t2G(5Q4uty-_xtai)odcWYXcuX#v&uA`S&2GEj@VIm?@sbR0Jva>?5U$(Tl zx;MC8y}Q7{EWcaC!pF!V##z0D&TACU($jSmq1TzJrgidt=g)k6RWXDy^%u~wtj3IXEEZ99RkHK{n^ zKCp{|FJBK}qlop|;BS$#9qbxL8)C75woD~BmaJg1g06ZQH?F(4MBsmf>4jck83bW-_ zeBOEUU4G&rSKNZv`KRE60QScqfWEcH*!D4~23jFsVe6K*HsgdjpV;(8`Fh+=^( zhUZ`j_2m^1a3w}a;&e8mn4@;FB?ZEA&uRE#gFLRNqkbwz76Fj$87X0DvdvcHbwyT* zq?1$%nL%zB>Ia{4<-MmKeE}|H-BW&PnI(?xZFuCCK7K%)l}%3h=9*!;spOTKsraM? zQ6lK%a(?FNCZSmBh^T-)awsTTCyp6uq=j~PrgcW12OXVwe#m5)fW~Q-W}L1_SE(D0 znWTlV^_i%f>U=lWdZ*ro=ZmVosv?Gsw)kj*x7x{OrZX1X<&bq&{`%paUiMnykEE)} ztg>pBx~Hwc>PjpGf#z4MtFRI&?Vra+z-6nDZaN@&h>|%Oe&y~;?XafG>#Dh;CPpfy z&hZLiwfw@w>XLk>I4!>VV4&EfA>L^4jtwX3E4K&QYp<{j9$aR13CH^|!~cr=FtQXI z2raPe`u8cL5=RIoYaIXDB!5Is)~(De(+p~j*_rpHreZ?*-B7!REAfy7}wh1_E(Ai3%2+`f%`HzSA_>vIcR$$ z_4qBDOWt`ypFgp*=pM~IMdXefdxqCbtZs$c#grbq*`7PKT{{Wu^CrH5xTJVAxjD!F; z$iWVJ@Pi->p$JDv!V;SBgeXj*3RlR&7P|0-FpQxLXGp^u+VF-r%pv3)$ip7`@P|MQ zq8?U~!6F**h)7JL5+AWP9XgQ*1XMy4pGZX$OcDMGSFEBI&j&%0ba9Jd>_8T6^2IQk z5d&i+N*T|{M(;JzH$oK0U6z=9L+13T7LZHK-CLQ#meNj~bUR)_k} z(_|^N!%?SfUBDzbI5~t>eiDkFB!PKUHZM={3vR8mYA0*rox6}x>Oe9pZ>sfs4K+zHl#%?RTqtz_-2(Y`(yxZC7YN( zB??f8N|B?nssyXiPfeOtecg%!^Ze!6xF}OWy+@-UgIJ|7aMM2u z)v6Z&sz)VB0=dqWpdGzWQGIaKm?~6C7S&d^FbbG{(ui(Q>yO=7=F*(WE~G)F*VH!l z*oSoSFDXk;OPzXEbuvSDT@{%@w}mR0iqrwDr0b5-`Xts`jBi*im@zL(O0N2mwhlAr zP^+?6jFgpWKBd>e1Un!Nw6$(2{u6FB(?r|~*cC2LyBIdj6x-Vpm#{{&Kv-dLRFLiy zTjU%qsw@_x<6?8Xf^CmCY8wr25_@BCa4qh)2_yLnYq*jyX3 zqe*qX9=mQa@%i4+S(c&s1aD_gsR8B=mYR^7Fj8C4U$Xv{sz+L^sR%T+ox!QPZdI_h z&|9D9{z|vmWiN`|YGG@VR>OXk6Nwi)SrIkW#EspsjNXd48K0NHYE|o39gJECehbO9 zHF6}CY~yNbx3`fMaL87hTiiY<$D$GD5X=i-NexqHK~C(MM;zDob~IHx&M$QlT$iSa zm_96(Gj9iaSCuZ;R)22(5`g>c12V&Py)STaNu}INEcevRL8@=kl)Kh!CKW1%O$?H0 zpy-Iw`J{ZV@T70tr$Ddjx28mxFyriB7<76EubxV%D=b}7A5_I)9&#=-ok>Q|Al6uP z^j*{HW&3K`*hU((6b!98H`@T%N7(L_0o@p+s4oq0t6tjd@Eyrlcv;3RiCFQRTji%b34 zR4<{`ug>YLlW^-?|F+jh2==hMdh8-ByV+f!_OzpY?JH<|2;~m<6wv*Hcdxq@-wwjO z>%Fdg54Y+9|98Nzq78(m>uWt+cqtP8nTV(F;``d6$2XqwXkfQdFhyB8Q+^_rzq|+h zE^&!yo-(lH?1=Ro*U*a|tgeUkJa4jQT4mH=A0YkfVW0Vuoc=ZpPLP#HAN$>-vG|;m zN+PlveDz9N8OS%jbE9v%pDe$tXFk!JKHqQYtCITFZ!%so6#VV)-TOq)y-((GeRNgn znA#^k`u=+f{^Vb#CU#Qu>bbA}`6qNA;S&+{=YRVJfT?wH1o(ZdaDWJyfE)*P4)}m= z)PE5OZ#qPQ6U;gkczq!F^RRhlz(a9kx?$;3B-C0bPh!0mdhZcmjw(0G4=(me>-VH;8gb z{)Y7R8m%UIBA|J{7g{F}BaaA)i^qqe2m+OeiI=E}nUZ}xW?KJch<(-@-DP*CR}_Ny zGsu)&j%9&~Rz}|fWY33f$cO^32#W+Di>Ws&Ym}P^)RD`08jI~vdM0?F5HpkXl ze?yFHw?_WOWz@83%s2qfn2CXiVbNk>yjP8pbym1HTi{5DaO4%Gh+KCjTFfAx9XYe3W-MoxS2^{ zmGWeoL?D~@$AD0o18ImebV!>*V4GLDg@TluS4f;12b&w{n^iQFPUwjr2$rg`L00$z zz-bE18Jz+&o&3c?*I9hY0XZ*&NuL0kWgm)b=h>l}2ABgHf5E_@!x1p%7nommqR6RZpDCA`(w-t} zoT%|*+t@NbN~0sn1OEARJgNglYNSVs1A7S!E?NUk>ZB;jq_)VRLplQyDWx?Eo^E-D zXegZJ^Q6l;r8-JgNty;?iXfbb1h~1RzxEw{MI3LgccrkgrgJI-u4#u= zx}ntQre$i1g&KxYNx{JttCpJGO337 z>W}N%mF?5c36Grm*QBd-IuOKlbC4Mne36HfV+(9 z`Cn^rwAS%t0fVp_>!|G1adBX{Kl+iOnVBL1T(2u35yIRD%y*qfoJEoqCLk7yFPTQQvdx5s=yv0jJ!VA64n?uuUy|F93 z&x^g$`$X4^yxHr$+Y7$k>qOssLqVv5>RU+u)muYBD1-3J4(&@ryNQ1Fn+*3WefcY- z9r&eQ+P`o5zW^Kq`zs6u{CWqhr31{k-nqbR%e)R8z=zj23K+o>Y@NRQjTtMai)q0Z zjHZhST|^7CdF#Pvhrt4o!5#~(h&reyT#f_Oi|*0oT$dK;0&koGllq#0 zEXZ2y0)JXNiHyLFOs9{$xQBeN&pBGjcwC&8?8cF-3xiyEoouC - - - - Pmw.RadioSelect reference manual - - - - -

Pmw.RadioSelect

- -
-
-

Name

-

Pmw.RadioSelect() - - a set of buttons, some of which may be selected -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- A radio select is a container megawidget which manages a number of - buttons. The buttons may be laid out either horizontally or - vertically. In single selection mode, only one button may be - selected at any one time. In multiple selection mode, several - buttons may be selected at the same time and clicking on a - selected button will deselect it.

- -

The buttons displayed can be either standard buttons, radio - buttons or check buttons. When selected, standard buttons are - displayed sunken and radio and check buttons are displayed with - the appropriate indicator color and relief.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
buttontype -
-Initialisation option. Specifies the default type of buttons created by the add() - method. If 'button', the default type is Tkinter.Button. If - 'radiobutton', the default type is Tkinter.Radiobutton. If - 'checkbutton', the default type is Tkinter.Checkbutton.

-

If 'radiobutton', single selection mode is automatically set. - If 'checkbutton', multiple selection mode is automatically set. The default is 'button'.

- - - -
- -
command -
-Specifies a function to call when one of the buttons is clicked on - or when invoke() is called.

-

In single selection mode, the function is called with a single - argument, which is the name of the selected button.

- -

In multiple selection mode, the function is called with the first - argument being the name of the button and the second argument - being true if the button is now selected or false if it is now - deselected. The default is None.

- - - -
- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
orient -
-Initialisation option. Specifies the direction in which the buttons are laid out. This - may be 'horizontal' or 'vertical'. The default is 'horizontal'.

- - -
- -
padx -
-Initialisation option. Specifies a padding distance to leave between each button in the x - direction and also between the buttons and the outer edge of the - radio select. The default is 5.

- - -
- -
pady -
-Initialisation option. Specifies a padding distance to leave between each button in the y - direction and also between the buttons and the outer edge of the - radio select. The default is 5.

- - -
- -
selectmode -
-Initialisation option. Specifies the selection mode: whether a single button or multiple - buttons can be selected at one time. If 'single', clicking on - an unselected button selects it and deselects all other buttons. - If 'multiple', clicking on an unselected button selects it and - clicking on a selected button deselects it. This option is - ignored if buttontype is 'radiobutton' or 'checkbutton'. The default is 'single'.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
frame -
-If the label component has been created (that is, the labelpos - option is not None), the frame component is created to act as - the container of the buttons created by the add() method. If - there is no label component, then no frame component is - created and the hull component acts as the container. By default, this component is a Tkinter.Frame.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
-
-

Dynamic components

-

- Button components are created dynamically by the add() - method. The default type of the buttons depends on the value - of the buttontype option.

- -

Button components are created with a component group of Button.

-

- - - -
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -

- -
add(componentName, **kw)
-Add a button to the end of the radio select as a component - named componentName. with a default type as specified by - buttontype. Any keyword arguments present (except command) - will be passed to the constructor when creating the button. If - the text keyword argument is not given, the text option of the - button defaults to componentName. The method returns the - component widget.

- - -
- -
button(buttonIndex)
-Return the button specified by buttonIndex, which may have any - of the forms accepted by the index() method.

- - -
- -
deleteall()
-Delete all buttons and clear the current selection.

- - -
- -
getcurselection()
-Same as getvalue() method.

- - -
- -
getvalue()
-In single selection mode, return the name of the currently - selected button, or None if no buttons have been selected yet.

-

In multiple selection mode, return a list of the names of the - currently selected buttons.

- - - -
- -
index(index)
-Return the numerical index of the button corresponding to index. - This may be specified in any of the following forms:

-
name
Specifies the button named name.

- -
-
number
Specifies the button numerically, where 0 corresponds to - the left (or top) button.

- -
-
Pmw.END
Specifies the right (or bottom) button.

- -
- - -
- -
invoke(index)
-Calling this method is the same as clicking on the button - specified by index: the buttons are displayed selected or - deselected according to the selection mode and command is - called. index may have any of the forms accepted by the - index() method. The value returned by command is returned.

- - -
- -
numbuttons()
-Return the number of buttons in the radio select.

- - -
- -
setvalue(textOrList)
-Set the current selection for the radio select to textOrList, - but do not invoke command.

-

In single selection mode, select only the button specified by the - string textOrList.

- -

In multiple selection mode, select only the buttons specified by - the list textOrList.

- - - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create and pack a horizontal RadioSelect widget.
-        horiz = Pmw.RadioSelect(parent,
-                labelpos = 'w',
-                command = self.callback,
-                label_text = 'Horizontal',
-                frame_borderwidth = 2,
-                frame_relief = 'ridge'
-        )
-        horiz.pack(fill = 'x', padx = 10, pady = 10)
-
-        # Add some buttons to the horizontal RadioSelect.
-        for text in ('Fruit', 'Vegetables', 'Cereals', 'Legumes'):
-            horiz.add(text)
-        horiz.invoke('Cereals')
-
-        # Create and pack a multiple selection RadioSelect widget.
-        self.multiple = Pmw.RadioSelect(parent,
-                labelpos = 'w',
-                command = self.multcallback,
-                label_text = 'Multiple\nselection',
-                frame_borderwidth = 2,
-                frame_relief = 'ridge',
-                selectmode = 'multiple',
-        )
-        self.multiple.pack(fill = 'x', padx = 10)
-
-        # Add some buttons to the multiple selection RadioSelect.
-        for text in ('Apricots', 'Eggplant', 'Rice', 'Lentils'):
-            self.multiple.add(text)
-        self.multiple.invoke('Rice')
-
-        # Create and pack a vertical RadioSelect widget, with checkbuttons.
-        self.checkbuttons = Pmw.RadioSelect(parent,
-                buttontype = 'checkbutton',
-                orient = 'vertical',
-                labelpos = 'w',
-                command = self.checkbuttoncallback,
-                label_text = 'Vertical,\nusing\ncheckbuttons',
-                hull_borderwidth = 2,
-                hull_relief = 'ridge',
-        )
-        self.checkbuttons.pack(side = 'left', expand = 1, padx = 10, pady = 10)
-
-        # Add some buttons to the checkbutton RadioSelect.
-        for text in ('Male', 'Female'):
-            self.checkbuttons.add(text)
-        self.checkbuttons.invoke('Male')
-        self.checkbuttons.invoke('Female')
-
-        # Create and pack a RadioSelect widget, with radiobuttons.
-        radiobuttons = Pmw.RadioSelect(parent,
-                buttontype = 'radiobutton',
-                orient = 'vertical',
-                labelpos = 'w',
-                command = self.callback,
-                label_text = 'Vertical,\nusing\nradiobuttons',
-                hull_borderwidth = 2,
-                hull_relief = 'ridge',
-        )
-        radiobuttons.pack(side = 'left', expand = 1, padx = 10, pady = 10)
-
-        # Add some buttons to the radiobutton RadioSelect.
-        for text in ('Male', 'Female', 'Both', 'Neither'):
-            radiobuttons.add(text)
-        radiobuttons.invoke('Both')
-
-    def callback(self, tag):
-        # This is called whenever the user clicks on a button
-        # in a single select RadioSelect widget.
-        print 'Button', tag, 'was pressed.'
-
-    def multcallback(self, tag, state):
-        # This is called whenever the user clicks on a button
-        # in the multiple select RadioSelect widget.
-        if state:
-           action = 'pressed.'
-        else:
-           action = 'released.'
-
-        print 'Button', tag, 'was', action, \
-                'Selection:', self.multiple.getcurselection()
-           
-    def checkbuttoncallback(self, tag, state):
-        # This is called whenever the user clicks on a button
-        # in the checkbutton RadioSelect widget.
-        if state:
-           action = 'pressed.'
-        else:
-           action = 'released.'
-
-        print 'Button', tag, 'was', action, \
-                'Selection:', self.checkbuttons.getcurselection()
-           
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 6 June 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/ScrolledCanvas.gif b/Pmw/Pmw_1_2/doc/ScrolledCanvas.gif deleted file mode 100644 index da7941aed1a6c2f26c66648a973b8abf3c35f1b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2931 zcmV-(3ykzfNk%v~VSWMd0P+9;|Ns900093000930+1c5{!^2=OJA#6OEC2ui0Db}R z000C2NV?qqFv>}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ zxj8tW(5Q4uty-_xtai)odcWYXcuX#nQ|7dK&2GEj@VI;mSbQhWNPyYcKm33W0e*rC zgoF!+iH3uNg@TQSi;{?qhlqTc6##V#UY!wndYS~7lYxDuf0C>WimaxtkE*n_d#|;v zq`MECb_WH)!Ue#?!M+lrqneelt*EA`xzDGQvd-AK&DgQLyvPJj#svVy#^4aj%bAwd zjJTN6(ejCofA;UHxYLn<-QK&vi90uN7`g}Q)&X3|u%QNl=8lz%C=t&A3;!Hy+{peA z;<-8nD<->$k)z3z3q1-$7LpvObRd<*dGv?M zFfJ#q#1`5tMXc>z`kWV(6HZwAjs$_)g=)^2-@Y9jS8zPqQEeZXh^2JS5WQLaF08nE ztbN-SYezow=D2ar&uWOSV(nd5!((sn##Sz2;q|yXR{p(yc&w-8>)$`Yd;a~ZevLpL ze*~K3-+#J=f*)@MHmKi$|J`T8fDTp|5Pb+5B-&&XTIgYIzi=Yrh$M;_V22;37?yG+ zwpfmYC{U>4j6pzjAB-{5sAEbjZa5l_IqoQ=CN}z*6Ocg;sbmsGT7+bhOGY_FlOsI| zrIc9qK&66KUYX^WL-pvSk>Z^oBbaD*uq8}grf_DOa9*$`Ld%i4pmcHO*}|MxwOO8? zfTF-BQgxmf!<&HyI;dHN?iN_0kb7^S?`eUV*V(RH8Vphp%r=OPEOQ>9q zN~)=>5}@gks;=7Vr?1`?tE{tLT5F>U@_=ZrD(>p%48H>Fp|H2&{!py34kByl4$Cr2 zptFwp5UsQiqRM8nTVb0gwY>&$t+$_n3)2wek_(!)bPk(Cy6OgHE}ccd8!t`sUS)*6 z_nwq5p-1rB??(SJy41iz7R+J52!33!NGBa8 zr9W2-P}5G+u=FleR~^IESZnPs(S*92q9tUP?X?J8dr0;GY`5+9+hm{3LD~&A^7h?$ z;={1>-`s;bCo;2$-xeoj7aA&P3*o=zZI_|)S&NuBG*&h7yY|9Qa z@fsPAJo3t;%zQ)6KM%d`X->aT_10fswf5cw(Ea$aI}JY8;*+nw;n?q3_8{jolm7bj zM-Qwe0_3lM{_!6@KmGMjDtO91hV|MRdp!k(k6wF|q!MPMqMjqDVa|)-Y06#3BrJ*fB5m zFi}7h;{(YkE;D`+P-#@70onM2DY{X8N^G7Svv|T(adB#Qd}Ex#xW^J|v0X+3WFQ5J zCPEfch=(lNA9-QNMUF3z+k4~~pUA6onWU1IWFed!smVEV(s%3#B_p#$%2Mu+j=oam z2Qi5?SCSBx(30f^X~{HO8nTaDL?J^!smtf_(to~$Brp**Lz zBiPWALQIMv6{SW;YEfdPG^8utXiF{gQs{}4r5&YU7i${4genxLCMBXr!^hK}vT~%< z%&8|)T2$QmG+;=b>7knHR95O!lTu9$Rd4rHsLE8S^fKaBQP)+kQZ%bt9V_U{YSw_F z^##OK>)qJ8udh-n3#d$>Tt7$Gx-Qg4TFC1-_lmi`*6XYo$`DSL+C0KK&ai&nCWP$s zP=h*Fc!P9nVihac!Cn@#qr9pZC;OewdiJw(g`;SjNLuhz*0QK|8)PFk&DMUzov@8< z2m`fRKJrDe31X~Rb-P1;J zxY=a~bUFHq=?1sD){Sj=U{yQ?|Je2JGmCPXAzFjf{8lT4}-WR5*{&$ zn`+_{QzXUS-JX80Y2kQjc*5x8X^m~1U>L(Ug)>&=j(J?(>Ef8dDQ)q(iVWN%_cx+L zzSoUaOuZnRG0IZzv4~@AL@Of^%UNc!a=F}PaDq9^(ls)bhpS5^BWKEF{-l=!h&VX^ z7%VF6p_{p5XPxRN&*9wubIi0%**NES&cHkK$NDT>0s-24l4}5?(L2CENBUG^RJP1V<6TGJDZDk&FfzK`qwU! z7okhLW`qIz*vL+{i$ul|T%T0eMgjuI9O7(?jV{_hn07;|t?lJu+Xvm|QKo(D=hc0? z2jKOjNp8E89`-p+T7 z%UmX1X-75$|MiAW$EPVn4p}*gj6dC(w1NXT3W;y11y6P5j~;|MRbQ%*w4Q9x6l3L+xq+955M@we}Xxf|NQ7rzxvnD{xPhe z{qT>!{Ql=p|N2`2^cX;~eO%K0{`>#`02qM9XI^U7WcYUh`u7o}A%G0nfDZV8*!N-t zNNk*-X)2I_5>a}wM}A6xffHC2BeG=|D1rP35(~(I9N~cWM5y1cjbYg{9mvw~3tC zONpL%1%60bD#(aE2VA7_iKv*0swjV - - - - Pmw.ScrolledCanvas reference manual - - - - -

Pmw.ScrolledCanvas

- -
-
-

Name

-

Pmw.ScrolledCanvas() - - canvas with optional scrollbars -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- A scrolled canvas consists of a standard canvas widget with optional - scrollbars which can be used to scroll the canvas. The scrollbars - can be dynamic, which means that a scrollbar will only be - displayed if it is necessary, that is, if the scrollregion of the - canvas is larger than the canvas.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
borderframe -
-Initialisation option. If true, the borderframe component will be created. The default is 0.

- - -
- -
canvasmargin -
-Initialisation option. The margin around the items in the canvas. Used by the - resizescrollregion() method. The default is 0.

- - -
- -
hscrollmode -
-The horizontal scroll mode. If 'none', the horizontal scrollbar - will never be displayed. If 'static', the scrollbar will always - be displayed. If 'dynamic', the scrollbar will be displayed - only if necessary. The default is 'dynamic'.

- - -
- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
scrollmargin -
-Initialisation option. The distance between the scrollbars and the enclosing canvas - widget. The default is 2.

- - -
- -
usehullsize -
-Initialisation option. If true, the size of the megawidget is determined solely by the - width and height options of the hull component.

-

Otherwise, the size of the megawidget is determined by the width - and height of the canvas component, along with the size and/or - existence of the other components, such as the label, the - scrollbars and the scrollmargin option. All these affect the - overall size of the megawidget. The default is 0.

- - - -
- -
vscrollmode -
-The vertical scroll mode. If 'none', the vertical scrollbar - will never be displayed. If 'static', the scrollbar will always - be displayed. If 'dynamic', the scrollbar will be displayed - only if necessary. The default is 'dynamic'.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
borderframe -
-A frame widget which snuggly fits around the canvas, to give the - appearance of a canvas border. It is created with a border so - that the canvas, which is created without a border, looks like it - has a border. By default, this component is a Tkinter.Frame.

- - -
- -
canvas -
-The canvas widget which is scrolled by the scrollbars. If the - borderframe option is true, this is created with a borderwidth - of 0 to overcome a known problem with canvas widgets: if a - widget inside a canvas extends across one of the edges of the - canvas, then the widget obscures the border of the canvas. - Therefore, if the canvas has no border, then this overlapping does - not occur. By default, this component is a Tkinter.Canvas.

- - -
- -
horizscrollbar -
-The horizontal scrollbar. By default, this component is a Tkinter.Scrollbar. Its component group is Scrollbar.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
- -
vertscrollbar -
-The vertical scrollbar. By default, this component is a Tkinter.Scrollbar. Its component group is Scrollbar.

- - -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -In addition, methods from the -Tkinter.Canvas class -are forwarded by this megawidget to the -canvas component. -

- -
bbox(*args)
-This method is explicitly forwarded to the canvas component's - bbox() method. Without this explicit forwarding, the bbox() - method (aliased to grid_bbox()) of the hull would be invoked, - which is probably not what the programmer intended.

- - -
- -
interior()
-Return the canvas widget within which the programmer should create - graphical items and child widgets. This is the same as - component('canvas').

- - -
- -
resizescrollregion()
-Resize the scrollregion of the canvas component to be the - bounding box covering all the items in the canvas plus a margin on - all sides, as specified by the canvasmargin option.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create the ScrolledCanvas.
-        self.sc = Pmw.ScrolledCanvas(parent,
-                borderframe = 1,
-                labelpos = 'n',
-                label_text = 'ScrolledCanvas',
-                usehullsize = 1,
-                hull_width = 400,
-                hull_height = 300,
-        )
-
-        # Create a group widget to contain the scrollmode options.
-        w = Pmw.Group(parent, tag_text='Scroll mode')
-        w.pack(side = 'bottom', padx = 5, pady = 5)
-
-        hmode = Pmw.OptionMenu(w.interior(),
-                labelpos = 'w',
-                label_text = 'Horizontal:',
-                items = ['none', 'static', 'dynamic'],
-                command = self.sethscrollmode,
-                menubutton_width = 8,
-        )
-        hmode.pack(side = 'left', padx = 5, pady = 5)
-        hmode.invoke('dynamic')
-
-        vmode = Pmw.OptionMenu(w.interior(),
-                labelpos = 'w',
-                label_text = 'Vertical:',
-                items = ['none', 'static', 'dynamic'],
-                command = self.setvscrollmode,
-                menubutton_width = 8,
-        )
-        vmode.pack(side = 'left', padx = 5, pady = 5)
-        vmode.invoke('dynamic')
-
-        buttonBox = Pmw.ButtonBox(parent)
-        buttonBox.pack(side = 'bottom')
-        buttonBox.add('yview', text = 'Show\nyview', command = self.showYView)
-        buttonBox.add('scroll', text = 'Page\ndown', command = self.pageDown)
-        buttonBox.add('center', text = 'Center', command = self.centerPage)
-
-        # Pack this last so that the buttons do not get shrunk when
-        # the window is resized.
-        self.sc.pack(padx = 5, pady = 5, fill = 'both', expand = 1)
-
-        self.sc.component('canvas').bind('<1>', self.addcircle)
-
-        testEntry = Tkinter.Entry(parent)
-        self.sc.create_line(20, 20, 100, 100)
-        self.sc.create_oval(100, 100, 200, 200, fill = 'green')
-        self.sc.create_text(100, 20, anchor = 'nw',
-                text = 'Click in the canvas\nto draw ovals',
-                font = testEntry.cget('font'))
-        button = Tkinter.Button(self.sc.interior(),
-                text = 'Hello,\nWorld!\nThis\nis\na\nbutton.')
-        self.sc.create_window(200, 200,
-                anchor='nw',
-                window = button)
-
-        # Set the scroll region of the canvas to include all the items
-        # just created.
-        self.sc.resizescrollregion()
-
-        self.colours = ('red', 'green', 'blue', 'yellow', 'cyan', 'magenta',
-                'black', 'white')
-        self.oval_count = 0
-        self.rand = 12345
-
-    def sethscrollmode(self, tag):
-        self.sc.configure(hscrollmode = tag)
-
-    def setvscrollmode(self, tag):
-        self.sc.configure(vscrollmode = tag)
-
-    def addcircle(self, event):
-        x = self.sc.canvasx(event.x)
-        y = self.sc.canvasy(event.y)
-        width = 10 + self.random() % 100
-        height = 10 + self.random() % 100
-        self.sc.create_oval(
-            x - width, y - height, x + width, y + height,
-            fill = self.colours[self.oval_count])
-        self.oval_count = (self.oval_count + 1) % len(self.colours)
-        self.sc.resizescrollregion()
-
-    # Simple random number generator.
-    def random(self):
-        self.rand = (self.rand * 125) % 2796203
-        return self.rand
-
-    def showYView(self):
-        print self.sc.yview()
-
-    def pageDown(self):
-        self.sc.yview('scroll', 1, 'page')
-
-    def centerPage(self):
-        top, bottom = self.sc.yview()
-        size = bottom - top
-        middle = 0.5 - size / 2
-        self.sc.yview('moveto', middle)
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 20 September 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/ScrolledField.gif b/Pmw/Pmw_1_2/doc/ScrolledField.gif deleted file mode 100644 index d1942e3dab39644f5dbf60b8989bde1411bb18e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615 zcmV-t0+{_rNk%v~VGIE!0Pz3-|Ns90007z9*@A+CEC2ui01N>o00091l#i*)?GK}z zwAzca-n{z{hT=$;=82~2%C_zc$MQ_q_KoNI&iDQg>M$BL1+*#f@qT-gmiJ6>)L4lRDZjsB=US>2uh?_Mr1 zEFo*n-`)TI&ym1z^v+ESh_FF6ajE<{OxJK-sDTnGF044qVlMuA7AGcz_%C0Ced`Xg z+X%3vM1=-ds%+WHAg+rMYZ45X$`;O@CvTy|Ht8ojk(%U`Oo>#e$)yE1x|~=K=u>7& zT{4Avm1<9SpM=&3N09-*}fd(FkV1f!R zs04qUya8c^5>7~Ag%(~&#(x@a$YF;beh6ZSB92I6i6)+iVu~uR$YP5wzBoq#06PP6 BFVz45 diff --git a/Pmw/Pmw_1_2/doc/ScrolledField.html b/Pmw/Pmw_1_2/doc/ScrolledField.html deleted file mode 100644 index 4c28cbc4..00000000 --- a/Pmw/Pmw_1_2/doc/ScrolledField.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - Pmw.ScrolledField reference manual - - - - -

Pmw.ScrolledField

- -
-
-

Name

-

Pmw.ScrolledField() - - single line scrollable output field -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- A scrolled field displays a single line of text. If the text is - too wide to display in the megawidget it can be scrolled to the - left and right by the user by dragging with the middle mouse - button. The text is also selectable by clicking or dragging with - the left mouse button.

- -

It can be used instead of a Tkinter.Label widget when displaying - text of unknown width such as application status messages.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
sticky -
-Initialisation option. The default is 'ew'.

- - -
- -
text -
-Specifies the text to display in the scrolled field. The default is ''.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
entry -
-This is used to display the text and allows the user to scroll and - select the text. The state of this component is set to - 'readonly' (or 'disabled' in earlier versions of Tcl/Tk which do - not support 'readonly'), so that the user is unable to modify the text. By default, this component is a Tkinter.Entry.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
-
- -

Methods

-This megawidget has no methods of its own. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -In addition, methods from the -Tkinter.Entry class -are forwarded by this megawidget to the -entry component. -

-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create and pack the ScrolledField.
-        self._field = Pmw.ScrolledField(parent, entry_width = 30,
-                entry_relief='groove', labelpos = 'n',
-                label_text = 'Scroll the field using the\nmiddle mouse button')
-        self._field.pack(fill = 'x', expand = 1, padx = 10, pady = 10)
-
-        # Create and pack a button to change the ScrolledField.
-        self._button = Tkinter.Button(parent, text = 'Change field',
-                command = self.execute)
-        self._button.pack(padx = 10, pady = 10)
-
-        self._index = 0
-        self.execute()
-
-    def execute(self):
-        self._field.configure(text = lines[self._index % len(lines)])
-        self._index = self._index + 1
-
-lines = (
-  'Alice was beginning to get very tired of sitting by her sister',
-  'on the bank, and of having nothing to do:  once or twice she had',
-  'peeped into the book her sister was reading, but it had no',
-  'pictures or conversations in it, "and what is the use of a book,"',
-  'thought Alice "without pictures or conversation?"',
-  'Alice\'s Adventures in Wonderland',
-  'Lewis Carroll',
-)
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 23 August 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/ScrolledFrame.gif b/Pmw/Pmw_1_2/doc/ScrolledFrame.gif deleted file mode 100644 index 089a201ec85945dc8bc2499fe1307f6e65c18d47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3926 zcmV-c52^4+Nk%v~VUz)`0P+9;|Ns90007z9*EI;QzzJ!-9f>EC2ui0F(i) z000C2D7xJKFv>}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ z$!uB<(5Q4uty-_xtai)odcWYXcuX#v&uDQf&2GEj@VI$S`5*YN4}(|McT`as~t2IJ(6nagEJS+!Tz2EIecupYrf3gbCcw@`wveHeH26Ndii zS2sy#Ft)rJKBi@`svALX$(QW`LIy6zq z7Xk~;KpHRS*CaO11AX@*3e`Gr=dcaCcL&)DJ(}iiLN^ZMH;DUQexcu0;k6B)KyHJ2 z4du+UOK?8)*Kp~@h4!#c1H1O~4ZwBGG8L5y@-yJeFps{zdM@AXK(zB^KmPwN^#url zRQ`OllYWx?=fxok0w~~v3lLbKPO*Ro;e{B|rAk#3Qs`8MAcpvYgdKi|$cZSXsN#w& zo(NHkFvck3j4#e;4KUqd z3-Jj2)(WV_%ATe$z4l;}?Z(N9{8%e9mt6B*4u9+IE$o~eLdxc<#PZI*>J0L>nI*h5 z#yl%MnbVF5O{&Bb7wz=XFZW6^)kPt-8fjc(1#`kv)7-Vy9}sP(z1nts_QnH;9dguV zGkiC<|31wt+a9>>FDY%sEjDE!>&-OD>?#g5--H_uwrha?b0D~_-E!r#(q?;&S;O6` z-MP(!ymdDg+Yv)q;cMlPmv-aI*88K-{Fyqjr0wYv=b zyPU(sd+urb{&>=0^Ip91Sks#Puei>AyX{D$#sRR*r!GA4*Ee^3iHvUQJ(uOL8GoDk zrk~#WLbkug{DJ1~CI76l9|kUmzUctaeZ7NK0w*QF0pia}`n$~m_xHa4RZxBnRA2VW z6+r`DkbWQRU)122K?@L&BnVnhgR%ojc&A2{gNoAArVW0Aq=4ZFu1@@MSb|j{aE~DDe zLD&cqRfHsgAsdNE5sqhqcywePqZ7#yOfr*|)Z+*(sK`)-ag$5zV0ah_%2Dz$l!tU> zA_IxaD5|oMnDk&N=ab7-?ovy0+{Ysc(n%3~QkSr#q%18ts8iy@j^ScW_kJn5rY+8z z+{0G|g{8c%`H!2rqTFVNsjxYr&RffSAGBnaPHH-0bLgz5>PGm^oW;|8rJ-lE*eOrZ z(DIp_e49i3z!hz}b6wFW=;0`HG=jDhdj1E&g+u#^JAGb4qNg+HKVt&TmBq|%*WA^} zKsvpqv8-_TG+0F6QMP&d3Z;>o+@9zN&{PhNZjuY>V@BH2d{PgiB<0oWhBu0yR`jJf z4eG%RS{aRf^8LEUDc{HIU3NLio|h3#oJE(_MxHD z46SWdt6t!0vZ2CFsV3WKP&(?AbFrnWX-!%-{wmgA0<9E;mFia;@>jsdm0O9$ndz)L z*1eXsVn*|-_v)4x*xB_0Mx82NSGqUEDKE6a)CW1SqBV-t&9id77-@CNv9%WVvoV$J zV@=x=YXyxntF0;KzV+ILp6{fZ{x$5nq*dI~S~GLLb?*6G8{Io1Cb(p^F4dlAQR!hd ze7x-@cg5%3Zn~6u+tny=n>xr_I?tdGEw6cfieB@Lx4!Q+?sVm8z4Z#$soJftH%AH1 z?**#^FpSN6EXMEMY__d%|M$` z{AN|*_{KW6aFG-FVo{em$A+dcfTM|IJ$>4kul97PQGIGqr`pXmX7!L=J!@On8rHoA z_NW6zr8yJxmb5DHLn$x*fv8k2aZDv0^ zmOM7Gw2fU(Wc!-j<4*Ur;hk)C1BuxW>sFS;-Rj!Q*OpyUlvo?+)1C@YLDI z|8iGnF|VpEpYQ%rk(zUxt8;6=OY^-|o^O`B47P%`9nuk3^W@?dTqC9JNMIWEk}__; zuw%HYC5%~=R6Vfa<*d_VJ9YWKyx(Uv`{>9{-IrLrwr0=zx`|GAwD@&%O9y$h@cwq9 zQ2cd$PY1?Pm-nv$cCw1y>~cHKcg<)W*Q@p@&~M9j{*E1~Ob^7)E(wuGO3QB3E$p09td^v7}bw^-pPfUx&m0hoV|H+LL`AIP>lBPU=G zsDHZCeBWnq6WDn{SAi6mfg4yg3>Xv>qcTEfc^#;5GpBa>rGenHf>L){Xm^1s7=sHJ zf*gW8`lfa=sDlc3UJ1v8K1hQ-NMAqrfk9}2NLYi_cZ2NHY16<7sD@P7YUb939xziIa6;6#Y=_c@cIYa2 zSZ;SnhGT+*XBdZRD2QuFhSY}jaij}x~kGO?#)`~wshsolKvM6U8L_2lnMuWy^xkzZc7-+rd zXTP{-!Du732#B_%Xv2t%lvZg?l8kF~X_5wwk0y;oQjASlZHV}W^!9G@mWbOZY}y8k zLYIdMq=+2wh4m(e+PH*&c#Yzgj^5af>!^-*7>=EoDRsz)dT5RtfR5ZqkNfzId{KrF z6o`vBhzD7S33-U{IFIp&g(!9-26>JMNs$U^kqr5d54n*jb16wuOxY%oTqu%k$d4M} zkKjm>hG>rx(-_{timP{i{w7TkScKrSgGQK>J7<$Id4xlFlQLO^z(EouXfo&iWPlVE zJOkx3DR^=Agp~NSlO`2&q0^K*#dt;~l{ANV_4iO4ca%d(5EO%b&IeW}$U4%Jb)czws5hF$hkAA~nPcgDpV@dX=n_le zn!#sV7X^4MICb_!P`3G+iwQKc34QDbaV>LzSBG(_>4=nRHhv|3x0iIx!kpVT7!rkZ zkO_d$iIW#|3)Fd=ZnqZK8I+83cm(nZjPX>9d3@l>eTP|{oA;eQDVY9GQ+UCNc;@$> z-<5NzcbacGo_N3^tyPxjX`g<#p4|DJ^+|-}m!0f6EC6lO_Ax?&mei?oZ z>Y455o(Rf*EH!=6NuVf|pO_g_8TwTldZMIhH$Fk3H#mQ-!#ao=qC|x*ziF5p!+$b5 zfGdiW{l}yF`3gTuoUWIEH`<)0RdKz-gfIGlN!Xz}=z+6&lTr$tQTn6~N~Kt;lpBbb zU_l5Z(vF1Wf>Y{pWNM{BccwUMra}m%Y1*b)%BEX-b0jlF#CVL%n5TNWr+nI{eyT;F zz$1I`r-WLlhI*)oif6O9sEpdEj{2yOx~QW#sgzo&mU^jR(Eccxx~ZJnsh*lcDrt>Y zGJ<82sHS?VsM@Eb3PIWvs>q3h?TCY^I;*r=tIxQqo`?vx*eJ3}kY*UEmE)_eiX!eP zLHRQY!s>~@8mzIpiZxP@o06;dsI1G%Hp#lH5pp6Hic5=f4cEFT)oQKHs)Y_ftgC52 zr5YUL3a#OKGT&OP3_z^>NCg$LswUa4obj%|iYnl?Kfr)xeCe$C3NiZ1t_t&#yc!Gu zE2{81u%lA2)QT0fk+8zBumyXs4m%eRn<-MTtrRvPSaz|lnz4wnvEUjMOgOLOItBJR zvLvgq>&ihLyRXKIDN)d}pPI8eyR%_{tK}f9DmyVTGAj-|TeL=dv@`3oRxz|HYpYKC kv``zhNJ1x4TeVhuwO0GGTD!Ge+qGW%wO|{zPLKcqJBDS)SpWb4 diff --git a/Pmw/Pmw_1_2/doc/ScrolledFrame.html b/Pmw/Pmw_1_2/doc/ScrolledFrame.html deleted file mode 100644 index 5cfe3b3b..00000000 --- a/Pmw/Pmw_1_2/doc/ScrolledFrame.html +++ /dev/null @@ -1,479 +0,0 @@ - - - - - - Pmw.ScrolledFrame reference manual - - - - -

Pmw.ScrolledFrame

- -
-
-

Name

-

Pmw.ScrolledFrame() - - frame with optional scrollbars -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- A scrolled frame consists of a scrollable interior frame within a - clipping frame. The programmer can create other widgets within - the interior frame. If the frame becomes larger than the - surrounding clipping frame, the user can position the frame using - the horizontal and vertical scrollbars.

- -

The scrollbars can be dynamic, which means that a scrollbar will - only be displayed if it is necessary. That is, if the frame is - smaller than the surrounding clipping frame, the scrollbar will be - hidden.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
borderframe -
-Initialisation option. If true, the borderframe component will be created. The default is 1.

- - -
- -
horizflex -
-Specifies how the width of the scrollable interior frame should be - resized relative to the clipping frame.

-

If 'fixed', the interior frame is set to the natural width, as - requested by the child widgets of the frame. If 'expand' and - the requested width of the interior frame is less than the width - of the clipping frame, the interior frame expands to fill the - clipping frame. If 'shrink' and the requested width of the - interior frame is more than the width of the clipping frame, the - interior frame shrinks to the width of the clipping frame. If - 'elastic', the width of the interior frame is always set to the - width of the clipping frame. The default is 'fixed'.

- - - -
- -
horizfraction -
-Initialisation option. The fraction of the width of the clipper frame to scroll the - interior frame when the user clicks on the horizontal scrollbar - arrows. The default is 0.05.

- - -
- -
hscrollmode -
-The horizontal scroll mode. If 'none', the horizontal scrollbar - will never be displayed. If 'static', the scrollbar will always - be displayed. If 'dynamic', the scrollbar will be displayed - only if necessary. The default is 'dynamic'.

- - -
- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
scrollmargin -
-Initialisation option. The distance between the scrollbars and the clipping frame. The default is 2.

- - -
- -
usehullsize -
-Initialisation option. If true, the size of the megawidget is determined solely by the - width and height options of the hull component.

-

Otherwise, the size of the megawidget is determined by the width - and height of the clipper component, along with the size and/or - existence of the other components, such as the label, the - scrollbars and the scrollmargin option. All these affect the - overall size of the megawidget. The default is 0.

- - - -
- -
vertflex -
-Specifies how the height of the scrollable interior frame should - be resized relative to the clipping frame.

-

If 'fixed', the interior frame is set to the natural height, - as requested by the child widgets of the frame. If 'expand' and - the requested height of the interior frame is less than the height - of the clipping frame, the interior frame expands to fill the - clipping frame. If 'shrink' and the requested height of the - interior frame is more than the height of the clipping frame, the - interior frame shrinks to the height of the clipping frame. If - 'elastic', the height of the interior frame is always set to the - height of the clipping frame. The default is 'fixed'.

- - - -
- -
vertfraction -
-Initialisation option. The fraction of the height of the clipper frame to scroll the - interior frame when the user clicks on the vertical scrollbar - arrows. The default is 0.05.

- - -
- -
vscrollmode -
-The vertical scroll mode. If 'none', the vertical scrollbar - will never be displayed. If 'static', the scrollbar will always - be displayed. If 'dynamic', the scrollbar will be displayed - only if necessary. The default is 'dynamic'.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
borderframe -
-A frame widget which snuggly fits around the clipper, to give the - appearance of a border. It is created with a border so that the - clipper, which is created without a border, looks like it has a - border. By default, this component is a Tkinter.Frame.

- - -
- -
clipper -
-The frame which is used to provide a clipped view of the frame - component. If the borderframe option is true, this is created - with a borderwidth of 0 to overcome a known problem with using - place to position widgets: if a widget (in this case the - frame component) is placed inside a frame (in this case the - clipper component) and it extends across one of the edges of the - frame, then the widget obscures the border of the frame. - Therefore, if the clipper has no border, then this overlapping - does not occur. By default, this component is a Tkinter.Frame.

- - -
- -
frame -
-The frame within the clipper to contain the widgets to be scrolled. By default, this component is a Tkinter.Frame.

- - -
- -
horizscrollbar -
-The horizontal scrollbar. By default, this component is a Tkinter.Scrollbar. Its component group is Scrollbar.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
- -
vertscrollbar -
-The vertical scrollbar. By default, this component is a Tkinter.Scrollbar. Its component group is Scrollbar.

- - -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -

- -
interior()
-Return the frame within which the programmer may create widgets to - be scrolled. This is the same as component('frame').

- - -
- -
reposition()
-Update the position of the frame component in the clipper and - update the scrollbars.

-

Usually, this method does not need to be called explicitly, since - the position of the frame component and the scrollbars are - automatically updated whenever the size of the frame or - clipper components change or the user clicks in the scrollbars. - However, if horizflex or vertflex is 'expand', the - megawidget cannot detect when the requested size of the frame - increases to greater than the size of the clipper. Therefore, - this method should be called when a new widget is added to the - frame (or a widget is increased in size) after the initial - megawidget construction.

- - - -
- -
xview(mode = None, value = None, units = None)
-Query or change the horizontal position of the scrollable interior - frame. If mode is None, return a tuple of two numbers, each - between 0.0 and 1.0. The first is the position of the left edge - of the visible region of the contents of the scrolled frame, - expressed as a fraction of the total width of the contents. The - second is the position of the right edge of the visible region.

-

If mode == 'moveto', adjust the view of the interior so that - the fraction value of the total width of the contents is - off-screen to the left. The value must be between 0.0 and - 1.0.

- -

If mode == 'scroll', adjust the view of the interior left or - right by a fixed amount. If what is 'units', move the view in - units of horizfraction. If what is pages, move the view in - units of the width of the scrolled frame. If value is positive, - move to the right, otherwise move to the left.

- - - -
- -
yview(mode = None, value = None, units = None)
-Query or change the vertical position of the scrollable interior - frame. If mode is None, return a tuple of two numbers, each - between 0.0 and 1.0. The first is the position of the top edge - of the visible region of the contents of the scrolled frame, - expressed as a fraction of the total height of the contents. The - second is the position of the bottom edge of the visible region.

-

If mode == 'moveto', adjust the view of the interior so that - the fraction value of the total height of the contents is - off-screen to the top. The value must be between 0.0 and - 1.0.

- -

If mode == 'scroll', adjust the view of the interior up or - down by a fixed amount. If what is 'units', move the view in - units of vertfraction. If what is pages, move the view in - units of the height of the scrolled frame. If value is - positive, move to down, otherwise move up.

- - - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create the ScrolledFrame.
-        self.sf = Pmw.ScrolledFrame(parent,
-                labelpos = 'n', label_text = 'ScrolledFrame',
-                usehullsize = 1,
-                hull_width = 400,
-                hull_height = 220,
-        )
-
-        # Create a group widget to contain the flex options.
-        w = Pmw.Group(parent, tag_text='Flex')
-        w.pack(side = 'bottom', padx = 5, pady = 3)
-
-        hflex = Pmw.OptionMenu(w.interior(),
-                labelpos = 'w',
-                label_text = 'Horizontal:',
-                items = ['fixed', 'expand', 'shrink', 'elastic'],
-                command = self.sethflex,
-                menubutton_width = 8,
-        )
-        hflex.pack(side = 'left', padx = 5, pady = 3)
-        hflex.invoke('fixed')
-
-        vflex = Pmw.OptionMenu(w.interior(),
-                labelpos = 'w',
-                label_text = 'Vertical:',
-                items = ['fixed', 'expand', 'shrink', 'elastic'],
-                command = self.setvflex,
-                menubutton_width = 8,
-        )
-        vflex.pack(side = 'left', padx = 5, pady = 3)
-        vflex.invoke('fixed')
-
-        # Create a group widget to contain the scrollmode options.
-        w = Pmw.Group(parent, tag_text='Scroll mode')
-        w.pack(side = 'bottom', padx = 5, pady = 0)
-
-        hmode = Pmw.OptionMenu(w.interior(),
-                labelpos = 'w',
-                label_text = 'Horizontal:',
-                items = ['none', 'static', 'dynamic'],
-                command = self.sethscrollmode,
-                menubutton_width = 8,
-        )
-        hmode.pack(side = 'left', padx = 5, pady = 3)
-        hmode.invoke('dynamic')
-
-        vmode = Pmw.OptionMenu(w.interior(),
-                labelpos = 'w',
-                label_text = 'Vertical:',
-                items = ['none', 'static', 'dynamic'],
-                command = self.setvscrollmode,
-                menubutton_width = 8,
-        )
-        vmode.pack(side = 'left', padx = 5, pady = 3)
-        vmode.invoke('dynamic')
-
-        self.radio = Pmw.RadioSelect(parent, selectmode = 'multiple',
-            command = self.radioSelected)
-        self.radio.add('center', text = 'Keep centered vertically')
-        self.radio.pack(side = 'bottom')
-
-        buttonBox = Pmw.ButtonBox(parent)
-        buttonBox.pack(side = 'bottom')
-        buttonBox.add('add', text = 'Add a button', command = self.addButton)
-        buttonBox.add('yview', text = 'Show yview', command = self.showYView)
-        buttonBox.add('scroll', text = 'Page down', command = self.pageDown)
-
-        # Pack this last so that the buttons do not get shrunk when
-        # the window is resized.
-        self.sf.pack(padx = 5, pady = 3, fill = 'both', expand = 1)
-
-        self.frame = self.sf.interior()
-
-        self.row = 0
-        self.col = 0
-
-        for count in range(15):
-            self.addButton()
-
-    def sethscrollmode(self, tag):
-        self.sf.configure(hscrollmode = tag)
-
-    def setvscrollmode(self, tag):
-        self.sf.configure(vscrollmode = tag)
-
-    def sethflex(self, tag):
-        self.sf.configure(horizflex = tag)
-
-    def setvflex(self, tag):
-        self.sf.configure(vertflex = tag)
-
-    def addButton(self):
-        button = Tkinter.Button(self.frame,
-            text = '(%d,%d)' % (self.col, self.row))
-        button.grid(row = self.row, column = self.col, sticky = 'nsew')
-
-        self.frame.grid_rowconfigure(self.row, weight = 1)
-        self.frame.grid_columnconfigure(self.col, weight = 1)
-        if self.sf.cget('horizflex') == 'expand' or \
-                self.sf.cget('vertflex') == 'expand':
-            self.sf.reposition()
-
-        if 'center' in self.radio.getcurselection():
-            self.sf.update_idletasks()
-            self.centerPage()
-
-        if self.col == self.row:
-            self.col = 0
-            self.row = self.row + 1
-        else:
-            self.col = self.col + 1
-
-    def showYView(self):
-        print self.sf.yview()
-
-    def pageDown(self):
-        self.sf.yview('scroll', 1, 'page')
-
-    def radioSelected(self, name, state):
-        if state:
-            self.centerPage()
-
-    def centerPage(self):
-        # Example of how to use the yview() method of Pmw.ScrolledFrame.
-        top, bottom = self.sf.yview()
-        size = bottom - top
-        middle = 0.5 - size / 2
-        self.sf.yview('moveto', middle)
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 18 February 2001 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/ScrolledListBox.gif b/Pmw/Pmw_1_2/doc/ScrolledListBox.gif deleted file mode 100644 index 9a595618f8dde05dfba8d4653dd57c017e9894d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1855 zcmV-F2f+A8Nk%v~VbTDo0P+9;|Ns90007z9*)ULG!^6XZf`WB*bpQYWEC2ui0MY=c z000C2D7xJKFv>}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhHyD?nrf97myY zc_}KK$)rHatXho?>h#L(ZXrivQ7WdEy=a*h`~5O`2_Ec7>;;qN}W}uCK7Mva__cwzs&s zy1OL>zQ4f1!o$SH#>dFX%FE2n&cF=M6wlPv*4NnC)Bw@V+!MaMd;s4Hz69v$1O@8p zbMFi1?EviU1oRT&@@f18*i(luAHi}F{0(v>f#JUr0SBTZCvhS|2nvljTm=5= zVTygG;(~o!;fEbS$HdeJlL+3R7@Dq7lxpHI+B9-?J2tIZjB^G7yjjkpb@JIY?7| z`bO95T)M|;)KDL{{_z^NUD>l;pS7KuG3neqYTH%~6L|35ykm1VzC$={;v*}gKn(Yx zbJWoN@kOM8`mO7|*W%sb-4^(JzE>yR6lf>=_D2D+*LX9j`|rq;-(GGte*R(q{s96Y zQi>3$N-gIpH`98ZR96)xRTY@UcIAbV;7{Vc)u4T-ti;KNS*$S?E*I{%pjB*)RiB0h zs`x+{8c8=xiJP6sqJ%g;xS@+X>ZJ>f*>$#8gafkpp@0T<5+8~A=@%q}@^QF{kx}-y zqJTK%0%Ur{F_*)Z8G300n1hKqW|PT1Y37+v>1X0lYqGhTn{R%_TAVSEi5s3WfJV-r zfCj22pLt>?=%ED+DoBMDP6(WzQ4M;Nca2sD8JTt@^98TtX`>SSf}Jq8kvVSZ;rx!ZPbnn_ep}wZ$eo?T}gmtLe8w5^~C} zP?*avuJ#d#AGg7VIbVpXQf62oZ=gC~t`B=^$hvkaN~jAIH{h+o7q?{ZsQ7jaL&gM` zDYC~UgUs>CD3H9G#Voh{F|8rTyn@Rx!ECcxDbp<8h#*Mp8O|d`D{v+@6TR_ZlI$FU z(uvkAVk+=?sK|Y0LT$8?{H|AIoLWoGtfN-r5ii&?vnw{I*!GwspJD$j?YU7Nx!t2_ zSG@M6#lmQ}&@9Exbc|iQ3oqPxYaI2@+OkR+lxMFg_?}MwXVtUXD_8z>;+Mmzx#cf+ zyST}pi!eEVrH^pBjj3j-Ll8;`R#I9-*9RMKo9s2cm*_|0G~s^1a9Df#&h88=7c|d9qNJ@%%BE0 z$iWVJ@Pi->p$GxhCN~8M0CY;B3RlR&7P|0-Fhq?3An2?Z+VF-r%%KidIKu^E$Aaw$ zfIfss03yOr3@bF^4wuNp6!x%$P6DDjl!y)@QZfFCMkGQCuh_&cdNCbOq@W3RoTfOxSxQz~bB)+c;R&P3OiogAkgIg3CtWGccTV%1Urc8Ox7kc- z9uk&&yd*I9IL=%K@}Kx*qdpy}sdHAdh5ipsXcre6#cf(MqWbBiM2+bu4_dUC7|m!v zH`>N@a&UAFC8
c+)zrbg^CfJ|pf)0*1!rZ~;1PIt=Fp8E8sKn-e8=faqC#7=?~ zAnH)+6hWkBpeboVO9P#10jOR?ErV-|r>K{%#GJ;e&CAPHIh8)IHi;iW*_%!*Re`G* z25(RlOjgR1&pv{#nk#jgC4r-p=?zu)noa# ztWYf$nTm3l!>X4&%_b|dOA!uc8|c}$(rrR{HCFu;8&`B>6Q+6_p=@VM+uGXpwi)D> tN5O&H-um{p!1Zl3LP*u(8uz%!6HTsim&@GdI`_HIjjnX3i_`=F06XLSo - - - - Pmw.ScrolledListBox reference manual - - - - -

Pmw.ScrolledListBox

- -
-
-

Name

-

Pmw.ScrolledListBox() - - listbox with optional scrollbars -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- A scrolled listbox consists of a standard listbox widget with optional - scrollbars which can be used to scroll the listbox. The - scrollbars can be dynamic, which means that a scrollbar will - only be displayed if it is necessary. That is, if the listbox - does not contain enough entries, the vertical scrollbar will be - automatically hidden and if the entries are not wide enough, the - horizontal scrollbar will be automatically hidden.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
dblclickcommand -
-This specifies a function to call when mouse button 1 is double - clicked over an entry in the listbox component. The default is None.

- - -
- -
hscrollmode -
-The horizontal scroll mode. If 'none', the horizontal scrollbar - will never be displayed. If 'static', the scrollbar will always - be displayed. If 'dynamic', the scrollbar will be displayed - only if necessary. The default is 'dynamic'.

- - -
- -
items -
-Initialisation option. A tuple containing the initial items to be displayed by the - listbox component. The default is ().

- - -
- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
scrollmargin -
-Initialisation option. The distance between the scrollbars and the listbox widget. The default is 2.

- - -
- -
selectioncommand -
-This specifies a function to call when mouse button 1 is single - clicked over an entry in the listbox component or if the <Space> - or <Return> key is hit while the listbox has focus. The default is None.

- - -
- -
usehullsize -
-Initialisation option. If true, the size of the megawidget is determined solely by the - width and height options of the hull component.

-

Otherwise, the size of the megawidget is determined by the width - and height of the listbox component, along with the size and/or - existence of the other components, such as the label, the - scrollbars and the scrollmargin option. All these affect the - overall size of the megawidget. The default is 0.

- - - -
- -
vscrollmode -
-The vertical scroll mode. If 'none', the vertical scrollbar - will never be displayed. If 'static', the scrollbar will always - be displayed. If 'dynamic', the scrollbar will be displayed - only if necessary. The default is 'dynamic'.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
horizscrollbar -
-The horizontal scrollbar. By default, this component is a Tkinter.Scrollbar. Its component group is Scrollbar.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
- -
listbox -
-The listbox widget which is scrolled by the scrollbars. By default, this component is a Tkinter.Listbox.

- - -
- -
vertscrollbar -
-The vertical scrollbar. By default, this component is a Tkinter.Scrollbar. Its component group is Scrollbar.

- - -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -In addition, methods from the -Tkinter.Listbox class -are forwarded by this megawidget to the -listbox component. -

- -
bbox(index)
-This method is explicitly forwarded to the listbox component's - bbox() method. Without this explicit forwarding, the bbox() - method (aliased to grid_bbox()) of the hull would be invoked, - which is probably not what the programmer intended.

- - -
- -
clear()
-Delete all items from the scrolled listbox. Equivalent to - setlist(()).

- - -
- -
get(first = None, last = None)
-This is the same as the get() method of the listbox component, - except that if first is None all list - elements are returned.

- - -
- -
getcurselection()
-Same as getvalue() method.

- - -
- -
getvalue()
-Return a list of the currently selected items of the listbox.

- - -
- -
setlist(items)
-Replace all the items of the listbox component with those - specified by the items sequence.

- - -
- -
setvalue(textOrList)
-Set the current selection for the scrolled list to textOrList.

-

If textOrList is a string, select only the list item specified.

- -

Otherwise, select only the list items specified by textOrList, - which must be a sequence of strings.

- - - -
- -
size()
-This method is explicitly forwarded to the listbox component's - size() method. Without this explicit forwarding, the size() - method (aliased to grid_size()) of the hull would be invoked, - which is probably not what the programmer intended.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create the ScrolledListBox.
-        self.box = Pmw.ScrolledListBox(parent,
-                items=('Sydney', 'Melbourne', 'Brisbane'),
-                labelpos='nw',
-                label_text='Cities',
-                listbox_height = 6,
-                selectioncommand=self.selectionCommand,
-                dblclickcommand=self.defCmd,
-                usehullsize = 1,
-                hull_width = 200,
-                hull_height = 200,
-        )
-
-        # Create a group widget to contain the scrollmode options.
-        w = Pmw.Group(parent, tag_text='Scroll mode')
-        w.pack(side = 'bottom', padx = 5, pady = 5)
-
-        hmode = Pmw.OptionMenu(w.interior(),
-                labelpos = 'w',
-                label_text = 'Horizontal:',
-                items = ['none', 'static', 'dynamic'],
-                command = self.sethscrollmode,
-                menubutton_width = 8,
-        )
-        hmode.pack(side = 'top', padx = 5, pady = 5)
-        hmode.invoke('dynamic')
-
-        vmode = Pmw.OptionMenu(w.interior(),
-                labelpos = 'w',
-                label_text = 'Vertical:',
-                items = ['none', 'static', 'dynamic'],
-                command = self.setvscrollmode,
-                menubutton_width = 8,
-        )
-        vmode.pack(side = 'top', padx = 5, pady = 5)
-        vmode.invoke('dynamic')
-
-        buttonBox = Pmw.ButtonBox(parent)
-        buttonBox.pack(side = 'bottom')
-        buttonBox.add('yview', text = 'Show\nyview', command = self.showYView)
-        buttonBox.add('scroll', text = 'Page\ndown', command = self.pageDown)
-        buttonBox.add('center', text = 'Center', command = self.centerPage)
-
-        # Pack this last so that the buttons do not get shrunk when
-        # the window is resized.
-        self.box.pack(fill = 'both', expand = 1, padx = 5, pady = 5)
-
-        # Do this after packing the scrolled list box, so that the
-        # window does not resize as soon as it appears (because
-        # alignlabels has to do an update_idletasks).
-        Pmw.alignlabels((hmode, vmode))
-
-        # Add some more entries to the listbox.
-        items = ('Andamooka', 'Coober Pedy', 'Innamincka', 'Oodnadatta')
-        self.box.setlist(items)
-        self.box.insert(2, 'Wagga Wagga', 'Perth', 'London')
-        self.box.insert('end', 'Darwin', 'Auckland', 'New York')
-        index = list(self.box.get(0, 'end')).index('London')
-        self.box.delete(index)
-        self.box.delete(7, 8)
-        self.box.insert('end', 'Bulli', 'Alice Springs', 'Woy Woy')
-        self.box.insert('end', 'Wallumburrawang', 'Willandra Billabong')
-
-    def sethscrollmode(self, tag):
-        self.box.configure(hscrollmode = tag)
-
-    def setvscrollmode(self, tag):
-        self.box.configure(vscrollmode = tag)
-
-    def selectionCommand(self):
-        sels = self.box.getcurselection()
-        if len(sels) == 0:
-            print 'No selection'
-        else:
-            print 'Selection:', sels[0]
-
-    def defCmd(self):
-        sels = self.box.getcurselection()
-        if len(sels) == 0:
-            print 'No selection for double click'
-        else:
-            print 'Double click:', sels[0]
-
-    def showYView(self):
-        print self.box.yview()
-
-    def pageDown(self):
-        self.box.yview('scroll', 1, 'page')
-
-    def centerPage(self):
-        top, bottom = self.box.yview()
-        size = bottom - top
-        middle = 0.5 - size / 2
-        self.box.yview('moveto', middle)
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 30 August 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/ScrolledText.gif b/Pmw/Pmw_1_2/doc/ScrolledText.gif deleted file mode 100644 index b766c95bde7ff1cf82ff242b823b4db1e4865da4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12007 zcmc(@Wm_9u)GQp_TZ%MjTZ$Gbl;Uo|rMSC$ai_Q!cXxLuNN@>m4esvlg!g{V^Pb;u z*5}zXd#$;)Tq7YR&c$h%hQNVv5BT4D@bmNQ?(SY#Sa^5=JiI&z2?5;Q{bFO~v9R!k zgwTnIaGjk2Kp+4e9Y95tdF_1u27H5{L*f9~Y=9Uf0J0E32!KEX0C)iaKmY)J3dgVX zO`ZUNj}Aa*A;nc_24DgHLjVAv>~tn>DkLPK{{*lN0Y3i=2LLh+02dd4w>JO;Qi-g0 z2>`qS01yCxpeGy5z>SQAM1*YU{C}|kA_IW)1pxR4K!;HA>0Mv`@4ElUi@{8B$Vh1J zvP7|7&R9U8(0|+Q2n1aGM<)b;pspaVTmsJD0B;ZggtO<<5<@%+5*oS?x|BN+Vyv?e z77$ek9Y7Qa_#Y)906OXlk;bKSz#9+w8M(gzV$T_{-h_l8hCqZx!!#6BG$JG%z%M_5r#t|N|KHqobjYp{ zFB)EyDh;C0P|*+!$N=Ma0KB&}8#08;3y!Bsgw-ejDH?!F2oRkMp!x_f03eJ5y7>TC zmwi*_Fp#z^_Vx=amrf4HX@tqr-TGczyj4UupdxGYYyp4j>l5 zfCWgq1R%TvaHt?4{MY3F@k2xL;i|~`jT9B~pM6}&fM@`K>i_skMg+L~|C^!mKDoZU zczb(;Kp@p8pfoTO8Zr{PkdVPJ(YS{f9uSC*j(+*e=AGvSHt-D{{Xdic9~a~Q=>N}I z0HDJGIJiWTwYfck==k(H!?k&Rp}3UNnUZz+1Cc~OtyYHXwuSsZiAIn~)fbK=&?%Qw zVK^3zrmz@8Go>2#dXqVvj#fq*N)%GK{$P?zHe#?`Xb1mT`CtFEYgzYWbpj7TRv{~n$q1@>4rI7A`)?No(n?=5E?){?xuP@ z?~gfdB2&-SB78nm+Elh&Og1HRfAaNC@!Oh+;D=BXrPr8D$H^54Flo6QgL5h3518We#mvY8FnkjVtf&p4?(XZzq9eS5tX_TO<32;7`) zBHi2RFpqdPT95Sd^6+HTI7Wbv*KM|AzzMtNE#D<@jJieJv&8nFo_|MY3W+yh0&Pim zQJ7BO_f@xFKR79?WyNzpX)oQgkDbUM@L*tnHFVjwG%s}6R+1tFUl)Dbh-@h|-|zYx z@M|Cz6eY{;L-w$7G*_|4Qov6mD&u%8m(b5X%}K*#VJ)}An=wrC7}SA^^d-3-s$Ii7 zqB7Bzdudup;d|*e<@0+Pzl(|YGo3k#%(C3~!e_EP?+*8U|De*BN=soF9OQ-3lpo}W zzw19Jh!v+lEKF3hIxI>xD?cpGbUivO$<@Ow70#o z>qz9@mq<*+dsGA87^0~UF|K}E579u)XLt_r&TuX ze`LE59{cKD-TZ8o!6N)j&&bkGaQ%GI`%RdvZh(lEj8*oNd1cKop8c4EBy~pA*&qX< z&1TP;JQ-ydN2IL7ICqUs+#u4WcAcEiy^aHvyQ1)Nhyx<440(FjY2Jvum{AA9(e7xN z6Fxs_l9K$h+8}S}#&kDgR71cqb^OGrv`h{3i67IL&8%8h-5zs=FUnc_)U6wzH*#!P zWRNREWm|NW!7@m8c&mh({6E%^O?+Huf=Kn0rX7_h>esW-KGpmq;>CH|)YfOZ-&Xl! z(z55SeRg#s-11U8L*Zq^v&Y(0$$OGN#LIe!j#Kk}rU-5FsRo(-m~di%_l!w7I}(i> z6c5Alxg1nb@X3M=Jv?2{d)jv?Z_21JRG+k*!=Eo&^le{mVD@jX5BoK5@R$4Z|6T~} zTmYJ6H{wx@M>K2hGhS&oD$j*KZd5KZtz-}8)_ec`(cA{DlAd?zWoqT+YL()Wy?E&t zL3FZt`F_FQEXf&F+m!OK%_aLtmVO0u^$^I{mlU3QT!g}}p?LsQq5iM$48p{zzIM7> zP<%$b3}44H!b39vP|-MqZ)2t4=M95Iq%I>u(!YL`+GROSs)@Al#^~&|5Ywrv`^!6) zPmHnA!S=2k;67IH>3(=f;OR2PvttApc~HSg|0CL@@FV%C#gHJvRa|V8$tRQ%5iYgk zh%l4Q)raERvk|)=e?0Jvd&SbQsSCN5KD@K+?U#<46Q@8gkB)>E5R-6Ah_q5Ed?UY- zXaV3Qp#X|mB9#Hs9Fq|$HsKUQr6Z#tX4@Q_cyF2p${$ieKf^Ih!!UQ!b{~c^Y723= z8rUXu)2|ZcW{Nr6EI$Y$0%Fdic6hhTBs}+~v)$ord(`hWr9{lGQq#PO_vl*&Tu2Cn zDhT$)7t-W|XcC#xf-Q6giKT<32{@3d!|~X7(mDLMTxFE|7B8f^4}~f@i9|h^p9kBkLrdC+Xn}f-EP~ z(v*D9apyG`5r07ndT_%LTb0Q8i8gErHqJws z|M73B8SkiOj{v)%r%MrA%+d6yRs#jCDx8r@m1my6tD$a07TrWQRq~L$upUKs+)w0q z5!T$?n6p}zAZD%8@wKH@Os+~ht72~3%9*kbbZBEOqq_W2nZlZE>$aCpZ3G%=eOPZ3 zFm?3>RIIQ$Iz1YY0J&QICb3ecyJ)6b7c9r3N_spfxyw=9 zS(SAvZq}au9gpYnwkFJRc4Z#5S;j@R+;hxwR3jcwu%W{=Lf0erw$Y`pN^BS889v#v zGCO$DU#C_F-mVT%4^z!l@nAlQ4K7osC*PBbcdIu^k(}vPh^DeDk=#XV|K7Vp=}37_ zwEJDq1FAYmWuM`}JYu&Przd|6r|cm!OVvvo)2!Z3doJALd5#;mZFbxpEa5F}8m)Iv zs*6(aQg7!m>HPZFG~u?r;CKGK6vde(m(z$LVYuToQeGWjgLMj-8_A^Yr}|9uqb3&w z5}9I9x!3u#4n@SiYIUZKuq`mSexkUsEK*KPS$lcWnT~Ua-{1_@tDIfncOBB>w(nkA4sOWL zGRvnA<}kNLV)^eC4dm;ON6TIKiyQ^dRhw!+!o*^qJ5eltC8vzJ_IjTOKDW$C*U#6h zc56SAsbw{Xvb3th|G8DeF?@Bl_A+YFXde}dDlCfsyOg)|XdP;#7S8Twx*K(E)M9jZ zP24go4{@ry?`6KuUoGdqWStL>66;1F677ciJ{BlEpNE>#&nK4(LeK1Tp(7b z{iuW{DD!i9yZlg4=(-6&B7-o5g6GOeol4Yo%W;`mYP~w<^?f-hHV3#m*7?-TelE`m zh_Q7oFUNUhtghR+wbjfYxySnQ?wXf?TfPZyFBJ2hua0vYGj%CM{mF7A%VDf)RzFCa zO_`CYiS{@723>m3^Bpa~x`0CN?y~Wr>OItlVfk=^>wXmN_dzJxt9)I)A?h_nR1n$1<(L%E3J|7KRaZf;L zFkjl3|1?c~UcB4q^AXp~rg9!-_mWBa{ei+J#Km~@-mia7U*W4(zL~& zOx!41n6l8sf63WvZQpJK==TV8{Y2~hd#BBhD!Wfy{07Hm3)t-ICbM?oL@G@`vMoQ5r&d$=g7 zN*wWB!or4i{Ly3ThBXD<{YErw$iGp-o66L?P(y*I*_;0k z9-7Ui!y*yzmBXuR$iF)@z7J@LfTlqko)8CfG3t-OqVNHf{ZZrybWO%vFvn9k#8V9C ze>!jxU-W(CBzT4;zLpS>Y5w^n6|Zqfpsi`HdzhrEnP_Ay|u~I?Lh&0#bSGAT+F`Pn=EOiMLaEHc8S`S!eqP6LITSWPU8k-&jw6?js(s@jBc`R_Klq{&!5E{I#0`V2hoIv(F{^ir5@VYX*n4OIs2Ajw~OJAs&St^rORD&Tw%C? z^5nIVWJB8c?zE&Sn&{I@>md)9J&uAhVj>D67f5P>;(jK_x11S`9A{3u?XZyM(u`#1 zLO0@HtL`S3seu^jA6Qe}Mz|d?)1qt9RWnlJzFQU9r6`vLD>rf{{*f+*i*m(FEyP)X zr9=w2JinRqS;qIWCo*e!_les;@8eUoB3e0fsKax=+?B#Fy<#IW$gG06h%^E}8dYm} ziM3?}wd8Mp3oqbE`jqGMTeFB#xZ-PG1xy_ubW~14Yj3~EJ^W;7Q+;VmxKL%!+rnZ= zyfc?lJI&(*LaIMl>Qq=IBrTRhF{>Tj^*#bKCp9w>!#_A^sSd(I2i(iOmh8hdoZqz< zC|YFrKly(r$@oN{9lDe?dgP19TPyqIKJ!?65FRZnRYIp4=mLe?O&=EHr)9B{{tnj4 zQVjE1Z&nN>2_oOC@*EWXWh{$aL7rQb7qwU5Ph8X#tTA8_MG#t1s2V32mU}T$G8?9X z64@Z`QcG);9ek8VuALIjlRK^Kx4xieaa`8eT1RYUJY?a-s2!DTRdUW%PHmod73?3~ zllMnD^rE}~Hlik=6z})cayyu1^j!Cit9oju65bZ&SsqW>EPTX*Xk=0hz(XD4{;5~LPAIe zkazAk zm)kC8_~5A5G^aidN8Ul9SHVhYnzE4$$z~8;%9QtC|`%tZ^GEG8r;r_r(j;mIs|eEQZ*;BB&w@h`nVG`-TpWwQp#$MUTtw)BFN;aD$`LL&h2l_M?o)^gdrfrVh2l zTD^9{Q>(`ELCdySvc0<4ed>$+Sz^`Zqrr2V&L|x%cD$Vo?Jo1jegfh(#(YK|)P-&l zhU7;^K+oJr@6qH?s&7|Ko|U+nV?FOWz(}UK@tBUg%fAoPl*(7e!m*q7sUX#h1sqGm zp9Tutu*2B3T~fvjcuq!r`0R~Bdk+~4i)3+2$R^7&gXc3%QdWv0JFIn|CSS-#+S(`M zxdaiiI;^y&8a!Q_7Sr33Yq>bv9IfD;NgYi;Dsp=&3W{zgIi91zktGBp>YJ6?h^r&? z_+v+-9ntiO4;VU8Wf#k3`k38C^w5B1N6>2mIHePjajvjM zGNWU5X9ZVsu|xXNMAkC7(~5vd2hUcnu%lzh2&WdcN+7x&pB-C@Gpf&lX~N02YMiIf zJqza72;+~NMgKA3eA?s6w7?_05Nx}kJ`Lj`?;9=lq#RkW4xJYg>A;eN1RgdI-#7mF zHW}KSiu2f&3+^YXFv+VJcwVN~uUZIyg|QAu744;c;_E^lYWn3lm_g%!HZm9kE5@~~ z&*KeB#KwnOfR#t>!+cmy;P)AFM9$`;>66-ar`}E%CsRP5phexmW!b+RJvoKi^*=kO z4OXYc+j!?!!8ffF%3fnwbyKvf)f|#J0_b(OmjO0>g*=;sZ7U`IM5`t{(*`d?u+HY? z$gtwbv96ou6_mWfPVWkf0$H6gFPBY6vW*(Ku^5c0&ZvzPoEb{q%*$`<1!=)6K1u}g zEj4L5vDVYAB{|i9C()Ur-;aqHj`tB37Yp&%UoC8G(zP*uF9wYgNxkJ6-s+JP z{wZ-vHY$=i*-UEqL3%gCS-d2FL7J7S+-pK^Twcn*`OnS$s&bR8{x!6yMz{3SA>cJi z_`se{u@rHS1%HpVE`fbkMVII9%-=(QUDzV#q7T(#!uYn!#B3jwpxoEIG8-TD?8w!( zs#LzOVM3zG?zqr*L;u9QR|gi8UQS^*C}FD+RA$_>SN$}a>Mb=e_s%H~ER%0pL!vPt z2XbY@Sf2mBD}&BQWG}iLlF=w z*_LqW6qA6&gDXTIwx!FF(e;?VurU0q(899YO`m7b2v8Nx&IDgkEtSe=rT-=QFMMjj zvG(=Gf|(ArvnoIBVsV{{Hrhn~ktTPc;36mr2g`tn`$}v#F{Y-O zm&;W@jLyO9-QUh!p)<6G1g6N0r;`;&nE23NEzZ-phU;c|W^MlG_^ZuzbM(xI{@1}k zN_C62T@t*hwl}qmvL@t1BP@>eZqmQG5zSZcL@)+sq&r%@MPvBl*E}bCx;f?!nvQZY z<9;6V$X1ELjIqN_wd2o{YN})YOwkg&Qcdr_r7o|e!_L|;atHwzx#wq}gZJ+({ zN-kcEI#yuchwh*#Bd6}6C1H9eOXNK}2?s0~jU$|(? zO4L+Mh)g0X5K3z)iA9q6U#rsW44`?|z#0y%Jjz>Uof0Hh*p@|qBE;zRI&KJ%AU&bn zu2-*IYXQqwsu5sVsb;fbGIA8b{wX%cgq!E%N@Hx|I`AkD(6i%C!Ix`rt3*<6Ei&mJ35Y*!` zi6e%$nj|QQbMOARms2+WgLB7a8YofRW=3l|$ZekG_O4Yac^vM%I2LNWN6e8Cqt|Lt zlwwA*l{9*jR`-|lG)&HX-UznFhz5ckC{vz5m+cz}mzUKw>j@RooAvHhy{{ANimTWE zF)T$LBw2Me@p~?n_y*J98pvbdYgF-d61Wxxy>?vmQYRo25xTv1Dz)VGKKlU& z2bI5QRJoyMu8Udjb<0e%=IM6d=uaZ3@qlCWZeYNQ{eBf>(j{=ht`9%C9yJ%N>L))_ z@;IF?IeP4etLbVUxi#_#E+EO^b{Pe8M;QLqZrg?i!GF2n+Ezhrb`p{!|Ftxobe_8% z`>R$jA=bD%#Mrvw5x(||Rpx+jHN3GZ@B+#cPa$Ek77q> zH@6yO>8^ySUNxnb-zJP15Iz(2LeM|p{aO-K8u%5nqy&O6FcO?guXjyg+7rz9UDb;R z?@XkiYtiz;U3&-bBZg}m!be5>RdR}UJOA8aOn)h?KZHl zRaPFmz(UZhA;99qvY7cnkchK=-pX!2;sdodoVdTTj5X<0lk)UPqabioe% zW4b?%<>n7!3YTKJVh4P)tQ+l{Y7Lfr_9}Xq7_ItPo4jlDtfxD6$K^CB?0Kt`2F+xct6YWT4UfL2A#etHV zl$p!`aqX)gQA#$UFk90bX7{k2uq9KO>NqnSJJuPE)ZhNMV1+)NqcT^5-)T`_sKNh= zGn%W-_MsqFQ<+&yISzasrS47(E+9UVip+lSuU)Sx4}`(TE5Qz8{FT;J$xLH7C^4dlCy5r7^G2h zjNy+qagos!kTxq2KRwW!Bb1$Ry<ZL_ zNa(X@4R`G@F>CK~%X2lI)fbPQkfo$nupUWuQS?!0N|7>i)6c4LSx}Rqd}*dd_3%!1GwGdI_$JRU4g#CztLbm3+3{U%*o9yAOS`V_)L_F2^BG z{tJoNb%@mE0}xHNCfdf+$XG1lHK}q98K5vbwSz`cKLxq5j-#hGdR6~^z0!3&UP(5L zSU}!uY&ZI6nN3P-3RF)krA)MrmQ#}pwR1NL5GT$TPM&xSiJHW?a~hH#nG&J=o0lT4 zSrl`3a3#*ef7{VmY#U;!#H=+(xqV{?B-4@bPoF6fcPTS{WziTSX?aV#id4@k_+~X{ zbTVF)DF}wvL=!}7=vWy}0q+myp;@=Jy_ z{kf<7bfrzQ6q><3Twd9MH<`)uJD>Qm(Q;!bw8nsvrcD1ZKIHQI#dbe$*UV=63X8a# z;x^Q3k+?aI7JliMa=a6Mevw?0m18eL$H&Ft=&>B^9)t6ZB;J^Mevh5A#Mjz%jMcmP z*1@)2O#1Tt$5fjq&b`WK%U06%jJ~flTVGOM&Jc!3p#=05txjGSiOdzHjG?uoNoZpq z6|*3-;@|y;R>)VAoZD{iI910*sX=ZZ?U^wttR^#+_q*!Hn*J6EV0Ga;rg-IkaJ`7a z*f_cqmrxQlzX}E>8=hnCY|UKJxvUl(aQC?$h2ZdJA=u3ph@S1l-8vH*clzzG?+{F<>u05Y?`_DST<{2FeP-dk=)JgW9+e{=BcqB>4kqxx#JL- z-rct5z7QKQhV5H=kTtyzyjkX(};}|xR6AtKF>8_^0oY#=EXk2?S*p9$9EiNwCs4&M_Y5YPBT_r zG0z)uQulG%R&;e>4h+}zC2R8#i-{#sida~2V<9J~zwj{^aw{hGZ!v(_1GwcAsqjU! ziKDsC#cOF?N3D{%`16Rb0+d-_et;vFN<(pg+OLX zLtoM4V!yF8ecQBHj8Qv*GKYyZ<36icBb3isd%&DbqI2<+AanWC{G+M3F*MFlEsk9BKoH}x(?nrr_WBuTnI%gqBal53GMy&ERr&K4sk?fvVVkmmi&F5BwD}54=2?cn zVT`0|WXRq!_fA`ac1}vUzw_JA?r`r)ZJ3E_yu%KKc12 zQ(CPMy8VRfT*k44Exx!c-J+b!+wk+FwE$IPyuM=@$98UKnOrg$I)%?|lUar4f!ixP zkaEN1(w-|51qx~$=~4dS%g0anL8kHuC!LRvLa83`JTi`55j2+^MA2#*Av_f|!DceB zRxy?`%Qd+yY*bivGAuQFGw?35(~@uK_FK{cQubB<#3@<-UWDkF*x)6f0RvbE4G;}HwPx*bVf%0Kgbc*qCC9Eo8Nijw2UBOpI zo|)|*Z;Xn#eRcZA}<+Jdvk97=Q3s#@j0ZL-h# zWXdTemKh~AQ3ftNWm;~UX^}!R^)Qr-T@0iLRO`(~>QLbmtSQgyCq`;(;y$a;#HDfBTEaKiQS?y)p|;PPLd&n8*-yxCUg#xA_YHmI*J`{1_OQG1bFqk60YnV(ZlS^{Oz8 zRpvb>342{7!_-T38DV48dw8zc!BGh%5;#(pmaJqnkn9KO)?1~{+c5s?{(>oZ8RNj!{6Wqu}Zk%|JU0v=SLbZZ*JCyQNBSy~Pc83F9 zil+@!#L(a0H_)3o05!7xw!5=YdNj`Ls`IKlPI;z3GyVbO%|nAanc6#<@S+(nqEdLH zR2etdPb%L`xZcn$IzF?3bN7RQl0i6m!Ge65Xu$Z`>Ma&NUy&U6UR_pC9OGnk( z>V`=kQZAJzSA~z}p04C&9Y}6>Q`%LffqHELnMdhWC1+kQm4DvfOZL+hZ@}DFWZfzw zyY<7}r4w77j1GZ$)ibp=a$`!pYarB2^Iww3$AzDVQme8%=Flh^Q zUHfyUT_6fY!PHi*+NS!h+uCbd?gQFpB=S@HH{l|`>;-{Xi|#P#6HFAnC!P_QP*884 z3q95OCf|SFY1+unB$V_{PF}Hg9&El>r$V^r%`1t7q8J$zZ_=gu9K2M>w?0LvEq-fQ z+PJ5fKVw3%ky!jKT2AMhP>j#3J^?d_MPM6g;)tE}i?ge_5mSB|c%$lUr`oQaQ=sfE z;V`l4pOp1xh~lQVk)a#(Scoi*s5lMms!naUMdxco_g${HxM!}@kXGJ?oN?>bblmGs zf4j=iM&M*1+Qu{ZL^I?F?$u<q!@* z9(jImxuUUu30KCQRy=-eXF?$=e8`F3eV!hAWG`nj|{krz+(`p5enEuK3 zCT~9PYQrv)#47TTB9oatlBfAQbES(TiGz=I*~q8py2e^=4XvcEhuG z@kku3k|)yF_DSyH6%UK{z&|>7LAI<~{FO;-%OHz;lwZkuX76r)cfHy}KlbEcI9&@k z;xn(rWc=1U)7>Ji+7}ZbkuaoLS8+2eh^_C%+&|jebM$$+;*J(hCU(N$zd-wWCYG#% z-*eq!W+!E)qnqWF-C?;uyZkf%w+5eSfsQlnz1D@mfREH5J<^6M;{tvS^uX4-esA?V zOnmJ`aCmn`e||v|bc?yRQt3nbbIoq8i+k+`q7`5k_$n*yE6FSWdyD3_s)&XN6=r*D zP1^s@^!-^c*H-(OO`l%L$k~Zz-<^e-9QUKJH;wwxn$5(R>j>Ni@aD=>?AkfC?dW#z zW=~@Hr!E|x-#z+?WIW{F8+M-==jL9xZP;Sr0I{}SzYpMi2tRade7bkhH}V#I2n}_2 zOxi=JHTPR5LKu380{)(zeu%z*h(UXd1wO{nKE`uCCP+Lcsy`-~KPCguOEDfXogXhb zqS9I(Glm{BVUJn+kJGs(1`(0tQPx;L53an3s>Q5BnPepD|C9t02(5JEzPuYa0 zkjJu0*i+U1Q}z8*4cc=p@VSomxt{a6LE^bl{kdt~Gqs1fIrOT5ewrnDw`JvYp*sHz0Pebc# zA24Eah;LCHV@o12_|Ieb`s=Pa9LDKe{^m28LULJsuU6pWE(>?ChM(^H4w}ENapLcn zU}tiPIp+K1zJEJYf4lu`cmW}}%=vKj2B$vriU5DU8+v<@;Jz=3IM9EcML(KKs17o)A8isl5#lqt3*7bbkHB^_k_*DwYgj*5+Q1nYz-wa+r#;uZjN9L z_UCYZ? - - - - Pmw.ScrolledText reference manual - - - - -

Pmw.ScrolledText

- -
-
-

Name

-

Pmw.ScrolledText() - - text widget with optional scrollbars -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- A scrolled text consists of a standard text widget with optional - scrollbars which can be used to scroll the text. The - scrollbars can be dynamic, which means that a scrollbar will - only be displayed if it is necessary. That is, if the text widget - does not contain enough text (either horizontally or vertically), - the scrollbar will be automatically hidden. If it is displayed, - the horizontal scrollbar is under the text widget. Similarly, if - it is displayed, the vertical scrollbar is to the right of the - text widget.

- -

Row and column headers may also be displayed, which scroll in sync - with the text widget and may be useful when displaying tabular - data. To assist in ensuring that columns line up when using a - column header, a fixed width font should be used.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
borderframe -
-Initialisation option. If true, the borderframe component will be created. The default is 0.

- - -
- -
columnheader -
-Initialisation option. If true, the columnheader component will be created. The default is 0.

- - -
- -
hscrollmode -
-The horizontal scroll mode. If 'none', the horizontal scrollbar - will never be displayed. If 'static', the scrollbar will always - be displayed. If 'dynamic', the scrollbar will be displayed - only if necessary. The default is 'dynamic'.

- - -
- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
rowcolumnheader -
-Initialisation option. If true, the rowcolumnheader component will be created. The default is 0.

- - -
- -
rowheader -
-Initialisation option. If true, the rowheader component will be created. The default is 0.

- - -
- -
scrollmargin -
-Initialisation option. The distance between the scrollbars and the text widget. The default is 2.

- - -
- -
usehullsize -
-Initialisation option. If true, the size of the megawidget is determined solely by the - width and height options of the hull component.

-

Otherwise, the size of the megawidget is determined by the width - and height of the text component, along with the size and/or - existence of the other components, such as the label, the - scrollbars and the scrollmargin option. All these affect the - overall size of the megawidget. The default is 0.

- - - -
- -
vscrollmode -
-The vertical scroll mode. If 'none', the vertical scrollbar - will never be displayed. If 'static', the scrollbar will always - be displayed. If 'dynamic', the scrollbar will be displayed - only if necessary. The default is 'dynamic'.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
borderframe -
-A frame widget which snuggly fits around the text widget, to give - the appearance of a text border. It is created with a border so - that the text widget, which is created without a border, looks - like it has a border. By default, this component is a Tkinter.Frame.

- - -
- -
columnheader -
-A text widget with a default height of 1 displayed above the main - text widget and which scrolls horizontally in sync with the - horizontal scrolling of the main text widget. By default, this component is a Tkinter.Text. Its component group is Header.

- - -
- -
horizscrollbar -
-The horizontal scrollbar. By default, this component is a Tkinter.Scrollbar. Its component group is Scrollbar.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
- -
rowcolumnheader -
-A text widget displayed to the top left of the main text widget, - above the row header and to the left of the column header if they - exist. The widget is not scrolled automatically. By default, this component is a Tkinter.Text. Its component group is Header.

- - -
- -
rowheader -
-A text widget displayed to the left of the main text widget and - which scrolls vertically in sync with the vertical scrolling of - the main text widget. By default, this component is a Tkinter.Text. Its component group is Header.

- - -
- -
text -
-The text widget which is scrolled by the scrollbars. If the - borderframe option is true, this is created with a borderwidth - of 0 to overcome a known problem with text widgets: if a widget - inside a text widget extends across one of the edges of the text - widget, then the widget obscures the border of the text widget. - Therefore, if the text widget has no border, then this overlapping - does not occur. By default, this component is a Tkinter.Text.

- - -
- -
vertscrollbar -
-The vertical scrollbar. By default, this component is a Tkinter.Scrollbar. Its component group is Scrollbar.

- - -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -In addition, methods from the -Tkinter.Text class -are forwarded by this megawidget to the -text component. -

- -
appendtext(text)
-Add text to the end of the text component. Scroll to the - bottom of the text, but only if it was already visible before the - new text was added.

- - -
- -
bbox(index)
-This method is explicitly forwarded to the text component's - bbox() method. Without this explicit forwarding, the bbox() - method (aliased to grid_bbox()) of the hull would be invoked, - which is probably not what the programmer intended.

- - -
- -
clear()
-Delete all text from the text component.

- - -
- -
exportfile(fileName)
-Write the contents of the text component to the file fileName.

- - -
- -
get(first = None, last = None)
-This is the same as the get() method of the text component, - except that if first is None the entire - contents of the text widget are returned.

- - -
- -
getvalue()
-Return the entire contents of the text widget.

- - -
- -
importfile(fileName, where = 'end')
-Read the contents of the file fileName and insert into the - text component at the position given by where.

- - -
- -
settext(text)
-Same as setvalue() method.

- - -
- -
setvalue(text)
-Replace the entire contents of the text component with text.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-
-        # Create the ScrolledText with headers.
-        fixedFont = Pmw.logicalfont('Fixed')
-        self.st = Pmw.ScrolledText(parent,
-                # borderframe = 1,
-                labelpos = 'n',
-                label_text='ScrolledText with headers',
-                columnheader = 1,
-                rowheader = 1,
-                rowcolumnheader = 1,
-                usehullsize = 1,
-                hull_width = 400,
-                hull_height = 300,
-                text_wrap='none',
-                text_font = fixedFont,
-                Header_font = fixedFont,
-                Header_foreground = 'blue',
-                rowheader_width = 3,
-                rowcolumnheader_width = 3,
-                text_padx = 4,
-                text_pady = 4,
-                Header_padx = 4,
-                rowheader_pady = 4,
-        )
-
-        self.st.pack(padx = 5, pady = 5, fill = 'both', expand = 1)
-
-        funcs = 'atan cos cosh exp log log10 sin sinh sqrt tan tanh'
-        funcs = string.split(funcs)
-
-        # Create the header for the row headers
-        self.st.component('rowcolumnheader').insert('end', 'x')
-
-        # Create the column headers
-        headerLine = ''
-        for column in range(len(funcs)):
-            headerLine = headerLine + ('%-7s   ' % (funcs[column],))
-        headerLine = headerLine[:-3]
-        self.st.component('columnheader').insert('0.0', headerLine)
-
-        self.st.tag_configure('yellow', background = 'yellow')
-
-        # Create the data rows and the row headers
-        numRows = 50
-        tagList = []
-        for row in range(1, numRows):
-            dataLine = ''
-            x = row / 5.0
-            for column in range(len(funcs)):
-                value = eval('math.' + funcs[column] + '(' + str(x) + ')')
-                data = str(value)[:7]
-                if value < 0:
-                    tag1 = '%d.%d' % (row, len(dataLine))
-                    tag2 = '%d.%d' % (row, len(dataLine) + len(data))
-                    tagList.append(tag1)
-                    tagList.append(tag2)
-                data = '%-7s' % (data,)
-                dataLine = dataLine + data + '   '
-            dataLine = dataLine[:-3]
-            header = '%.1f' % (x,)
-            if row < numRows - 1:
-                dataLine = dataLine + '\n'
-                header = header + '\n'
-            self.st.insert('end', dataLine)
-            self.st.component('rowheader').insert('end', header)
-        apply(self.st.tag_add, ('yellow',) + tuple(tagList))
-
-        # Prevent users' modifying text and headers
-        self.st.configure(
-            text_state = 'disabled',
-            Header_state = 'disabled',
-        )
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 30 August 1998 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/ScrolledText_test.py b/Pmw/Pmw_1_2/doc/ScrolledText_test.py deleted file mode 100644 index 53a5ab48..00000000 --- a/Pmw/Pmw_1_2/doc/ScrolledText_test.py +++ /dev/null @@ -1,116 +0,0 @@ -# Based on iwidgets2.2.0/tests/scrolledtext.test code. - -import Test -import Pmw - -Test.initialise() - -c = Pmw.ScrolledText - -def _testYView(doBottom): - w = Test.currentWidget() - top, bottom = w.yview() - if type(top) != type(0.0) or type(bottom) != type(0.0): - return 'bad type ' + str(top) + ' ' + str(bottom) - if doBottom: - if bottom != 1.0: - return 'bottom is ' + str(bottom) - else: - if top != 0.0: - return 'top is ' + str(top) - -kw_1 = {'labelpos': 'n', 'label_text': 'ScrolledText'} -tests_1 = ( - (c.pack, (), {'padx' : 10, 'pady' : 10, 'fill' : 'both', 'expand' : 1}), - (Test.num_options, (), 10), - (c.importfile, 'ScrolledText_test.py'), - ('hull_background', 'aliceblue'), - ('text_borderwidth', 3), - ('Scrollbar_borderwidth', 3), - ('hull_cursor', 'gumby'), - ('text_exportselection', 0), - ('text_exportselection', 1), - ('text_foreground', 'Black'), - ('text_height', 10), - ('text_width', 20), - ('text_insertbackground', 'Black'), - ('text_insertborderwidth', 1), - ('text_insertofftime', 200), - ('text_insertontime', 500), - ('text_insertwidth', 3), - ('label_text', 'Label'), - ('text_relief', 'raised'), - ('text_relief', 'sunken'), - ('Scrollbar_repeatdelay', 200), - ('Scrollbar_repeatinterval', 105), - ('vscrollmode', 'none'), - ('vscrollmode', 'static'), - ('vscrollmode', 'dynamic'), - ('hscrollmode', 'none'), - ('hscrollmode', 'static'), - ('hscrollmode', 'dynamic'), - ('Scrollbar_width', 20), - ('text_selectborderwidth', 2), - ('text_state', 'disabled'), - ('text_state', 'normal'), - ('text_background', 'GhostWhite'), - ('text_wrap', 'char'), - ('text_wrap', 'none'), - ('vscrollmode', 'bogus', 'ValueError: bad vscrollmode ' + - 'option "bogus": should be static, dynamic, or none'), - ('hscrollmode', 'bogus', 'ValueError: bad hscrollmode ' + - 'option "bogus": should be static, dynamic, or none'), - (c.cget, 'vscrollmode', 'bogus'), - (c.cget, 'hscrollmode', 'bogus'), - ('vscrollmode', 'dynamic'), - ('hscrollmode', 'dynamic'), - (c.insert, ('end', 'Hello there\n')), - (_testYView, 0), - (c.yview, ('moveto', 0.02)), - (c.yview, ('moveto', 0.04)), - (c.yview, ('moveto', 0.06)), - (c.yview, ('moveto', 0.08)), - (c.yview, ('moveto', 0.10)), - (c.yview, ('moveto', 0.12)), - (c.yview, ('moveto', 0.14)), - (c.yview, ('moveto', 0.16)), - (c.yview, ('moveto', 0.18)), - (c.yview, ('moveto', 0.20)), - (c.yview, ('moveto', 0.22)), - (c.yview, ('moveto', 0.24)), - (c.yview, ('moveto', 0.26)), - (c.yview, ('moveto', 0.28)), - (c.yview, ('moveto', 0.98)), - (_testYView, 1), - (c.yview, ('scroll', -1, 'page')), - (c.yview, ('scroll', -50, 'page')), - (_testYView, 0), - (c.yview, ('scroll', 1, 'page')), - (c.yview, ('scroll', 50, 'page')), - (_testYView, 1), - (c.clear, ()), - (c.get, (), '\n'), -) - -kw_2 = { - 'hscrollmode' : 'dynamic', - 'label_text' : 'Label', - 'labelpos' : 'n', - 'scrollmargin': 20, -} -tests_2 = ( - (c.pack, (), {'padx' : 10, 'pady' : 10, 'fill' : 'both', 'expand' : 1}), - (c.importfile, 'ScrolledText_test.py'), - ('text_relief', 'raised'), - ('text_relief', 'sunken'), -) - -alltests = ( - (tests_1, kw_1), - (tests_2, kw_2), -) - -testData = ((Pmw.ScrolledText, alltests),) - -if __name__ == '__main__': - Test.runTests(testData) diff --git a/Pmw/Pmw_1_2/doc/SelectionDialog.gif b/Pmw/Pmw_1_2/doc/SelectionDialog.gif deleted file mode 100644 index 1d6f3dd916773e370091156fbf6dbeee9035bcb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3204 zcmV-~414oONk%v~Va@;+0rLO=|Ns90007z9*~7!bf`Wp;V0U0JJO75Kb#-+B00000 z00000000000000000000EC2ui0L}mw0RRO4@W@H4H8$(byZ>M)j^tIIl7XRY>%MTQ zo~vr#cz)!3@BhG{a7Zi~kGkV7g={*X(5Q6UOfg5Rn0Cw6WeT}1X zhhsaYiK>pFbDw>lu63}jqOX~?dAhfBqf+7A7cL((e*g5vgGRC5GFbiq>0K14uue&c2M3ybm~siRk|*svjOb32&5o_G zJ)21F9ZrlHYgX$S6rVAbb4s$D^Go4UhztkDyu%cso{9Scf)YB*-^Q&#y&A=c^Jhhw z<(#5Lnvm&Qmxg{+Wos$dNUdMPwlhnwpWlmo_40dXj_!_yY)>v7Msx1ey01p=V;1mP zMrj*|dYo37b3V@6&bAbXIA$svE#uG?X7v`~Ua(`!u6gt^>(%6}ysSN2a_`^3k@+r# zyL4^UwsR*ZBs#eB-j;cjJici9^Xu5NOJ7y|Ee0E>hlHm>zP$M<)+46zyJRL2L34EfCLt3;DP*wp#lH`H0a=i5Jo8BgcMe2;e{AxsNsej zcIaV*1Te(lha{G0;)y7xsG@`+>bBsDFvck3j5K1{B3$*=sN;@2_PF7Vag6BWkVFlvGX$<%?Bjsb!H@=D6jTVA9y7lwp=>=7(dRspgtLipb`h zaI)xToOHsOW}SGdd1sz{g1Kjf0YDh&gM$v5qM=11>Y$>6diV&ToiOUCq!a#0p`w^J zNU4OIE=r`Kl6KnZgp4BkD2b<@YN4g15-NbHnrb-etDkzx;j9ss+9;~7UdU>zv4ZL; zC6J~{te}sAdTg(@{&r$(ti=W@t*V8-O6{}JYN{%<&04E1x5C2e>zo&c`>e6wdP{4r zg|?e6wzQ(VF1P2pyRN*|vYW21i`tv&yu$9fD!CS#3of(0hMF+K2hV#i!vHVraJ7_* zTWX}|4x2H=l@eTV#NvYMti#ymOK-y#LmV))Cf~bh$^r`@&O@^V~A74&KZu$Otd}^Ta|ox-!o{UrjU7Pj?$Lvops_a+@xCnPJT( z@7r>}YQKvt+v>^-HrHN{jc?CgN8B*d6*`^w$srRfcfZmS{xY)L3eIWaUc;RAvi#z$ z_vBMk=r^4HO!v9tG|hNhEDqFHJXn4>M*L#`s*k99qH_}*KYgmxaY3> z?!5Qz`|rH>?XjQ)6mR_T$S1G-^2|5y{PWO9Fa7k?S8sf$vRkkH_S|>x{rA=bfc@}< z77zRR6xug_*<_Ya0Q&GlsJ`&*18RQ!_|I=S`HS99_=lOpACdIevHD%gf7A+KsnUZ*$2ZlIty|LgAmHz`^E-0e61~RH1n4T zO?X1_(GN%M>)#3wS2wIBO<`1{p@&fTAQdjqaX#FevW^upA#R9>P1E43IC!a}y>Mka zlbZe$Yq&lf+HZv<(;^a;D6}SS5kpXHkP+YI!nWCMV|U}*8PjLO{XvjZ{?itwJUFs9 zDlu7%Ti_fcltuxpagdrT_jXDI!}BW^q|Ys=QH2gPgeqzoZ>9!IR5`B zQG{CbqP|q<1Nmu5e?GLJ1(jz-F-p>s(o&-ttR(R~YD<(W)}_s`d>x~h7=Qrnhk$ql~odaF|T`S|&w>l>D5dS>X z*alhAVrKN7B{)Gyr&-c3Ca|c?%-_U$5XoMCn{w9+YD}XxyPeh|&?JZEQ2Q`&{Vm~& zU9D=nU5v{h=2sJeSm_g+8l1OfGH&HCM=rw zncw}+_qq8D@PP00)G#hM8n3PIge&~g{-*ZByUg%`H+bUmtGK-}US)xAoZ}LDHpfMd zagtBm34=YouwXUs=L|hYsPx3HU4jq6O!u^_qut(-fposNb6xnJFdw-ZnK}A z?fZ7Sec|qKxvQPZcXx8$OC9mDn|<#>2K!M`h$17^(10F?5~UP*^@2Pwzt{n zb1!i4`TqC755DlhCnCxl|M@;>i;-kO)_WsL1mF(ii_GH3(m=7KS3Unw|&oR|aM$cuUsjSEMD!UG;DP>#%KC+K(~C-{vXNFNQ? zH0F3Fg(!{c=z4xwMEPhY`_=Vp%jTzUE&i9Y__>ONfkn#wT zTat?hID-*5ci|V37?g-B_Xve$fL@{&*)l~Ng!3?Uy@d6ih1l|JAiB;W>W q@ReX0mK@-fVn73ADVAuNmT15RSkN9q;Fek$mvTu3aQOof0029%DvaO& diff --git a/Pmw/Pmw_1_2/doc/SelectionDialog.html b/Pmw/Pmw_1_2/doc/SelectionDialog.html deleted file mode 100644 index c4708232..00000000 --- a/Pmw/Pmw_1_2/doc/SelectionDialog.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - - Pmw.SelectionDialog reference manual - - - - -

Pmw.SelectionDialog

- -
-
-

Name

-

Pmw.SelectionDialog() - - selection dialog displaying a scrolled list -

- - -
-

Inherits

-Pmw.Dialog
-
-

Description

-

- The selection dialog is a dialog window which displays a scrolled - list which can be used to prompt the user for a value.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
activatecommand -
-If this is callable, it will be called whenever the megawidget is - activated by a call to activate(). The default is None.

- - -
- -
borderx -
-Initialisation option. The padding to the left and right of the scrolled list. The default is 10.

- - -
- -
bordery -
-Initialisation option. The padding above and below the scrolled list. The default is 10.

- - -
- -
buttonboxpos -
-Initialisation option. Specifies on which side of the dialog window to place the button - box. Must be one of 'n', 's', 'e' or 'w'. The default is 's'.

- - -
- -
buttons -
-This must be a tuple or a list and specifies the names on the - buttons in the button box. The default is ('OK',).

- - -
- -
command -
-Specifies a function to call whenever a button in the button box - is invoked or the window is deleted by the window manager. The - function is called with a single argument, which is the name of - the button which was invoked, or None if the window was deleted - by the window manager.

-

If the value of command is not callable, the default behaviour - is to deactivate the window if it is active, or withdraw the - window if it is not active. If it is deactivated, deactivate() - is called with the button name or None as described above. The default is None.

- - - -
- -
deactivatecommand -
-If this is callable, it will be called whenever the megawidget is - deactivated by a call to deactivate(). The default is None.

- - -
- -
defaultbutton -
-Specifies the default button in the button box. If the <Return> - key is hit when the dialog has focus, the default button will be - invoked. If defaultbutton is None, there will be no default - button and hitting the <Return> key will have no effect. The default is None.

- - -
- -
master -
-This is used by the activate() method to control whether the - window is made transient during modal dialogs. See the - activate() method. The default is 'parent'.

- - -
- -
separatorwidth -
-Initialisation option. If this is greater than 0, a separator line with the specified - width will be created between the button box and the child site, - as a component named separator. Since the default border of the - button box and child site is raised, this option does not - usually need to be set for there to be a visual separation between - the button box and child site. The default is 0.

- - -
- -
title -
-This is the title that the window manager displays in the title - bar of the window. The default is None.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
buttonbox -
-This is the button box containing the buttons for the dialog. By - default it is created with the options - (hull_borderwidth = 1, hull_relief = 'raised'). By default, this component is a Pmw.ButtonBox.

- - -
- -
dialogchildsite -
-This is the child site for the dialog, which may be used to - specialise the megawidget by creating other widgets within it. By - default it is created with the options - (borderwidth = 1, relief = 'raised'). By default, this component is a Tkinter.Frame.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Toplevel.

- - -
- -
scrolledlist -
-The scrolled list for the user to enter a value. By default, this component is a Pmw.ScrolledListBox.

- - -
- -
separator -
-If the separatorwidth initialisation option is non-zero, the - separator component is the line dividing the area between the - button box and the child site. By default, this component is a Tkinter.Frame.

- - -
-
-

Component aliases

-Sub-components of components of this megawidget -may be accessed via the following aliases.

-
label -
-Alias for scrolledlist_label. -
-
listbox -
-Alias for scrolledlist_listbox. -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.Dialog. -In addition, methods from the -Pmw.ScrolledListBox class -are forwarded by this megawidget to the -scrolledlist component. -

- -
bbox(index)
-This method is explicitly forwarded to the listbox component's - bbox() method. Without this explicit forwarding, the bbox() - method (aliased to grid_bbox()) of the hull would be invoked, - which is probably not what the programmer intended.

- - -
- -
size()
-This method is explicitly forwarded to the listbox component's - size() method. Without this explicit forwarding, the size() - method (aliased to grid_size()) of the hull would be invoked, - which is probably not what the programmer intended.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create the dialog.
-        self.dialog = Pmw.SelectionDialog(parent,
-            title = 'My SelectionDialog',
-            buttons = ('OK', 'Cancel'),
-            defaultbutton = 'OK',
-            scrolledlist_labelpos = 'n',
-            label_text = 'What do you think of Pmw?',
-            scrolledlist_items = ('Cool man', 'Cool', 'Good', 'Bad', 'Gross'),
-            command = self.execute)
-        self.dialog.withdraw()
-
-        # Create button to launch the dialog.
-        w = Tkinter.Button(parent, text = 'Show selection dialog',
-                command = self.dialog.activate)
-        w.pack(padx = 8, pady = 8)
-
-    def execute(self, result):
-        sels = self.dialog.getcurselection()
-        if len(sels) == 0:
-            print 'You clicked on', result, '(no selection)'
-        else:
-            print 'You clicked on', result, sels[0]
-        self.dialog.deactivate(result)
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 18 May 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/TextDialog.gif b/Pmw/Pmw_1_2/doc/TextDialog.gif deleted file mode 100644 index 4438828dc8e49335a38b8fc93a8fc880aad666a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4953 zcmV-f6Q=A(Nk%v~VQK*%0rCI<|Ns90007z9*}!0T!^6X1Fgt>Rg8zo6EC2ui0BQjr z0RRL3c)HwPF3L%(y*TU5yZ>M)juJ#-g?X-Q>%MR-moc&_iq?*G7`a7Zi~kI1BQ z$!t2G&|eSPQ$(-Wtai)odcWYK)v7|x&gisy%|4YcZ_ACWskQI;yna8jqv8~HHzosx zhKGlCh>MJkj*pO$l9QB`mY0~Bnwy-RjEa(=k%DvwlcJufs-6J>h^>;Xva*!0g|n`= zxr?@|zQ4c&sE@;rq*Dr~gu%?syt}%Uy|ufx(~Z~8+S`rA-OHnM$flv-+~=vZx~{$1 z(T20{u<--!?78&T>h<^N{;A$RnIk4H;39+n5=Pob%O19B`1h}_6A<4Tq&gwUf)cn#HEbmXuiy^1(z9-669(`?-igcgB@u4X=N|#cWS~u9-#wjLG=+t*Pl+6Zz#4 zSZb=Qw#w#cm&iYt@>oY^alzwRohuEI7MESSf}{+MjBX%fqy7PX!F1$>>OK^|V4qR`z3m+@6j1QmNtHT5Td$5xRU#w%c;65Djz8%jPvBmf5 z%PzYbBYNehDf1|A!xH05GQ=XIJ2S;KmfW(B8Sk7k%`#8?Z@mkXTeHP6Bb~6!KJ%Pt z(+ESnFVo(3>ua4f!`s=XA4*H9%+o-whxaY3>?!5Qz`|rSyp6BW;(=IuTn`5qg zln>Hw00GcPPr&oiL*IOjw=b`Klh;2=z4QQl4}S43X21RUM0S6q_||V;Jpt;=eZ2GN z*B_+%?vJ1U__ohqz5(_NV2|*}zUJ-EdgObQ|GX!_2Ih!>{99l3;-{(wuFruOtPupG z*S!N$5P23%UIs@9qYc7uc;fq@@m6L#0Fv;90x)6x_NT(~h0ujC9N`8jNW%mk>4rHZ z;SO1rzZxo#h1kPk5FH3X6&BHl=362YQFy|yJMvvUm$h;KEMxO0Zm6Q=7lW0gcwUBI}yxS#bmLs@jl5aL!TiV>VHbpMdl0RD3 zDYL|{R03&}R_r96KAFm;Q4D8=GbNoSiL^_O?3gy1Wif3jEuby)mUDz+AE7wLTGn!C zR7;n`+=eofDUFp(lNc*;Cbp8D%$CWk;2BSF zc9TZ9yyG?+Vyr6iaJWsM29~IfEo@P-iQ2S6wz9BnELt%-+pV_MtJpm4 zWnG)vn%4G#dd($YJ(Cw5imjq6h3-dbD_PvSwxrF??opd-*TH6Y ztBORaP93?>&i?PSFO5_p(e~3(dh2ZMEH8WADayCGva2YIFJb4&-+a1KpWo!CN@)t; zviUZm=lrk84D8%~krS_Z^{h10i%5ZTN||)S@S0j`RSFwaQ?FEBhz-Tz(R!Gdl^XHo zR9vVMOPHX;8L9eeM_i4101mvq#!s)@Tf zZjq7Khhz&od8ScnGLU&?(-}{Bb5#Z;!}uB3j@=W=3f88AN&3#Qrn$f8yyuby`DM_4 zt(w?1n@XqqT!zjx&ym&s?neQg(kREU#xCtKOn>ZHJ-_z2)`f4Q3$58M@3hNaMs$Z2 ztzIj?R-KzYaFh2N>U@H?Cl2-3)Iy8WFo<1%J-eW&!d!>yL&KQej0 z?+C|)HdW*+|JnY=J`Qso$sFA<_HoMP?PQ{tbKdN3r_}ZtSA5}uvpwh0&k-2(Ma#I< zSY|Gv1#RnZKGd*LkNLj&P4&?B)#L9TxsZ8H>`~8o)i`hX)WhiSv#EhBK+)!O-tZwO88ap zH1VH=X5%{w`DTx?m9q>^=SvFub(j9~t=}^2)4cQ&=l;&TPkOsgU;HT}e+9vBc=V?~ z_6i?{2jhP$WPaO+fYhRZHUxly z zaU}R*GYEqzOJJ2-mlCxoU4Q6uJd zj>1?fmxRnmNli6!PUvk*5`@~9ftLqzfoCXMn1*xaBu`i*`Q~{-LWcS`Y}RCi^kr8Z zMP^QSYUJg2y~Is&c6nOmPiOW@c$J4Dg?DjAh}CCvPB&)n#CS|XhgL^>lZA&{gH_+g z{&gc|G~#w^%avT&N`-66)<|HrcU+i0wTOS;M}-o{iJE9##6(w+w~UjfQ){)2 zuyt2*b$gGfYOvKX;iz_xSZr)JRBw1__IH1kcU7oHTaYD=yS91bD2!=GYW=8d=mcry zMU2mgh69;(#OR7_NQ?6*di5AozLbe!B{ZXUj5O1EiG@%-Ws%G_ZXj7*9;sUhd3xg& zjQq$v(@1yKScV_CO1$Na1$le1_;N7WZhwYS*VK8Vn2@r#Qoe|7yy%P@>0LzrC13F< zkNY*~UIm|}6cDMSV>!6aW(QkOVLDSOE*gGnTX>0es{m_GP}vZ9!1 z$C!<|k`akqVAx(qlb5Izc8-~HY`9%th?y)Wc$>L@Mwg8{2bpOyn%hToSoksR_*Pa) zZxYpCedujpNlNQBUzzrhlxKiLh;=c^j~>&Lj|G%|8E&mNoUxcks%e6dHdi4Ncni5- zI)`sr_l}44jm#;TzFCE5n2mWzlu!j>>*!WmR$GsUk#xqLJ?L?Xmv{ck=7++`QRq3B z-dJlW*^OM(oG(e48+lpN3831kcJ(=HZMU0C$&{0Mhm;wh6d8)eDPG`KjHpPJY9*mk z#Ge4ip#NEK*%_M)c9m7LNSxSB7W!bg2by%Fp;hQBr=p^J!=mBmq8E0Y`^lcSc!>>& zETIBn8H%I%r=xC(nyn(E?MI}pVx$3xq^zQ(6Ud~e;-pZTq(It|xOkUS8l_e0lvfIs zSvo3G`lYB6rebO;WLl=8a;9hsDr&l>o6@FknkjG^r<5|Mbb5VTI)zW!qIX&;cG{~FmG(qg)%Q=0*k-l4h=?eNPnUbxn3j&l zh=<5ua#$y^T6!$ElI!}ZqAIQtNU0(;tVk7!$mW^YiC`g$b>%6Bh-o;r z+Gd)SFzASzz7?#=b&iX&tj+j}@A_c)D3b1#OhT2P9J7z27K{KpSqFKax@e(qkvpVzBe7v9B%BJFO_U*aW~D-krJV`0I1;+5%C`YGx>m%JTza}tS(;_L zy3ORe9+8*uL6>zN2M} zLE4u6>1=D4k872%a(k}_OTPt*q9@~Si;F94q`x`pzXtc7pK6`dsk*BZ#P#8#fSA4o(h~VyVtyQtF;7dqK-Pfu@^oE%}%0!FK7TWL(A$41Zq?#^VaSGkUq03&$g<#uJ7jeB8%={KtSC$bvk`CL&>) ztH-uO$cntkjNHhM{K$b!J0G&Xb`1VCmQ%^_a>sno0BAv9L&Nz%*0&G#{9>!Jj1Fg{V z{5TEWB@c~33r#l@%_SA>Ko=c18NDSN-9Q~3HXofcpSZ;#EkGmfH6{JQfC#TC9Y8B> z$p?+Q6sjXJZ9g;JG%f9))BcGgIbAHy?6bo|RIq03<>b>3!GA0}V2z(IV@;%@5UEe72-ZlW=_PyWy-QWH#0)DUo Xg1rR#!QKXb;0T`JNl@TLkN^NXCRZ+t diff --git a/Pmw/Pmw_1_2/doc/TextDialog.html b/Pmw/Pmw_1_2/doc/TextDialog.html deleted file mode 100644 index 3f4995f4..00000000 --- a/Pmw/Pmw_1_2/doc/TextDialog.html +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - Pmw.TextDialog reference manual - - - - -

Pmw.TextDialog

- -
-
-

Name

-

Pmw.TextDialog() - - a dialog displaying a scrolled text -

- - -
-

Inherits

-Pmw.Dialog
-
-

Description

-

- A text dialog is a dialog window which displays a text message to - the user along with one or more buttons to press.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
activatecommand -
-If this is callable, it will be called whenever the megawidget is - activated by a call to activate(). The default is None.

- - -
- -
borderx -
-Initialisation option. The padding to the left and right of the scrolled text. The default is 10.

- - -
- -
bordery -
-Initialisation option. The padding above and below the scrolled text. The default is 10.

- - -
- -
buttonboxpos -
-Initialisation option. Specifies on which side of the dialog window to place the button - box. Must be one of 'n', 's', 'e' or 'w'. The default is 's'.

- - -
- -
buttons -
-This must be a tuple or a list and specifies the names on the - buttons in the button box. The default is ('OK',).

- - -
- -
command -
-Specifies a function to call whenever a button in the button box - is invoked or the window is deleted by the window manager. The - function is called with a single argument, which is the name of - the button which was invoked, or None if the window was deleted - by the window manager.

-

If the value of command is not callable, the default behaviour - is to deactivate the window if it is active, or withdraw the - window if it is not active. If it is deactivated, deactivate() - is called with the button name or None as described above. The default is None.

- - - -
- -
deactivatecommand -
-If this is callable, it will be called whenever the megawidget is - deactivated by a call to deactivate(). The default is None.

- - -
- -
defaultbutton -
-Specifies the default button in the button box. If the <Return> - key is hit when the dialog has focus, the default button will be - invoked. If defaultbutton is None, there will be no default - button and hitting the <Return> key will have no effect. The default is None.

- - -
- -
master -
-This is used by the activate() method to control whether the - window is made transient during modal dialogs. See the - activate() method. The default is 'parent'.

- - -
- -
separatorwidth -
-Initialisation option. If this is greater than 0, a separator line with the specified - width will be created between the button box and the child site, - as a component named separator. Since the default border of the - button box and child site is raised, this option does not - usually need to be set for there to be a visual separation between - the button box and child site. The default is 0.

- - -
- -
title -
-This is the title that the window manager displays in the title - bar of the window. The default is None.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
buttonbox -
-This is the button box containing the buttons for the dialog. By - default it is created with the options - (hull_borderwidth = 1, hull_relief = 'raised'). By default, this component is a Pmw.ButtonBox.

- - -
- -
dialogchildsite -
-This is the child site for the dialog, which may be used to - specialise the megawidget by creating other widgets within it. By - default it is created with the options - (borderwidth = 1, relief = 'raised'). By default, this component is a Tkinter.Frame.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Toplevel.

- - -
- -
scrolledtext -
-The scrolled text to contain the text for the dialog. By default, this component is a Pmw.ScrolledText.

- - -
- -
separator -
-If the separatorwidth initialisation option is non-zero, the - separator component is the line dividing the area between the - button box and the child site. By default, this component is a Tkinter.Frame.

- - -
-
-

Component aliases

-Sub-components of components of this megawidget -may be accessed via the following aliases.

-
label -
-Alias for scrolledtext_label. -
-
text -
-Alias for scrolledtext_text. -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.Dialog. -In addition, methods from the -Pmw.ScrolledText class -are forwarded by this megawidget to the -scrolledtext component. -

- -
bbox(index)
-This method is explicitly forwarded to the text component's - bbox() method. Without this explicit forwarding, the bbox() - method (aliased to grid_bbox()) of the hull would be invoked, - which is probably not what the programmer intended.

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create the dialog.
-        dialog = Pmw.TextDialog(parent, scrolledtext_labelpos = 'n',
-                title = 'My TextDialog',
-                defaultbutton = 0,
-                label_text = 'Lawyer jokes')
-        dialog.withdraw()
-        dialog.insert('end', jokes)
-        dialog.configure(text_state = 'disabled')
-
-        # Create button to launch the dialog.
-        w = Tkinter.Button(parent, text = 'Show text dialog',
-                command = dialog.activate)
-        w.pack(padx = 8, pady = 8)
-
-jokes = """
-Q: What do you call 5000 dead lawyers at the bottom of the ocean?
-A: A good start!
-
-Q: How can you tell when a lawyer is lying?
-A: His lips are moving.
-
-Q: Why won't sharks attack lawyers?
-A: Professional courtesy.
-
-Q: What do have when a lawyer is buried up to his neck in sand?
-A: Not enough sand.
-
-Q: How do you get a lawyer out of a tree?
-A: Cut the rope.
-
-Q: What is the definition of a shame (as in "that's a shame")?
-A: When a bus load of lawyers goes off a cliff.
-
-Q: What is the definition of a "crying shame"?
-A: There was an empty seat.
-
-Q: What do you get when you cross the Godfather with a lawyer?
-A: An offer you can't understand.
-
-Q. What do lawyers use as contraceptives?
-A. Their personalities.
-
-Q. What's brown and black and looks good on a lawyer?
-A. A doberman.
-
-Q. Why are lawyers buried 12 feet underground?
-A. Deep down their good.
-
-Q. What's the difference between a catfish and a lawyer?
-A. One's a slimy scum-sucking scavenger, the other is just a fish.
-
-"""
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 18 May 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/TimeCounter.gif b/Pmw/Pmw_1_2/doc/TimeCounter.gif deleted file mode 100644 index 26cbdba5d62e5497e8cb8e7307b5f031e3413e3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1077 zcmV-51j_qINk%v~VX6RC0Pz3-|Ns90007z9*@A+CEC2ui0IC3000091l#i*)?GK}z zwAzca-n{z{hT=$;=82~2%C>F^#PUqn_KoNI{q_yu`wW7_18|o!AaTm2O)xAHk4{>& zYHea;!>H6pwG6Jn%D5@+euH5%IgNHh*I+>mZZA{LdAOI}(zf>|*C+P}xFR^gcUR~* zIF}e`s1VT5sF!fbkjcQgaE3UEvUm`H+DW*X8oG*r3Ys8F%3^8|s~X2Di{NS5sz6(- zavK}$`-*$)x_injtVWz-dYn6}Y>jO2`)nO8Iek*C4PLqYjqNO;-3uixZnD_E-OWy~ zeoo&z91o+9FPXD_`5@hEr*4!#5Q6q0>*i1vM27+uF7$8P^)3Prd2zp4BVe`=f-8*R_wd3b@`h03pOu= zv4Iyj;v=?ig*$}>|Jb`&apJ#`@ltTd3G=1~nK>`G25Xxg$dgG=INUe^V-A|xS=#&w zm*>#Wmen?5+O@Z9sCS1B)*GEHXnj&UXx;iYE8DTd{NZ5U2w43 z=N*0s9h6Rd5~c^8d-r_i&U6KC2p@LDDR|ItpxmcHe(O<4;eRM%$Rch7h9_Pe^lir= zWeXWSC`?2Kq+mpu&l0 zM2?OvmRkf%Ix5*|iY|Iuqk}~%!K0TtNht$vW{N4KHcHBArwV*3s-+KTy6U8+uKLav zsL5Ivt);%|BCT@i$_=k~n(9?bzjhidNW)S}{)Mf1D66ZhxO%$m7G%get+cm3OA{tI z)wHd)*W#M3E-S$_u1m)*8g4V?=Cm%i-@clzIR>%xlDW@1+OD_xiaRe%=Q`F9MF&ho z(7>xiRMEYI0ra530|n$T!{sEbumkfzOqoFiN31c%d;KdIIT3Q4Rl_9nLY%`O=OuE= z8J9eToT-bHg vT!F*&F0gjk)d=EOC|)?RVcESC0E$l%PB~hAUyga^ns3f|=bnH5Yyki}CVUYf diff --git a/Pmw/Pmw_1_2/doc/TimeCounter.html b/Pmw/Pmw_1_2/doc/TimeCounter.html deleted file mode 100644 index 6fbdea33..00000000 --- a/Pmw/Pmw_1_2/doc/TimeCounter.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - Pmw.TimeCounter reference manual - - - - -

Pmw.TimeCounter

- -
-
-

Name

-

Pmw.TimeCounter() - - counter for display and input of time -

- - -
-

Inherits

-Pmw.MegaWidget
-
-

Description

-

- A time counter is similar to a regular Pmw.Counter except that the - user may increment and decrement the hours, minutes and seconds - individually.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
autorepeat -
-If true, the counter will continue to count up or down while an - arrow button is held pressed down. The default is 1.

- - -
- -
buttonaspect -
-Initialisation option. Specifies the width of the arrow buttons as a proportion of their - height. Values less than 1.0 will produce thin arrow buttons. - Values greater than 1.0 will produce fat arrow buttons. The default is 1.0.

- - -
- -
command -
-This specifies a function to call whenever the <Return> key is - pressed in one of the entry fields or invoke() is called. The default is None.

- - -
- -
initwait -
-Specifies the initial delay (in milliseconds) before a depressed - arrow button automatically starts to repeat counting. The default is 300.

- - -
- -
labelmargin -
-Initialisation option. If the labelpos option is not None, this specifies the - distance between the label component and the rest of the - megawidget. The default is 0.

- - -
- -
labelpos -
-Initialisation option. Specifies where to place the label component. If not - None, it should be a concatenation of one or two of the - letters 'n', 's', 'e' and 'w'. The first letter - specifies on which side of the megawidget to place the label. - If a second letter is specified, it indicates where on that - side to place the label. For example, if labelpos is 'w', - the label is placed in the center of the left hand side; if - it is 'wn', the label is placed at the top of the left - hand side; if it is 'ws', the label is placed at the - bottom of the left hand side.

-

If None, a label component is not created. The default is None.

- - - -
- -
max -
-Specifies the maximum acceptable time in the form "HH:MM:SS", or - None if no maximum checking should be performed. The default is None.

- - -
- -
min -
-Specifies the minimum acceptable time in the form "HH:MM:SS", or - None if no minimum checking should be performed. The default is None.

- - -
- -
padx -
-Initialisation option. Specifies how much wider to make each column than the default - width (where a column consists of two arrows and an entry field). - The entry fields expand to fill the extra space, but the arrow - buttons are centered in the available space. The default is 0.

- - -
- -
pady -
-Initialisation option. Specifies how much higher to make each row of arrow buttons than - the default hight. The arrow buttons are centered in the - available space. The default is 0.

- - -
- -
repeatrate -
-Specifies the delay (in milliseconds) between automatic counts - while an arrow button is held pressed down. The default is 50.

- - -
- -
value -
-Initialisation option. Specifies the initial contents of the time counter, in the form - "HH:MM:SS". If this is None, the current time is used as the - initial contents. The default is None.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
downhourarrow -
-The arrow button used for decrementing the hour field. By default, this component is a Tkinter.Canvas. Its component group is Arrow.

- - -
- -
downminutearrow -
-The arrow button used for decrementing the minute field. By default, this component is a Tkinter.Canvas. Its component group is Arrow.

- - -
- -
downsecondarrow -
-The arrow button used for decrementing the second field. By default, this component is a Tkinter.Canvas. Its component group is Arrow.

- - -
- -
frame -
-If the label component has been created (that is, the labelpos - option is not None), the frame component is created to act as - the container of the entry fields and arrow buttons. If there is - no label component, then no frame component is created and the - hull component acts as the container. In either case the border - around the container of the entry fields and arrow buttons will be - raised (but not around the label). By default, this component is a Tkinter.Frame.

- - -
- -
hourentryfield -
-The entry field where the hours are entered and displayed. By default, this component is a Pmw.EntryField.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Frame.

- - -
- -
label -
-If the labelpos option is not None, this component is - created as a text label for the megawidget. See the - labelpos option for details. Note that to set, for example, - the text option of the label, you need to use the label_text - component option. By default, this component is a Tkinter.Label.

- - -
- -
minuteentryfield -
-The entry field where the minutes are entered and displayed. By default, this component is a Pmw.EntryField.

- - -
- -
secondentryfield -
-The entry field where the seconds are entered and displayed. By default, this component is a Pmw.EntryField.

- - -
- -
uphourarrow -
-The arrow button used for incrementing the hour field. By default, this component is a Tkinter.Canvas. Its component group is Arrow.

- - -
- -
upminutearrow -
-The arrow button used for incrementing the minute field. By default, this component is a Tkinter.Canvas. Its component group is Arrow.

- - -
- -
upsecondarrow -
-The arrow button used for incrementing the second field. By default, this component is a Tkinter.Canvas. Its component group is Arrow.

- - -
-
-

Component aliases

-Sub-components of components of this megawidget -may be accessed via the following aliases.

-
hourentry -
-Alias for hourentryfield_entry. -
-
minuteentry -
-Alias for minuteentryfield_entry. -
-
secondentry -
-Alias for secondentryfield_entry. -
-
- -

Methods

-Only methods specific to this megawidget are described below. -For a description of its inherited methods, see the -manual for its base class -Pmw.MegaWidget. -

- -
decrement(seconds = 1)
-Decrement the time by seconds seconds.

- - -
- -
getint()
-Return the currently displayed time as a number of seconds.

- - -
- -
getstring()
-Same as getvalue() method.

- - -
- -
getvalue()
-Return the currently displayed time as a string in the form - "HH:MM:SS".

- - -
- -
increment(seconds = 1)
-Increment the time by seconds seconds.

- - -
- -
invoke()
-Invoke the command specified by the command option as if the - <Return> key had been pressed.

- - -
- -
setvalue(text)
-Set the contents of the time counter, where text must be in the - form "HH:MM:SS".

- - -
-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        self._time = Pmw.TimeCounter(parent,
-                labelpos = 'w',
-                label_text = 'HH:MM:SS',
-                min = '00:00:00',
-                max = '23:59:59')
-        self._time.pack(padx=10, pady=5)
-
-        button = Tkinter.Button(parent, text = 'Show', command = self.show)
-        button.pack()
-
-    def show(self):
-        stringVal = self._time.getstring()
-        intVal =  self._time.getint()
-        print stringVal + '  (' + str(intVal) + ')'
-
-
-
-
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home -
Manual page last reviewed: 25 May 2002 -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/blue_line.gif b/Pmw/Pmw_1_2/doc/blue_line.gif deleted file mode 100644 index 2063df02f739afc67713b3ac3c7dc00a56fa3182..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 981 zcmV;`11kJSNk%v~VL$-|0QCR>>+}2K>-*j2_to9^(Ao3H(DQ?r;lj)AzQ^;q!tS)a z>UxdgbB5e$e%xVq*8m{GvAXW7wd$p=-**9_u}IF-QD-u+4I%a_t4Pu$H()+!tS}b?zFV(tE=jzrR4ws z00000EC2ui06+l+000L5Ko|@VD;8x)nSjO|IBhio;dU!naX7@`kV|-VItWCuiRBHH7CMGF^6B8;b6p1T~6^$1bkQOa18yg*$mmDu1oE{(` zA0eWnD5a*SsHv)}tgWb{qaUB0oi7|5moAkpkro$?6^n@!hlPWK4h|>Fd?gIed3ALL z26J%NZf$E47(6^@I|^c8UI{r{=vG!#QZ+SBOf&)lNi#+<0766fF*5x!Gh{FkFrWqv zcTsK-Sa)L!4lW1E=}?eBfw(gf)T~kS=GwJ68l>SFk!MdIK7mX)Na0`tp$Uo%aKn_wi zoZ z3Ov-3qf0q)WXhaL!!cV1k80-_kVdkkvl4+C08*K(&@e@f7WIOZbHh%lnmT;~0gF`9 z-@sWdg(Vb(Cr(jsDX+945(^dwx=wK1*At*ljBi@=L~Ape2cI{ zF6N5n&e_FFrT*S`edhrT5TGAEeTDURSU>_D^iDzUJoeaK@_C`aL^{X?7Y`e;kxd+; zO*2{@B>X&cT1p@aatur<48w>871Y#AZOYlQ2`#dG0!t}Np-|(EA=sEBjym?p7$S|hS1a}O?AS72bVC%+*OdQ5ZxkLZIyyCESa!O1KKsyAp>`iAWcXkq=iizJ*4N> zdS=XJQ8^G{0a;}AML__9OVEH=68;n+m=Hw#69a+q3}7H*j#+Wn7UeiN5d;`f7y&n( zeO8_bX^He*9%T8!rAjPy#g$AHoCuvwwb|xE2e%-n8z{Yr65On`meN~LNGi$da=TCh z2@6ur)JP(TBytQgUu{R0cblGN=9z3&C;>QRKtPTcT`XEaeG1(W#esb(!DpXB1OWg$ DX=Sp( diff --git a/Pmw/Pmw_1_2/doc/blueball.gif b/Pmw/Pmw_1_2/doc/blueball.gif deleted file mode 100644 index 013183af28e872a833d371c8cf5312ec185edc0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmZ?wbh9u|I#b6f2V35pUoy}ldEZ|Yh;MpSJ*J7B^!{9T8 z!EcUN`5cDGwG44v8RGXcWb9?gI#xaJSoN}F3|Z#{D$Y6eo=cv3E_vQLhO%oMMb{Y0 z?lDw9XQ+P9(D9#P;(v~w{{r3r1t$Mjoc`Z%?f;(7|Cj#%@&EsSpyiYU9gqR zJ4`9?(2?pta`I@>PMV!Z diff --git a/Pmw/Pmw_1_2/doc/bugs.html b/Pmw/Pmw_1_2/doc/bugs.html deleted file mode 100644 index f46e8e9e..00000000 --- a/Pmw/Pmw_1_2/doc/bugs.html +++ /dev/null @@ -1,378 +0,0 @@ - - - - - - List of known bugs - - - - -

List of known bugs

- -

-This is a list of some of the known bugs in Pmw. If you fix any of -these, please let the maintainer (gregm@iname.com) know.

-
  • Under the Enlightenment window manager, if show() is called when - a window is already displayed (and is not obscured by other - windows), then the application will hang for two seconds. This - is either a bug in Tcl/Tk or in Enlightenment. See the comment - in the Tk function WaitForConfigureNotify() in the Tk source - file tk8.3.2/unix/tkUnixWm.c:

    -
     /*
    -  * One more tricky detail about this procedure.  In some cases the
    -  * window manager will decide to ignore a configure request (e.g.
    -  * because it thinks the window is already in the right place).
    -  * To avoid hanging in this situation, only wait for a few seconds,
    -  * then give up.
    -  */
    - - -
  • -
  • On NT, Pmw.MenuBar does not display message bar help for menu - items. It seems that Tk menu widgets do not support <Motion> - events on MS. This probably is an issue that should be taken up - with the Tcl/Tk people. (Reported by Stefan Schone. Pmw.0.7)

    - -
  • -
  • Run the CounterDialog.py demo, select the show dialog button and - press ok. Now exit the dialog (either with the exit button or - the close box). The following error appears:

    -
     Menu ID 256 is already in use!Fatal Python Error: Tcl/Tk panic
    - -

    This may be a problem with Mac version of Tk. (Reported by - Anthony Wilson.)

    - - -
  • -
  • Pmw.Balloons bind to widgets and canvas items. This means that - bindings made by other users are deleted when the balloon makes - its bindings. (For example, the "Delete" canvas item in the - Balloon demo overrides that <ButtonPress> binding and so that - balloon is not withdrawn when the mouse button is pressed over - the item.)

    -

    The obvious solution is for Pmw.Balloon to add its bindings with - a +. But this would make the unbind and tagunbind methods - inconsistent - they would remove all bindings, not just the ones - added by the balloon. A better way would be for the balloon to - add a bindtag to each widget`s bindtag list - then it would not - upset any other bindings and it could be deleted cleanly. - (Reported by Joe Saltiel)

    - - -
- -
 import Tkinter
- import Pmw
- 
- def foo(event):
-     print '<Enter> event on text'
- 
- root = Pmw.initialise()
- balloon = Pmw.Balloon()
- 
- canvas = Tkinter.Canvas()
- canvas.pack()
- 
- text1 = canvas.create_text(50, 50, text = 'hello
-there')
- 
- # As is, the balloon does not appear over the text, but foo
- # is called.  Swap the following two lines and the balloon
- # appears but foo will not be called.
- canvas.tag_bind(text1, "<Enter>", foo)
- balloon.tagbind(canvas, text1, 'text 1 help')
- 
- root.mainloop()
-
  • In Pmw.Balloon, the balloon should not be withdrawn when the - pointer leaves a widget or item and it immediatly enters another - widget or item with balloon help. Instead, the balloon should - be moved and its contents changed immediately.

    - -
  • -
  • When a Pmw.Balloon is bound to a canvas item, moving the item - becomes very slow. (Reported by Joe Saltiel)

    -
     > Second, after I fixed my ordering problem I noticed, there
    - > is a pretty big delay in updating widgets that have balloon
    - > messages bound to them.  (For example dragging a box across
    - > a screen, the box has a delayed reaction.) I believe this is
    - > due to some of the timing functions used in PmwBalloon, I am
    - > not sure if there is a way around it.  I set all timers to
    - > zero, and still had the problem.
    - - -
  • -
  • When running Pmw demos under ptui the busy cursor does not - appear.

    - -
  • -
  • If a combobox has a horizontal scrollbar and it displays its - listbox above the entry, then it is misplaced.

    - -
  • -
  • Bug in Pmw.PanedWidget: repeat by creating new panes in Demo - - existing panes jump to the right 1 or 2 pixels.

    - -
  • -
  • Bug in Pmw.PanedWidget: repeat by setting hull_borderwidth to - 20 in demo - initial drag jumps to right by about 20 pixels. - Also right hand side border is missing. (Fix may be similar to - method used in Pmw.ScrolledFrame to give canvas border.)

    - -
  • -
  • Fix ButtonRelease events so they do not trigger without a - corresponding ButtonPress event.

    -

    From Joe Saltiel: I was playing around with a scrolledlistbox - and tkFileDialog. When I have the dialog open above the list - box and I doubleclick on it, I invoke the selectioncmd of the - listbox as well as the tkFileDialog box, should this be - happening?

    - -

    Attached is small sample program you can try. To get the bug to - show you must do two things. First, when you open the file - dialog box, make sure the item you are going to select if - over(above) the scrolledlistbox. Second, you have to double - click on that item. If you single click and hit "Open" you do - not get the bug. Nor do you get it unless the file you click on - is directly over the clickable region of the scrolledlist box.

    -
     import Tkinter
    - import Pmw
    - import tkFileDialog
    - import string 
    - 
    - def askOpen():
    -     file = tkFileDialog.askopenfile(filetypes=[("all files", "*")])  
    -     print file
    - 
    - def printMe():
    -     print "Me"
    - 
    - root = Tkinter.Tk()
    - Pmw.initialise(root)
    - 
    - frame1 = Tkinter.Frame(root)
    - lst = string.split("abc def ghi jkl mno pqr stu vwx yz")
    - lstbox = Pmw.ScrolledListBox(frame1, items=lst, selectioncommand=printMe)
    - lstbox.grid(row=0, column=0, columnspan=2)
    - Tkinter.Button(frame1, text='open', command=askOpen).grid(row=1, column=0)
    - Tkinter.Button(frame1, text='exit', command=root.destroy).grid(row=1, column=1)
    - frame1.pack()
    - 
    - root.mainloop()
    - - -

    Response: I have found where the problem is but I am not sure - how to fix it. It appears that the tkFileDialog box closes on a - ButtonPress event. The corresponding ButtonRelease event is - then sent to whichever widget is under the cursor at the time of - the Release. I have reproduced the problem with a Tcl-only - script:

    -
     listbox .l
    - .l insert 0 1 2 3 4
    - bind .l <ButtonRelease-1> {puts AAAGGHHH!}
    -
    - button .b -text open -command tk_getOpenFile
    - pack .l .b
    - - -

    If you do a quick Press-Release-Press over the file dialog, it - is withdrawn. If you then keep the mouse button down and move - the mouse around, you will see that the button and the listbox - still respond to it. If you do the final button Release over - the listbox, its <ButtonRelease-1> binding is invoked.

    - -

    I think the correct solution is to modify Pmw to be very careful - when to accept ButtonRelease events. It will need to also bind - to ButtonPress events and make sure that it gets a Press before - it accepts the Release. I'll try to do the change as soon as - possible, but the code involved is fairly complex so I it may - take a little time.

    - - -
  • -
  • Investigate bug in Tk8.0: When a dialog pops up over the - pointer then the keyboard focus is not set and so <Return> does - not invoke default button.

    - -
  • -
  • Under both X and NT, the arrows in the timecounter, counter and - combobox do not match the scrollbar arrows.

    - -
  • -
  • Pmw.Group does not work correctly when the tag is a compound - widget. The tag is placed such that the top of the tag is cut - off. (Reported by Peter Stoehr.)

    -
     import Tkinter
    - import Pmw
    - 
    - root = Tkinter.Tk()
    - Pmw.initialise(root, fontScheme = 'pmw1')
    - exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy)
    - exitButton.pack(side = 'bottom')
    - 
    - def makeGroup(tagClassName):
    -     tagClass = eval(tagClassName)
    -     group = Pmw.Group(
    -         tag_pyclass = tagClass,
    -         hull_background = 'red',
    -         groupchildsite_background = 'blue',
    -     )
    -     group.pack(fill = 'both', expand = 1, padx = 6, pady = 6)
    -     child = Tkinter.Label(group.interior(),
    -         text = 'Group with tag ' + tagClassName,
    -         background = 'aliceblue',
    -     )
    -     child.pack(padx = 10, pady = 5, expand = 1, fill = 'both')
    -
    -     return group
    - 
    - grp1 = makeGroup('Pmw.EntryField')
    - grp2 = makeGroup('Pmw.ComboBox')
    - grp3 = makeGroup('Tkinter.Entry')
    - 
    - root.mainloop()
    - -

    Also, Pmw.Group does not resize correctly if the simple widget - changes size. For example:

    -
     grp3.configure(tag_font = ('Helveltica', '-160'))
    - - - -
  • -
  • Bug(s) in PmwScrolledCanvas. There is a bug in 0.8.1 - PmwScrolledCanvas._setRegion. If there are no objects in the - canvas, then error occurs on len(region) because region is None. - Below is an attempt to fix it. Click on Show, then on Delete. - The window then continuously resizes. If the ScrolledCanvas is - created with canvasmargin = 0, the problem goes away. (Reported - by Anders Henja.)

    -
     import Tkinter
    - import Pmw
    - 
    - def _setRegion(self):
    -     # Attempt to fix PmwScrolledCanvas._setRegion.
    -     self.setregionTimer = None
    - 
    -     region = self._canvas.bbox('all')
    -     canvasmargin = self['canvasmargin']
    -     if region is None:
    -         region = (0, 0, 0, 0)
    -     region = (region[0] - canvasmargin, region[1] - canvasmargin,
    -         region[2] + canvasmargin, region[3] + canvasmargin)
    -     self._canvas.configure(scrollregion = region)
    - 
    - def show():
    -     canvas.component('canvas').delete('all')
    -     canvas.create_oval(0, 0, 800, 600, fill = 'red')
    -     canvas.configure(canvas_width = 600, canvas_height = 450)
    -     canvas.resizescrollregion()
    - 
    - def delete():
    -     canvas.component('canvas').delete('all')
    -     canvas.configure(canvas_width = 0, canvas_height = 0)
    -     canvas.resizescrollregion()
    - 
    - root=Tkinter.Tk()
    - Pmw.initialise(root)
    - 
    - buttonbox=Pmw.ButtonBox()
    - buttonbox.pack(fill='x',side='bottom',padx=5,pady=5)
    - buttonbox.add('Show',command=show)
    - buttonbox.add('Delete',command=delete)
    - buttonbox.alignbuttons()
    - 
    - canvas=Pmw.ScrolledCanvas(canvasmargin=2)
    - canvas.__class__._setRegion = _setRegion
    - canvas.pack(fill='both',side='right',expand=1)
    - 
    - root.mainloop()
    - - -
  • -
  • Bug in Pmw.Dialog: if defaultbutton is configured before - buttons during self.initialiseoptions() (that is if - self._constructorKeywords.keys() returns a different order), - then setdefault() fails.

    - -
  • -
  • Bugs in Tk which affect Pmw.MainMenuBar:

    -
    • Extra bindings assigned to a Tkinter.Menu widget using - bindtags have no effect. Hence the method used in - Pmw.MenuBar for status help (bind_class followed by - bindtags) does not work and therefore binding to the menu - widget is used instead.

      - -
    • -
    • The 'active' tag for the index() method of Tkinter.Menu - always returns None. Hence, in the menu widget motion - binding, event.y and the '@' format is used instead, for - all menus except the toplevel main menu.

      - -
    • -
    • For the toplevel main menu, event.x must be used for the - index() method, but it returns the wrong index. It - appears that the Tk widget is assuming vertical layout - to calculate distances, rather than horizontal.

      - -
    • -
    • For toplevel main menus, several Tk commands, such as - winfo_height(), do not work. This prevents the use of - balloon help for Pmw.MainMenuBar.

      - -
    - -
  • -
  • Bug in Pmw.ComboBox: Tab to combobox arrow, use up/down arrow - keys to change selection, hit return, nothing happens, <Shift - Tab> to entry window, hit return, combobox changes

    -
    • actually, it would be better if you could not tab to - the arrow, only the entry field, like the Pmw.Counter.

      - -
    • -
    • the problem is if the entry field is not editable, what to - do then?

      - -
    - -
  • -
  • Bug in TimeCounter: Arrow keys don't work when focus is on entry.

    - -
  • -
  • Bug in Pmw.NoteBook: The size of the tab does not change when - the text value changes

    - -
  • -
  • Bug in Pmw.NoteBook: The name of the tab components has a "-" sign - in it, which means that component options can not be used in the - configure command. Eg:

    -
     n = Pmw.NoteBook()
    - p = n.add('page1')
    - n.configure(page1_background = 'red')   # works
    - n.configure(page1-tab_background = 'red')   # fail, must do this:
    - n.component('page1-tab').configure(background = 'red')   # works
    - - -
-

- - - - -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/changes.html b/Pmw/Pmw_1_2/doc/changes.html deleted file mode 100644 index f3dd6402..00000000 --- a/Pmw/Pmw_1_2/doc/changes.html +++ /dev/null @@ -1,1741 +0,0 @@ - - - - - - Changes to Pmw - - - - -

Changes to Pmw

- -

- 6 January 1997

- -
  • Release of version 0.1

    - -
-

14 February 1997

- -
  • Fixed bug in Counter demo for the Macintosh - the maximum size of an - integer is smaller than the value returned by time.time().

    - -
  • -
  • Fixed bug in Grid demo for Tk 4.2 - grid_bbox returns garbage if it is - called without update_idletasks. Also, grid_bbox can only have two - arguments in Tk 4.1.

    - -
  • -
  • Modified ScrolledText demo so that the text widget contains enough text - to require a vertical scrollbar.

    - -
  • -
  • Changes to PmwBase:

    -
    • Prefixed the name of several private variables with a double underscore.

      - -
    • -
    • Added symbolic constants for the indexes into an optionInfo list.

      - -
    • -
    • Changed names of several methods and variables to be more descriptive.

      - -
    • -
    • Removed options() method.

      - -
    • -
    • Simplified configuration option data structures. Modified option - handling code so that default options are set correctly. If an - option is created before initialise() is called then initialise() - checks if the option is set by the keyword arguments to - initialise(). If not, then it is given the value found in the - Tk option database, if a value exists, or the default value. If an - option is created after initialise() is called, then it is given the - value found in the Tk option database, if a value exists, or the - default value.

      - -
    - -
  • -
  • Replaced usage of self._hull in megawidgets by interior() method.

    - -
  • -
  • Added autoclear option to ComboBox.

    - -
  • -
  • Fixed bug in ComboBox - fast clicking on the arrow button could result - in an attempt to grab a window that was not yet visible.

    - -
  • -
  • Added "sys.exc_traceback = None" to the except clauses of all try - statements so that references to objects in the stack trace would not - be left.

    - -
  • -
  • Added takefocus option to PushButton.

    - -
  • -
  • Modified the getcurselection() method of ScrolledListBox so that it - returns a string if the selection mode is 'single' or 'browse', rather - than a tuple with one element. This also affects methods forwarded and - derived from ScrolledListBox.

    - -
  • -
  • Modified ScrolledListBox so that it avoids unnecessary updates by - using idle timer.

    - -
  • -
  • Modified ScrolledText to use grid instead of pack.

    - -
  • -
  • Added shutdown() function to Tk module to clean up all references to - the Tcl interpreter and then delete it.

    - -
  • -
  • Fixed bug in Tk module for the Macintosh - update() was being called in - initialise() before the Tcl interpreter was created.

    - -
-

14 February 1997

- -
  • Version 0.1.1 completed and released internally.

    - -
-

6 March 1997

- -
  • Pmw now uses the standard Tkinter module. The Tk module has been - dropped. This means that the Tk module functions such as after, - bell, bind, update, etc, are no longer available and the equivalent - Tkinter methods should be used.

    - -
  • -
  • To restore some of the features of the Tk module, Pmw.initialise() - now adds run-time hooks into Tkinter to get notification of when Tk - widgets are created and destroyed. It also modifies the CallWrapper - class so that errors during callbacks and bindings can be displayed - in a window. If Pmw.initialise() is not called, Tkinter is not - modified and these features are not available.

    - -
  • -
  • If a Tk widget which is acting as the hull of a megawidget is - destroyed, then the megawidget is destroyed as well. This can - only happen if Pmw.initialise() is called.

    - -
  • -
  • Pmw.initialise() now takes the Tkinter root as its argument.

    - -
  • -
  • The parent of megawidgets now defaults to the Tk root. Previously, - the parent of non-toplevel megawidgets had to be given.

    - -
  • -
  • Added PmwBase.tracetk() function to get trace of calls to the Tcl - interpreter for debugging.

    - -
  • -
  • Added functions to PmwBase to display a busy cursor over the - application such as when a modal dialog is displayed or it is - blocked doing a long calculation. Uses busy command of the blt - extension, if present.

    - -
  • -
  • Created a nifty new demo which demonstrates most of the megawidgets - in a convenient way.

    - -
  • -
  • Added a TextDialog.

    - -
  • -
  • Added functionality to handle the grabbing of nested modal dialogs - correctly.

    - -
  • -
  • Added an activatecommand option to Dialog which allows, for example, - the PromptDialog widget to set the keyboard focus when it is - activated.

    - -
  • -
  • Added tests for Counter and logicalfont.

    - -
  • -
  • The ScrolledListBox selectioncommand is no longer given the widget - as its first argument.

    - -
  • -
  • Several method, function and component names were changed, to be - consistent with the coding conventions.

    - -
  • -
  • Some of the effects of moving from the Tk module to Tkinter are:

    -
    • The Tk module used to exit if there were no non-root toplevel - windows shown. This is no longer the case and so the application - must handle this explicitly, particularly if the root window is - withdrawn and the last non-root toplevel is deleted by the window - manager.

      - -
    • -
    • The Tk module bind functions and methods used to take a noEvent - argument to indicate that the Tk event should not be passed to the - callback. Tkinter does not support this.

      - -
    • -
    • The Tk module initialise() function should be replaced by - "root = Tkinter.Tk()" and root should be used instead of "Tk.Root()"

      - -
    • -
    • The Tk module quit() function should be replace by "root.destroy()".

      - -
    • -
    • Toplevels are not hidden when created. To be consistent, - MegaToplevels are not hidden either.

      - -
    • -
    • The hide and show methods are not available for Tkinter Toplevels, - only MegaToplevels

      - -
    • -
    • There is no grid_configure method.

      - -
    • -
    • Tkinter.Canvas.coords() returns a python list, not a tuple.

      - -
    • -
    • The Tkinter cget and configure widget methods always return - strings for the option values. The Tk module used to convert the - string to the appropriate python type (such as string, integer, - float, Variable, Image, callback function).

      - -
    • -
    • Tkinter Menu and Toplevel classes incorrectly have a pack method.

      - -
    • -
    • Menu class has no geometry method.

      - -
    • -
    • Canvas focus returns '' rather than None.

      - -
    • -
    • Text mark_gravity returns '' rather than None.

      - -
    - -
-

13 March 1997

- -
  • Release of version 0.2

    - -
-

17 March 1997

- -
  • Set default WM_DELETE_WINDOW protocol of Tkinter.Toplevel to - destroy() and removed duplicated protocol request from all demos.

    - -
  • -
  • Modified text of ShowBusy demo to indicate that busy cursor will - only be seen if the BLT extension is present.

    - -
  • -
  • Replaced call to update() in PmwLabeledWidget.py with update_idletasks().

    - -
  • -
  • Changed name of PromptDialog component from 'entry' to 'entryfield'.

    - -
-

28 April 1997

- -
  • Version 0.3 released internally

    - -
-

19 August 1997

- -
  • Many changes made (see the version 0.4 porting guide for - more details).

    - -
  • -
  • The option propagation mechanism that iwidgets uses is too - cumbersome, too hard to understand and, in python, too slow. - Developed a new mechanism which is more explicit in naming - options. This resulted in most options which were simply - propagated to components being removed. Removed keep(), rename() - and ignore() methods and "usual" options.

    - -
  • -
  • For speed, Pmw no longer queries the Tk option database for - default values for megawidget options. Hence, resource names and - classes do not need to be supplied when creating options and - None is returned for the resource name and class when using - configure() to query the options. Option "types" no longer - used.

    - -
  • -
  • Changed method and component names to be more consistent.

    - -
  • -
  • Replaced most uses of pack() with grid().

    - -
  • -
  • Megawidgets no longer inherit from LabeledWidget. Instead they - call createlabel() to optionally create the label component.

    - -
  • -
  • Removed child site from EntryField and rewrote ComboBox - accordingly.

    - -
  • -
  • Wrote lots more documentation, including automatically generated - reference manuals.

    - -
  • -
  • Removed PushButton and rewrote ButtonBox to directly create - Tkinter.Buttons rather than PushButtons.

    - -
  • -
  • Added initialisation options - options which can be set at - creation time but not later using configure().

    - -
  • -
  • Added aliases for components.

    - -
  • -
  • Modified the base classes so that during option configuration, - components are configured before configuration called functions - are called.

    - -
  • -
  • Added several more megawidgets.

    - -
  • -
  • Added interface to BLT graph and vector commands.

    - -
  • -
  • Created PmwLazy module for lazy importing of Pmw - avoids loading - megawidgets which are not used.

    - -
  • -
  • Added several more functions for handling color and fonts.

    - -
  • -
  • Replaced Counter and EntryField time with timeN and time24

    - -
  • -
  • Pmw.initialise() will now create Tkinter.Tk if not given root.

    - -
-

1 September 1997

- -
  • Release of version 0.4

    - -
-

5 September 1997

- -
  • Modified the base classes so that the Tk option database resource - class of megawidgets can be overridden in the call to the - constructor using the hull_class option.

    - -
  • -
  • The separators in Pmw.PanedWidget are now active - they can be - grabbed, like the handles, and moved around. The cursor now - changes to the correct left/right or up/down cursor when over a - separator or handle. (Clemens Hintze)

    - -
  • -
  • Fixed bug in MessageInfo demo Dismiss button. If it is invoked, - an error occurs saying "not enough arguments". (Mark Colclough)

    - -
-

9 September 1997

- -
  • Added the useTkOptionDb argument to Pmw.initialise which - specifies that the initial values of megawidget options are to be - set by querying the Tk option database.

    - -
  • -
  • When used to query options, the configure() method now returns the - resource class and name of the options.

    - -
-

19 September 1997

- -
  • Changed functions datestringtoint() and timestringtoint() to - datestringtojdn() and timestringtoseconds(). Changed return value - of datestringtojdn() to be Julian Day Numbers rather than seconds - since the epoch.

    - -
  • -
  • Fixed a bug in the date Counter due to use of time.timezone, by - replacing, when calculating date increments, calls to the time - module with calls to datestringtojdn().

    - -
  • -
  • Added century pivot year (setyearpivot function) to Counter date - datatypes to handle two-digit years.

    - -
  • -
  • Added date_dmy4, date_mdy4 and date_y4md datatypes to Counter.

    - -
  • -
  • Modified demos All.py and ScrolledText.py so that demos can be called - from directories other than the demos directory. (Case Roole and - Guido van Rossum)

    - -
  • -
  • Changed the default for the Pmw.Balloon label_justify option to - left to improve appearance of multi-line balloons. Pmw.Balloon - now replaces newlines with spaces in the statusHelp string so that - the strings look better when displayed in a Pmw.MessageBar. - (Andreas Kostyrka)

    - -
  • -
  • Pmw.Blt now calls package require BLT when checking for the - existence of Blt, so that it can be loaded if it is not statically - linked. (Clemens Hintze, Matthias Klose)

    - -
  • -
  • Copied earthris.gif and flagup.bmp files from Tcl distribution to - test directory, just in case they have not been installed. - (Jonathan Kelly)

    - -
  • -
  • Lots of improvements to the documentation and documenting recent - changes.

    - -
-

16 October 1997

- -
  • Modified Pmw.Balloon and Pmw.ComboBox to work around a bug in the - Windows95 version of Tk which caused the popup windows to appear - in the wrong place. (Fredrik Lundh and Jerome Gay)

    - -
  • -
  • Added Pmw.maxfontwidth() function. (Rob Pearson)

    - -
-

24 October 1997

- -
  • Changed PmwBase._reporterror to handle the class exceptions of - python 1.5. (Case Roole)

    - -
-

29 October 1997

- -
  • Fixed a bug in forwardmethods() function which occurred if the - toClass class had a method called type.

    - -
-

7 November 1997

- -
  • Changed tests/Test._getErrorValue to handle the class exceptions of - python 1.5. (Michael McLay)

    - -
  • -
  • Changed bug fix in forwardmethods() function to use the - exec execString in d construct. (Guido van Rossum)

    - -
  • -
  • Can now use Pmw.MegaArchetype as a base class just to get option - handling; it will not create the hull component unless requested. - Moved __str__() and interior() methods from Pmw.MegaToplevel and - Pmw.MegaWidget to Pmw.MegaArchetype class.

    - -
-

10 November 1997

- -
  • Added textclass option to Pmw.ScrolledText and listboxclass - option for Pmw.ScrolledListBox to allow embedding of custom - widgets.

    - -
  • -
  • Added Mitch Chapman's FontText module to the demos directory - and used it to display the demo source code in color.

    - -
  • -
  • Added two notebook megawwidgets, Pmw.NoteBookR and Pmw.NoteBookS. - (Case Roole and Joe Saltiel)

    - -
  • -
  • Added Pmw.ScrolledCanvas megawidget. (Joe Saltiel)

    - -
  • -
  • Added Pmw.TreeBrowse megawidget. (Michael McLay)

    - -
  • -
  • Added Pmw.Group megawidget and modified to use grid() instead - of pack(). (Case Roole)

    - -
  • -
  • Release of version 0.5

    - -
-

12 November 1997

- -
  • Added pyclass option to components and removed textclass - option from Pmw.ScrolledText and listboxclass option from - Pmw.ScrolledListBox. (Suggested by Shen Wang)

    - -
  • -
  • Added label component to Pmw.ButtonBox megawidget.

    - -
  • -
  • Fixed mis-spelling of PmwTreeBrowse in Pmw.py.

    - -
  • -
  • Release of version 0.5.1

    - -
-

5 December 1997

- -
  • The pyclass option can now be None. If so, createcomponent - returns None.

    - -
  • -
  • Removed tagtype option from Pmw.Group. Can now use the more - general tag_pyclass instead.

    - -
  • -
  • Added tcl call to load {} Blt when testing for presence of Blt.

    - -
  • -
  • Added julian and papal options to Pmw.ymdtojulian and - Pmw.juliantoymd functions and made sure divisions give the same - result as C even when operands are negative.

    - -
  • -
  • Exported ymdtojulian and juliantoymd functions.

    - -
  • -
  • Fixed bug in activate method. Did not prepend TclError with Tkinter.

    - -
  • -
  • When the Blt busy hold command is called from showbusycursor, the - bindtags on the busy window are set so that no events cause - callbacks to occur for the toplevel or all bindings. Also, while - a busy window is up, the focus is changed to the busy window so - that no keyboard events are accepted. This fixes a bug where the - Tkinter._nametowidget function could crash with a KeyError: _Busy - if there was a binding on a toplevel window and the mouse - was pressed while the busy cursor was up.

    - -
-

9 December 1997

- -
  • Fixed bug in Pmw.datestringtojdn() when dealing with century year, - such as 2000.

    - -
-

10 December 1997

- -
  • Added where option to Pmw.ScrolledText.importfile(). (Graham - Matthews)

    - -
-

16 December 1997

- -
  • Modified Pmw.RadioSelect and Pmw.ButtonBox so that you can no - longer index their buttons using regular expressions. This - feature seemed to have little use and caused problems with buttons - labeled for example a* and b*. (Problem reported by Rob - Hooft)

    - -
  • -
  • Added updateFunction option to Pmw.busycallback(). If set, the - function will be called just after the command given to - Pmw.busycallback(). If the function is set the Tkinter update() - method, then this will clear any events that may have occurred - while the command was executing.

    - -
-

30 December 1997

- -
  • Changed ymdtojulian and juliantoymd functions to jdntoymd and - ymdtojdn, because the meaning of "julian" is ambiguous, whereas - the meaning of "Julian Day Number" is not (maybe).

    - -
  • -
  • Converted Pmw to use python 1.5 package mechanism. (Michael McLay - and Case Roole)

    - -
  • -
  • Removed Pmw.py and PmwLazy files. Added __init__.py, PmwLoader.py - and Pmw.def files. (Case Roole)

    - -
  • -
  • Applications can now specify at runtime which version of Pmw to - use and also which alpha versions, if any. (Case Roole)

    - -
  • -
  • Modified Pmw code for the version of Tkinter released with python - 1.5.

    - -
  • -
  • Release of version 0.6

    - -
-

5 January 1998

- -
  • Fixed alpha version handling so that alpha versions do not have to - supply PmwBase.py and PmwUtils.py. (Case Roole)

    - -
  • -
  • Added example alpha directory and documentation. (Case Roole)

    - -
-

7 January 1998

- -
  • Added selectmode option to Pmw.RadioSelect megawidget. (Roman - Sulzhyk)

    - -
  • -
  • Added some changes to Pmw.ScrolledCanvas to get around some bugs. - (Joe Saltiel)

    - -
  • -
  • Release of version 0.6.1

    - -
-

8 January 1998

- -
  • Added some more changes to Pmw.ScrolledCanvas. (from Joe Saltiel)

    - -
-

12 January 1998

- -
  • Added Pmw.OptionMenu megawidget. (Roman Sulzhyk)

    - -
-

20 February 1998

- -
  • Added new Pmw.MenuBar features to delete menus and menuitems, - enable and disable menu bar and to add cascade menus. (Rob Pearson)

    - -
  • -
  • Added extra arguments to Pmw.Color.spectrum for more control over - color choice.

    - -
-

23 February 1998

- -
  • Added canvasbind() method to Pmw.Balloon.

    - -
  • -
  • Fixed demos/All.py so that it will correctly determine which Pmw - version to use even if it is in a directory symlinked to the demos - directory.

    - -
  • -
  • Removed "import DemoVersion" from all demos, except All.py, so - that they will work unchanged when copied outside of the Pmw - distribution.

    - -
  • -
  • Release of version 0.6.2

    - -
-

26 February 1998

- -
  • Fixed PmwLoader so that it works on Macintoshes. (Jack Jansen)

    - -
-

2 March 1998

- -
  • Fixed PmwBase and PmwBlt so that an attempt is made to dynamically - load Blt before it is used. Previously only attempted to load Blt - when calling showbusycursor.

    - -
-

16 March 1998

- -
  • Added hulldestroyed() method.

    - -
  • -
  • Modified displayerror() function to use value given to - reporterrorstofile() if it is set.

    - -
  • -
  • Fixed bug in Pmw.EntryField which occurred when the command - option destroyed the megawidget.

    - -
  • -
  • Pmw.EntryField invoke method now passes on the value returned by - the command function.

    - -
-

3 April 1998

- -
  • Added Pmw.ScrolledFrame megawidget. (Joe Saltiel)

    - -
  • -
  • Color.rgb2hsi() now uses the built-in min() and max() functions.

    - -
-

20 April 1998

- -
  • Moved time and date functions from PmwCounter.py to new file, - PmwTimeFuncs.py.

    - -
  • -
  • Added optional separator argument to timestringtoseconds and - datestringtojdn functions. These functions are now stricter - when checking if a string is a valid date or time. For example, - it now checks for correct day in month, month in year, etc. These - changes also affect the Pmw.Counter date and time validators.

    - -
  • -
  • The datestringtojdn function now accepts all combinations of - 'd', 'm', 'y' as format string.

    - -
  • -
  • Moved functions to bottom of file and class to top of file in - PmwEntryField.py and PmwCounter.py.

    - -
  • -
  • The validation for Pmw.EntryField integer, hexadecimal and - real types now use string.atol or string.atof rather than - regular expressions.

    - -
  • -
  • The validation for the Pmw.EntryField real type accepts a - separator argument, for those who prefer a comma instead of a - full stop/period/point as the decimal dividing symbol.

    - -
  • -
  • The Pmw.EntryField time* and date_* validators have been - removed. The functionality can be replaced by using the new - time and date validators with min and max fields.

    - -
  • -
  • The Pmw.EntryField maxwidth option has been removed. The - functionality can be replaced by using the max field of the - validator.

    - -
  • -
  • Added an extravalidators option to Pmw.EntryField. This allows - new types of validation to be added, particularly in classes - derived from Pmw.EntryField. It also allows the use of different - names for the same validation, by using aliases. Added - SpecialEntry demo to show extravalidators option, based on work - by Joachim Schmitz.

    - -
  • -
  • Fixed a bug in Pmw.EntryField when combining use of value and - entry_textvariable options.

    - -
  • -
  • The Pmw.EntryField validate option now also accepts a dictionary - to handle minimum and maximum validation and to allow the passing - of other arguments to the validating functions, such as date, time - and number formats and separators.

    - -
  • -
  • Fixed bug in Pmw.EntryField where the entry would scroll to the - start of the text if an invalid character was typed.

    - -
  • -
  • Added checkentry() method to Pmw.EntryField, so that it can be - updated if the entry widget is tied to a textvariable.

    - -
-

10 May 1998

- -
  • The activate() method now takes a geometry option to allow more - flexible positioning of the modal dialog.

    - -
  • -
  • Fixed rarely occurring bug in deactivate() method if it is called - (perhaps from a timer) during the call to wait_visibility() in the - activate() method. This bug used to generate an error and the - application would not exit properly.

    - -
  • -
  • Fixed another rarely occurring bug in deactivate() method if it is - called while another application has the grab.

    - -
  • -
  • Removed "sys.exc_traceback = None" for except clauses which used - to be required by python 1.4 so that references to objects in the - stack trace would not be left.

    - -
  • -
  • Now uses sys.exc_info() function when displaying exception - traceback.

    - -
  • -
  • The state option of Pmw.Balloon and the orient option of - several others now generate an exception if they have a bad value.

    - -
  • -
  • Added a deactivatecommand option to Pmw.MegaToplevel which can be - used, for example, to cancel timers.

    - -
  • -
  • Made changes to Pmw.Counter so that the entry display continuously - changes when arrow key presses are repeated quickly.

    - -
  • -
  • Made changes to Pmw.Counter so that the insertion cursor is maintained - while counting and the entry scrolls to the end if the value is long.

    - -
  • -
  • Pmw.Counter now behaves correctly when counting past the maximum - and minimum values of the EntryField.

    - -
-

28 May 1998

- -
  • Made all Pmw.EntryField standard validators publicly available - as Pmw.numericvalidator, etc.

    - -
  • -
  • Now uses faster string.replace() instead of regsub.gsub() when - applicable.

    - -
  • -
  • If the balloonHelp argument of the Pmw.Balloon bind methods is - None, no balloon is displayed.

    - -
  • -
  • Merged the code from the PmwUtils module (forwardmethods()) into - PmwBase, since it was always used, was used nowhere else, and made - freezing a little more complicated.

    - -
  • -
  • Added a short delay between calling Tkinter bell() method (sounds nicer).

    - -
  • -
  • The functions datestringtojdn() and timestringtoseconds() now - return ValueError on invalid input.

    - -
  • -
  • Created bundlepmw.py, to help when freezing in Pmw. Placed in bin - directory.

    - -
-

29 May 1998

- -
  • Fixed rare bug in Pmw.Counter which occured if the counter was - unmapped while the mouse button was held down over an arrow button.

    - -
  • -
  • Created contrib directory and placed PmwVerticalGuage.py in it. - (Chris Wright)

    - -
  • -
  • Patched PmwNoteBookR.py. (Siggy Brentrup)

    - -
  • -
  • Added addoptions() method to Pmw.MegaArchetype class. (Dieter Maurer)

    - -
  • -
  • By default, MenuBar creates hotkeys for menus and menu items for - keyboard traversal. Added traversSpec argument to MenuBar add - methods. (Michael McLay)

    - -
-

31 May 1998

- -
  • Cleaned up bbox() methods in Pmw.ScrolledCanvas and - Pmw.ScrolledListBox.

    - -
  • -
  • The createcomponent() method now disallows the creation of - component names containing an underscore, since the query - functions would not be able to find them.

    - -
-

2 June 1998

- -
  • Release of version 0.7

    - -
-

3 June 1998

- -
  • Moved Pmw.TreeBrowse megawidget to contrib directory.

    - -
-

17 June 1998

- -
  • Added PmwFullTimeCounter.py to contrib directory (Daniel Michelson)

    - -
-

1 July 1998

- -
  • Changed mispelt file PmwVerticalGuage.py to PmwVerticalGauge.py - in contrib directory.

    - -
-

7 July 1998

- -
  • Fixed bug in Pmw.Counter real datatype. Sometimes incorrectly - counted negative decimal fractions. (Reported by David Ascher)

    - -
-

12 July 1998

- -
  • The format argument of Pmw.datestringtojdn() now defaults to - 'ymd'.

    - -
  • -
  • Removed Tkinter_test.py from tests since it does not test any Pmw - functionality (only Tkinter) and it fails under MS-Windows 95.

    - -
-

23 August 1998

- -
  • Changed several exception types to be more consistent.

    - -
  • -
  • Made the interface to Pmw.Blt.Vector more like the builtin python - list type.

    - -
  • -
  • It is no longer an error to call Pmw.setversion() or - Pmw.setalphaversions() after initialisation, as long as the - requested version matches the actual version.

    - -
  • -
  • Fixed Pmw.NoteBookR so that it behaves better when the - highlightthickness is changed.

    - -
  • -
  • The setyearpivot() function now returns a tuple containing the old - values of pivot and century.

    - -
  • -
  • Added PmwFileDialog.py to contrib directory (Rob Hooft)

    - -
  • -
  • Modified demos so that full tracebacks are displayed if an error - occurs when importing a module.

    - -
  • -
  • Removed justify() method from Pmw.ScrolledListBox, since it is - just a wrapper around the xview and yview methods of the listbox. - Also, it was not a permanent justification, as the name implied.

    - -
-

20 September 1998

- -
  • Changed implementation of Pmw.ScrolledCanvas.

    - -
  • -
  • Added borderframe option to Pmw.ScrolledText and Pmw.ScrolledCanvas.

    - -
-

18 October 1998

- -
  • Major overhaul of all scrolled widgets. Modified all to use - similar structure, given the peculiarities of each. Fixed several - subtle bugs.

    - -
  • -
  • Pmw.ScrolledFrame: now uses a frame positioned within a clipping - frame using the place geometry manager. Added borderframe, - horizflex, horizfraction, usehullsize, vertflex, vertfraction - options. Added reposition() method. Removed getFrame() method; - use interior() method instead.

    - -
  • -
  • Pmw.ScrolledListBox: added usehullsize option.

    - -
  • -
  • Pmw.ScrolledText: added borderframe and usehullsize options.

    - -
  • -
  • Pmw.ScrolledCanvas: simplified widget structure. Added - borderframe, canvasmargin, scrollmargin and usehullsize options. - Added label.

    - -
  • -
  • Modified Pmw.OptionMenu to use standard widgets rather than call - tcl procedure. Added initialitem option. Now handles - menubutton_textvariable component option correctly.

    - -
-

1 November 1998

- -
  • Documented more Pmw functions and Pmw.ComboBox.

    - -
-

15 November 1998

- -
  • Fixed some bugs, cleaned up code and wrote documentation for - Pmw.Group. Removed ringpadx and ringpady options, since this - functionality is more generally available by padding the - megawidget itself and by padding the children of the megawidget. - Modified Pmw.aligngrouptags so that it takes into account the - borderwidth and highlightthickness of the ring and so that it - works when there is no tag widget. Added tagindent option.

    - -
-

18 November 1998

- -
  • Renamed canvasbind() and canvasunbind() methods of Pmw.Balloon to - tagbind() and tagunbind() and modified so that they work with both - Tkinter.Canvas items and Tkinter.Text tagged items.

    - -
-

19 November 1998

- -
  • Added havebltbusy() method to Pmw.Blt. (Robin Becker)

    - -
-

21 November 1998

- -
  • Modified contrib/PmwFileDialog.py so that when a file is selected - with the mouse, the highlight (in the file list) persists and the - file list does not scroll to the top. (Rob Hooft)

    - -
  • -
  • Modified Pmw.Balloon so that it can be bound to a tag associated - with several Canvas or Text items. (Magnus Kessler)

    - -
-

21 November 1998

- -
  • Cleaned up appearance and colors of Pmw.NoteBookR tabs. (Georg - Mischler)

    - -
  • -
  • Added buttontype option to Pmw.RadioSelect to support - radiobuttons and checkbuttons. (Georg Mischler)

    - -
-

23 November 1998

- -
  • Updated usage of bind_class(tag) due to change in return value - in Tkinter module in python 1.5.2. (Magnus Kessler, Fredrik Lundh)

    - -
  • -
  • The default time displayed in Pmw.TimeCounter is now the current - local time, not GMT as before.

    - -
  • -
  • The times displayed in the Counter demonstration are now the - current local time, not GMT as before.

    - -
-

7 December 1998

- -
  • Modified Pmw.ComboBox to take advantage of the fix to the Tkinter - bind() method callback handling of Event.widget in python - 1.5.2. It works even if the selectioncommand destroys the - combobox. For simple comboboxes, the invoke() method now returns - the return value of the selectioncommand.

    - -
  • -
  • Modified Pmw.EntryField to take advantage of the fix to the - Tkinter bind() method callback handling of Event.widget in - python 1.5.2. It works even if a user-supplied callback - (command, invalidcommand, validator or stringtovalue) - destroys the entryfield. Cleans up correctly when destroyed. The - invoke() method now returns the return value of the command.

    - -
  • -
  • The invoke() method of Pmw.TimeCounter now returns the return - value of the command.

    - -
  • -
  • Modified Pmw.ButtonBox to use the new (in Tk8.0) default option - of the Tkinter Button widget instead of a separate frame. - Changed default padding to be more compact. Removed "ring" frame - component and "ringborderwidth", "ringpadx" and "ringpady" - options. (Georg Mischler)

    - -
  • -
  • Changed 'pmw1' fontScheme to set default fonts only when running - under posix, since the default fonts on other systems look better.

    - -
-

10 December 1998

- -
  • Release of version 0.8

    - -
-

20 January 1999

- -
  • Added master option to Pmw.MegaToplevel and removed master - argument from the activate method.

    - -
  • -
  • Replaced rand module in demos with a simple random number - generator (since rand is not built-in on all versions of python).

    - -
-

22 February 1999

- -
  • Modified __init__.py so that it only accepts directories whose - names begin with Pmw_M_N and which have a /lib/PmwLoader.py/ - file.

    - -
-

13 May 1999

- -
  • Changed Pmw.ScrolledCanvas, Pmw.ScrolledText and Pmw.ScrolledListBox - to speed up scrolling if the scrollmodes are not both dynamic.

    - -
  • -
  • Changed busy cursor and activate/deactivate code so that it works - correctly under fast mouse clicking or fast keyboarding (using - accelerators). Also fixed so that grab is correctly restored - after a Pmw.ComboBox popup list is unmapped inside a modal dialog. - (Clemens Hintze)

    - -
  • -
  • Several dialogs now give focus to one of their components (listbox - or entry widget) when activated. (Clemens Hintze)

    - -
  • -
  • Fixed Pmw.ComboBox so that it unposts popup if the combobox is - unmapped and returns grab and focus correctly if destroyed.

    - -
  • -
  • Improved tracetk() output to be more readable. Also displays - nested calls to the Tk mainloop better and shows callbacks from - tcl to python.

    - -
  • -
  • Upgraded Blt support to blt2.4i. Graph widget is not backwards - compatible with blt2.1.

    - -
-

19 May 1999

- -
  • Fixed bug in Pmw.Balloon in placement of balloons over canvas - items when the canvas was scrolled. (Tessa Lau)

    - -
-

20 May 1999

- -
  • Added new Tk event types (new in Tk 8.0 and 8.0.5) to PmwBase - error display method. Also added check for unknown event types to - safeguard against future changes. (Magnus Kessler)

    - -
  • -
  • Added exclude argument to showbusycursor(). (Rob Hooft)

    - -
-

1 June 1999

- -
  • Added wrappers for Blt Stripchart and Tabset widgets. (Nick Belshaw)

    - -
  • -
  • Changed createcomponent() so that arguments to the constructor of - the component can now be specified as either multiple trailing - arguments to createcomponent() or as a single tuple argument.

    - -
-

7 June 1999

- -
  • Added call to update_idletasks() in Pmw.ScrolledCanvas, - Pmw.ScrolledFrame, Pmw.ScrolledText and Pmw.ScrolledListBox to - avoid endless mapping/unmapping of two dynamic scrollbars when the - window is first mapped and only one scrollbar is needed. - (Reported by Mark C Favas, solution suggested by Dieter Maurer.)

    - -
-

10 June 1999

- -
  • Fixed bug in bundlepmw.py when called with -noblt option. - (Reported by Kevin O'Connor)

    - -
  • -
  • Pmw.ComboBox now unposts the dropdown listbox before the selection - callback is invoked, to avoid problems when the callback takes a - long time to run. (Reported by Randall Hopper)

    - -
-

11 June 1999

- -
  • Release of version 0.8.1

    - -
-

29 June 1999

- -
  • PmwMessageBar.message() now replaces newlines with spaces before - displaying message. Also applies to helpmessage().

    - -
-

2 July 1999

- -
  • Improved toplevel window positioning under NT, and stopped most of - the ugly flashing.

    - -
-

5 July 1999

- -
  • The pmw1 fontScheme is now supported under NT, as is the size - option to Pmw.initialise().

    - -
-

6 July 1999

- -
  • Changed the names of positional arguments in the following - methods, so that they have less chance of conflicting with keyword - arguments: MegaArchetype.createcomponent(), ButtonBox.insert(), - ButtonBox.add(), MenuBar.addcascademenu(), MenuBar.addmenuitem() - and RadioSelect.add().

    - -
-

9 July 1999

- -
  • Added images and example code to the megawidget reference manuals. - (Suggested by Joerg Henrichs)

    - -
  • -
  • Fixed showbusycursor() under NT. It now calls update() instead of - update_idletasks() to force display of cursor. (Solution - suggested by George Howlett)

    - -
  • -
  • Improved display of arrows in ComboBox, Counter and TimeCounter.

    - -
-

16 July 1999

- -
  • Removed Pmw.maxfontwidth() function, since better functionality is - now supplied by the Tk "font measure" command.

    - -
  • -
  • Removed Pmw.fontexists() function, since in Tk8.0 all fonts exist.

    - -
-

28 July 1999

- -
  • Fixed bug in date counter with separator other than '/' and time - counter with separator other than ':'. (David M. Cooke, Alan - Robinson)

    - -
  • -
  • Under NT, the font named 'fixed' is not fixed width, so added - alias from 'Fixed' to 'Courier'.

    - -
  • -
  • Changed the bind() and tagbind() methods of Pmw.Balloon to - remove a potential memory leak. The methods now store the - funcids of the callback functions, so that if the same widget or - tag is bound twice, the balloon can remove the old bindings. - (Peter Stoehr)

    - -
  • -
  • Changed NoteBookR so that lowercmd, creatcmd and raisecmd are - called in that order when a page is selected. Also fixed bug - which always raised page 0 when notebook is resized. (Scott - Evans, Charles Choi)

    - -
-

1 August 1999

- -
  • Added dynamicGroups argument to defineoptions() method and - modified ButtonBox, MenuBar, PanedWidget, RadioSelect to register - their dynamic groups.

    - -
  • -
  • Pmw.initialise() can now be called multiple times, with - different root arguments, but only sequentially. Pmw does not - (yet) support multiple simultaneous interpreters. Modified - Pmw.EntryField so that it recreates class bindings when - Tkinter.root changes.

    - -
-

4 August 1999

- -
  • Added relmouse option to Pmw.Balloon. Fixed Pmw.Balloon so that - the balloon is not displayed off-screen. (Tessa Lau)

    - -
-

16 August 1999

- -
  • Added disableKeyboardWhileBusy option to initialise(). To ignore - keyboard input while displaying the busy cursor, Pmw sets the - focus for each toplevel window to the Blt busy window. However, - under NT, this causes each window to be raised. If this is not - acceptable, programs running on NT can request show/hidebusycursor - not to ignore keyboard input.

    - -
-

25 August 1999

- -
  • Added Pmw.Blt.busy_forget() and used it in Pmw.hidebusycursor() - when running under NT. There is a bug in the Blt busy release - command under NT where it sometimes fails to display the busy - cursor. Using busy forget avoids the problem.

    - -
-

27 September 1999

- -
  • Added busyCursorName option to Pmw.initialise() and added cursor - argument to Pmw.Blt.busy_hold(). (Mark Favas)

    - -
-

20 October 1999

- -
  • Replaced Pmw.NoteBookR and Pmw.NoteBookS with completely rewritten - Pmw.NoteBook.

    - -
  • -
  • Renamed Pmw.OptionMenu.get() to Pmw.OptionMenu.getcurselection() - and Pmw.PanedWidget.remove() to Pmw.PanedWidget.delete(), to be - more consistent with other megawidgets.

    - -
  • -
  • The index() method of several megawidgets now use Pmw.END, - Pmw.SELECT and Pmw.DEFAULT instead of strings, since these may - conflict with component names.

    - -
  • -
  • Pmw.OptionMenu.index() now uses Pmw.SELECT to return - index of the currently selected menu item, rather than None.

    - -
  • -
  • Added destroy() method to Pmw.MegaArchetype to handle cleaning up - of _hullToMegaWidget mapping.

    - -
  • -
  • Removed exclude argument from Pmw.showbusycursor() and added - Pmw.excludefrombusycursor() function instead. (Rob Hooft)

    - -
  • -
  • Fixed several bugs for Windows NT.

    - -
  • -
  • Added Pmw.ButtonBox.button() and Pmw.RadioSelect.button().

    - -
  • -
  • Added Pmw.Color.bordercolors().

    - -
-

21 October 1999

- -
  • Release of version 0.8.3. (Version 0.8.2 was not released.)

    - -
-

30 October 1999

- -
  • Added arrownavigation option and previouspage() and nextpage() - methods to Pmw.NoteBook. (Peter Funk)

    - -
  • -
  • Renamed the setnaturalpagesize() method of Pmw.NoteBook to - setnaturalsize() to be consistent with Pmw.PanedWidget.

    - -
  • -
  • Changed Pmw.excludefrombusycursor() to Pmw.setbusycursorattributes(). - Removed busyCursorName option from Pmw.initialise() and added - cursorName attribute to Pmw.setbusycursorattributes().

    - -
  • -
  • Added documentation source and build scripts to ftp site.

    - -
-

6 November 1999

- -
  • Fixed memory leaks when destroying megawidgets. Added automatic - check for memory leak to test script used by all tests. - Pmw.initialise() now uses a hook into Tkinter.Widget.destroy - rather than Tkinter.Frame.destroy to handle the case of - Pmw.NoteBook being destroyed (since the notebook hull is a canvas - and not a frame). Window manager delete protocol callbacks are - now cleaned up. Pmw.ScrolledListBox event bindings now do not - leak. (Reported by Jeff Weeks)

    - -
  • -
  • Removed key bindings for Pmw.ScrolledListBox except space and return keys.

    - -
-

20 November 1999

- -
  • Fixed bug in Pmw.Balloon when the canvas or text item that - triggered the balloon is deleted before the balloon is displayed - by the initwait timer. (Magnus Kessler)

    - -
  • -
  • Added 'nograb' to globalMode option of activate() method. (Rob Hooft)

    - -
  • -
  • Added __setitem__ method to Pmw.MegaArchetype, so that megawidget - options can be now set using megawidget['option'] = value style. - (Oliver Gathmann)

    - -
-

27 December 1999

- -
  • Converted from regex module to re module, since regex is not - implemented for Jpython. (Finn Bock)

    - -
-

30 December 1999

- -
  • Added clear() method to Pmw.ScrolledListBox (suggested by Carson - Fenimore).

    - -
-

15 March 2000

- -
  • Fixed problem in PmwBase when deleting windows that were created - before Pmw was initialised (such as splash windows displayed while - the application is coming up). (Mark Favas)

    - -
  • -
  • Added splash window to Pmw demo. (Mark Favas)

    - -
-

30 April 2000

- -
  • Added Pmw.MainMenuBar megawidget, which uses the menubar feature - of Tk to provide platform specific menu bars.

    - -
  • -
  • Fixed Pmw.Counter and several other megawidgets so that certain - hull constructor keywords, such as hull_relief and - hull_borderwidth, are not overriden in the constructor.

    - -
  • -
  • Thanks to Peter Cashin for his help on how to unpack gzipped tar - files on Microsoft Windows operating systems.

    - -
  • -
  • Added Pmw.HistoryText megawidget. This can be used as the basis - of an interactive text-based database query gui. It maintains a - history of each query and allows editing of prior queries.

    - -
  • -
  • Added references to the Pmw.Blt.Graph documentation by Bjørn Ove - Thue and Hans Petter Langtangen.

    - -
  • -
  • Searched for and fixed memory leaks. There are no more known memory leaks.

    -
    • For commands created by bind: these are cleaned up by Tkinter - when the widget is destroyed. Pmw.Balloon, which repeatedly - binds to the same widget (or item, using tag_bind), has been - fixed by passing the old command into the call to unbind or - tag_unbind which is cleaned up by Tkinter.

      - -
    • -
    • For commands created by class_bind: most class bindings are - only created once (per Tk interpreter) and so do not need to be - cleaned up. The exception is adding and deleting menus in - Pmw.MenuBar. This has now been fixed to clean up class_bind - commands when deleting menus.

      - -
    • -
    • Callbacks given to command, xscrollcommand, yscrollcommand, etc - options are cleaned up by Tkinter when the widget is destroyed. - Cases where Pmw repeatedly sets such options have now been fixed - to clean up the old command before configuring the new one. - These are in setitems in Pmw.OptionMenu and when modifying the - scrollcommand options in several of the scrolled widgets.

      - -
    • -
    • Pmw now cleans up calbacks it registers with the - WM_DELETE_WINDOW protocol for toplevel windows.

      - -
    - -
  • -
  • Added ManualTests.py to tests directory for tests which need to be - run by hand.

    - -
-

12 May 2000

- -
  • Release of version 0.8.4.

    - -
-

17 May 2000

- -
  • Modified Pmw.Counter to deal with the presence (python up to - 1.5.2) or absence (python 1.6 and after) of an L at the end of - the ascii representation of a long. (Mark Favas)

    - -
  • -
  • Fixed bug in Pmw.ScrolledFrame when given invalid flex options. - (Stephen D Evans)

    - -
-

23 January 2001

- -
  • Moved Pmw home from www.dscpl.com.au to pmw.sourceforge.net.

    - -
  • -
  • Added pmw2 font scheme, since the font used for balloon text with - pmw1 is too small on Linux.

    - -
  • -
  • Removed syntax coloring from code window in demos. It did not - look good and the pattern matching was not always correct.

    - -
  • -
  • Changed font size used for demos to 12 for Unix, since 14 looked - too big under Linux.

    - -
  • -
  • Minor fixes to tests for Tk 8.3.

    - -
-

8 February 2001

- -
  • Release of version 0.8.5

    - -
-

18 February 2001

- -
  • Added xview() and yview() methods to Pmw.ScrolledFrame (suggested - by Christer Fernstrom).

    - -
  • -
  • Made tktrace output more readable.

    - -
  • -
  • Added noBltBusy option to Pmw.initialise.

    - -
  • -
  • Fixed bug where combobox dropdown list could stay mapped after - entryfield was unmapped.

    - -
  • -
  • Improved scrolling in scrolled frame.

    - -
-

21 February 2001

- -
  • Fixed tests for recent version of Blt graph (reported by - Venkatesh Prasad Ranganath).

    - -
  • -
  • Fixed problem in Pmw.ScrolledFrame in python 1.5 - string.atof - does not accept a number as argument, but it does in python 2.0.

    - -
-

24 February 2001

- -
  • Modified Pmw.OptionMenu documentation to specify that list - elements must be strings (problem reported by Guy Middleton).

    - -
  • -
  • Fixed bug in Pmw.OptionMenu where the wrong item was displayed - when an integer item in the menu was selected with the mouse (even - though items should be strings).

    - -
  • -
  • Added work around to Pmw.ScrolledFrame for bug in Tk when - retrieving value from scrollbars soon after creation.

    - -
-

27 February 2001

- -
  • Added HistoryText and MainMenuBar to bin/bundlepmw.py - accidently - left out.

    - -
-

13 April 2001

- -
  • Changed default foreground (text) of Pmw.Balloown to black. (Eric - Pettersen)

    - -
  • -
  • Added default fontScheme to Pmw.initialise().

    - -
  • -
  • Added -fontscheme and -fontsize options to demo.

    - -
  • -
  • Added updatelayout() to Pmw.PanedWidget for use when dynamically - adding and deleting panes. (G Cash)

    - -
  • -
  • Added move() to Pmw.PanedWidget to move panes. (G Cash)

    - -
-

20 April 2001

- -
  • Fixed bug in Pmw.Balloon where the balloon would reappear if the - mouse button was pressed down inside a widget and then, while the - mouse button was being held down, the mouse was moved outside of - the widget and then moved back over the widget.

    - -
  • -
  • Fixed bug in Pmw.Balloon when destroying widgets while the balloon - was up. In this case, the balloon remained displayed even though - the widget had been destroyed. (Reported by Stefan Schone.)

    - -
  • -
  • Fixed bug in Pmw.Balloon when destroying widgets during the - initwait period. In this case, an error occurred when the - initwait timer went off when it tried to access the destroyed - widget. (Reported by Stefan Schone.)

    - -
  • -
  • Fixed Pmw.Balloon so that unbinding withdraws the balloon if - the widget being unbound is the widget which triggered the balloon.

    - -
  • -
  • Modified Pmw.Balloon so that when deleting a canvas or text item, - tagunbind() can be called which will withdraw the balloon if it - was triggered by the item. Unfortunately this can not be - automated as for widgets since Tk does not support <Destroy> - bindings on canvas or text items, so there is no way that - Pmw.Balloon can be notified of the deletion of an item.

    - -
  • -
  • Updated tests for python 2.1.

    - -
-

21 May 2001

- -
  • Pmw.OptionMenu now defaults to taking focus (on <Tab> key).

    - -
-

15 May 2002

- -
  • Fixed bug in Pmw.Graph.element_closest() where element names - should follow option arguments. (Val Shkolnikov)

    - -
-

5 June 2002

- -
  • Added command option to Pmw.TimeCounter.

    - -
  • -
  • Finished all documentation.

    - -
  • -
  • Fixed bug in documentation creation script which, since python - 2.0, printed default values of real options (such as the - horizfraction option of Pmw.ScrolledFrame) with too many digits - (such as 0.050000000000000003).

    - -
  • -
  • Fixed bug in setgeometryanddeiconify for cygwin python (John - Williams).

    - -
-

4 July 2002

- -
  • Added master option to MegaToplevel.show()

    - -
  • -
  • Improved MegaToplevel.show() so that tkraise is not called - unecessarily, thus avoiding 2 second delay under certain window - managers (such as sawfish) in most circumstances. There are still - problems with the Enlightenment window manager.

    - -
-

18 August 2002

- -
  • Added columnheader, rowheader and rowcolumnheader components to - Pmw.ScrolledText. (Rob Pearson)

    - -
  • -
  • Added getvalue() and setvalue() methods to several megawidgets - as a consistent way to set and get the user-modifiable state. - (Cimarron Taylor)

    - -
  • -
  • Made sub-classing simpler when no new options or components are - being created. A sub-class of a Pmw megawidget does not need to - have an __init__() method. If it does, it does not need to call - defineoptions(). Also, initialiseoptions() no longer requires an - argument (for backwards compatibility it may take an argument, but - it is ignored).

    - -
-

24 August 2002

- -
  • Release of version 1.0

    - -
-

26 August 2002

- -
  • Minor fixes.

    - -
  • -
  • Release of version 1.1

    - -
-

4 September 2002

- -
  • Added collapse, expand and toggle methods and collapsedsize option - to Pmw.Group. (Rob Pearson)

    - -
-

5 September 2002

- -
  • Added sticky option to several megawidgets.

    - -
-

18 September 2002

- -
  • Added appendtext method to Pmw.ScrolledText. (Graham Dumpleton)

    - -
-

26 September 2002

- -
  • Modified Pmw.ScrolledListBox to call dblclickcommand on - <Double-ButtonRelease-1> rather than <Double-ButtonPress-1> which - caused problems if the double button press unmapped the - ScrolledListBox. In this case, the second button release of the - double click is given to another widget. (Eric Pettersen)

    - -
-

14 June 2003

- -
  • Changes for python 2.3 and Tcl/Tk 8.4.2:

    -
    • Wrapped calls to cget() for Tkinter widgets in a call to - str(). Before python 2.3 cget() always returned a string. - Under python 2.3, Tkinter sometimes returns non-string values - (such as int, or Tcl_Obj). Made similar change when using - configure() to retrieve values. Fixed tests to handle integer - and Tcl_Obj return value from cget(). (Charles Doutriaux)

      - -
    • -
    • Fixed uses of col field of grid command. Must use full - column under Tcl/Tk 8.4.2.

      - -
    • -
    • Fixed PmwEntryField.py, PmwMessageBar.py, PmwScrolledField.py - so that the text is not greyed out under Tcl/Tk 8.4.2. This - was caused by a change in behaviour of the 'disabled' state - and the Tk entry widget. Now use new 'readonly' state for - Tcl/Tk 8.4.2.

      - -
    • -
    • Test script now ignores Blt test for Tcl/Tk 8.4.2, since it - causes Blt 2.4z to core dump. Blt needs to be fixed.

      - -
    • -
    • Changed Dialog test to work around problem caused by Tk 8.4.2 - enforcing transient behaviour of windows. When activate() is - called on a dialog whose parent is withdrawn, then the dialog - window is made transient. Under old versions of Tk, the - transient dialog was displayed, but under 8.4.2 the dialog is - not displayed. Work around is to deiconify parent of dialog.

      - -
    - -
-

5 August 2003

- -
  • Release of version 1.2

    - -
-

- - - -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/copyright.html b/Pmw/Pmw_1_2/doc/copyright.html deleted file mode 100644 index 0f5e7e8a..00000000 --- a/Pmw/Pmw_1_2/doc/copyright.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - Pmw copyright - - - - -

Pmw copyright

- -

- Copyright 1997-1999 Telstra Corporation Limited, Australia - Copyright 2000-2002 Really Good Software Pty Ltd, Australia

- -

Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, copy, - modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions:

- -

The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software.

- -

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - DEALINGS IN THE SOFTWARE. -

- - - -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/counter1.gif b/Pmw/Pmw_1_2/doc/counter1.gif deleted file mode 100644 index 64efe355359da3e44ac9458be5474d0c238d5166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 541 zcmV+&0^y*V)}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kH};a zz-&67(5Q4uty-_xtai)oQaJ!nU`#HX&*-#z&2GEj@c0`<0E^}LynfH`tLb(FUJ7Fb zhKGoWii?bmj*pO$l9QB0xav`V-T zOsldNx33wooffyD7OS~Hy8)QP6~BSK#Gtmo63EFu%gwW{(asdb)eOuFXxYlD<4Nu&#v@>FQ f_3PNPYv0bjyZ7(l!;2qJzP$PK=+mpmkpKWYaWWSZ diff --git a/Pmw/Pmw_1_2/doc/counter2.gif b/Pmw/Pmw_1_2/doc/counter2.gif deleted file mode 100644 index be894ed3c2d701622c03a6e1a05bcd227f45108c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1333 zcmV-51y*V)}*y*TU5ySGCqj$~<`XsWJk>%MR-&vdO4fUWO*@BhFc4JRxbkI1A_ zMqE0d(5ST4oLaBgY_F>AdcWWSH%u;@jpMU=&4#7h@VNXfuiMG=yMAxY^Z$TIeu0FA zJcEXbiZ6(Zj*lgckduy*l$V8;n45f>oS$``prdS}As?uzs;jK6t`sw-135bZwzs&s zy1Tr+zQ4f1!o$SH#fP!9G0HZ^&d<=%($mt&Ow2E|9wD{_-rwNi;^XAy=I7|?>g(+7 z>9(gGAq2@Y+8p!)-R}JT{{H|2wgUif7QT7)WZaA4jaz_*r0OUrsDNR=n!I!kRp?iT*>HS!eumFK>XOOWK1P94W1Np69&hcEirN< zfonulm_LmKt;mvSN`*O5gxvWM<1MFP^*MzaRmfCkUsFI-%1C32qbHiq^VpSX*rj4c zq%A9zpiim}_eQdL6{pa+xkPYviMNDL$7K2bI6F4+V3ZkE9%i~rFB)Xy`-*KfGuF+iJI|F(J2c|Qw{cTM+iL{t!bY~R!$xSbzsZR3Hvq-xHk30*NZpSSDJeb@9e3s7VpL_3%JL5^VB{)pk zifUASquo}>+=&Z(a{(@|>m@LaICC)wz zNwm^dB5AdzUW;w2+HT8gx8A-AZn(0JOKz>^zD4XRSFFqK5zD%p3Yt#HiweCy#GCFF zpg{p*8~y&dFNOn85pcZ)OL1_%39s2O6bl3O@DmXqGI0t2mV&RucT~KCz8!BY)5S}8 ztOLk)nA}&$f{;8y#xmHJU5ZSIj0DV((cFX1;kA4O&Mx@(7z48iD7qRqk@H#DB3=aAv_McW40kzK5kp`1|Y2(=S(IC~f)Yd~yakf@s z=k3tm?D1U?-743B@=J2Z7ewG@sY&zE_QV)KGl|kL_&l1-Z{xheExFEWcg;9Ov^OJRa?*IlB4V z)33hu>DxUy8u4ow{Qh|ApAFs@2E^6L2LuFz0fCUfFDwv7vrCx(A(TJh&5wQc!{GfA zSHUPW& - - - - Pmw demonstrations and tests - - - - -

Pmw demonstrations and tests

- -

- -

- -

- Pmw comes with an extensive range of demonstrations and tests. The - demonstrations can be used to get a feel for what is provided by Pmw - and the demonstration code can be viewed to see examples of how to - use Pmw. The tests can be executed to check that there are no - problems with running Pmw in your environment. - -

- -
-

Demonstrations

-

- The Pmw demos directory contains demonstration scripts - showing many of the features of Pmw megawidgets. To view a - comprehensive package of all the demonstrations, including a view of - the source code, run the All.py script. Run - All.py -help for a short description of the script's - options. - -

- All of the demonstrations may also be run separately. Most of the - demonstrations show some of the features of one of the Pmw - megawidgets. For example, to see a demonstration of the ButtonBox - megawidget, change into the demos directory and - run - -

-
-
-
-python ButtonBox.py
-
-
-
- -

- Other demonstrations, which show other features of Pmw include -

-
-
-
-BltGraph.py         demonstrates the Pmw interface to
-                    the BLT graph and vector commands
-BltTabset.py        demonstrates the Pmw interface to
-                    the BLT tabset command
-Colors.py           how to set color schemes
-ConfigClass.py      how to configure the python class
-                    of a megawidger component
-ErrorHandling.py    how Pmw displays run time errors
-                    in a window
-ExampleDemo.py      template for new demonstrations
-Grid.py             the Tkinter Grid geometry manager
-LogicalFont.py      how to use standard values for fonts
-MessageInfo.py      how to extend the Pmw MegaToplevel
-                    class
-NestedDialogs.py    how nested modal dialogs behave
-Resources.py        how to use the option database to
-                    modify Tk widget option defaults
-Resources_Pmw.py    how to use the option database to
-                    modify megawidget option defaults
-ShowBusy.py         demonstrates the Pmw interface to
-                    the BLT busy command
-SpecialEntry.py     deriving from Pmw.EntryField
-Spectrum.py         some of the Pmw color handling
-                    functions
-SpeedTest.py        tests the speed of creating Pmw
-                    megawidgets
-TextDisplay.py      how to extend the Pmw MegaWidget
-                    class
-WidgetDestroy.py    megawidget destruction
-
-
-
- -Creating demonstrations of new megawidgets -
-

-If you create a new megawidget you can create a demonstration for it -by using the file -ExampleDemo.py as a -template. This template allows the demonstration to be run -individually or to be automatically included as part of the -demonstration package All.py. You should take a copy of -the template and name the new file after your megawidget. You should -then replace each instance of the word EXAMPLE with the -name of your megawidget and replace the code in the -__init__ method with code to create and initialise one or -more instances of your megawidget, which should be a child of -parent. You can add other methods as necessary. - -

- -
-

Tests

-

- The Pmw tests directory contains a test framework - and a set of test scripts for Pmw. - The tests cover the standard Tkinter module and most of the Pmw megawidgets. - The tests make a great - demonstration of the flexibility of the megawidgets. Simply change - into the tests directory and run - python All.py. - -

- If all tests pass there should be no output printed to standard - output. If any of the tests fail, please send the test output to - the maintainer at - gregm@iname.com. - -

- -

- All of the tests may be run separately. Most of the tests test the - features of one of the Pmw megawidgets. For example, to execute the - test for the ButtonBox megawidget, run - -

- -
-
-
-python ButtonBox_test.py
-
-
-
- -

- The Test.py file contains general testing functions and is imported - by all test files. - Other files, which test other features of Pmw include -

-
-
-
-Blt_test.py           BLT vector and graph interface
-Colors_test.py        setting color schemes
-MegaWidget_test.py    creation of megawidget classes
-Options_test.py       option and component handling
-PmwBase_test.py       more option and component handling
-Tkinter_test.py       Tk widgets in the Tkinter module
-
-
-
- -Creating tests for new megawidgets -
-

-If you create a new megawidget you should create a test for it. There -is no template file for creating tests, but by looking at the other -Pmw tests (for example, -ScrolledText_test.py) you -will get some idea of how to create a test for your megawidget. - -

- -

-The test files are designed to be run both individually or -automatically by the test package All.py. Each test file -must define the testData tuple. This consists of a -sequence of 2-element tuples, each tuple being a test specification -for one megawidget. Usually a file tests only one megawidget and so -there is only one test specification. The first element in the -specification is the megawidget class and the second is a sequence of -(yet more) 2-element tuples. In each of these tuples, the first -element is a sequence of individual tests to perform on an instance of -the megawidget and the second element is a dictionary to use for -the keyword arguments when creating the instance. Each individual -test is a tuple, the meaning of which depends on the type of the first -element, which may be either a string, a function or a method of the -megawidget class, as explained below. - -

- -
    -
  • -

    -If the first element is a string, then it is treated as an option of -the megawidget and configure() is called to set the option to the -value specified by the second element. After setting the option, -cget() is called to query the option. If the test tuple has three -elements, then the value returned by cget() must equal the value -specified by the third element. Otherwise, the value returned must -equal the value specified by the second element. For example, - -

    -
    -
    -
    -('vscrollmode', 'static'),
    -('text_relief', 'sunken'),
    -('vscrollmode', 'bogus', 'ValueError: bad vscrollmode ' +
    -  'option "bogus": should be static, dynamic, or none'),
    -
    -
    -
    - -
  • -
  • -

    -If the first element is a function or method, then the function or -method is called. The arguments to the call are given by the second -element. (As a special case, if the second element is not a tuple, it -is used as the only argument to the call.) The test tuple may have 2, -3 or 4 elements. - -

    -
      -
    • -

      -If it has two elements, then the value returned by the call must be -None. For example, - -

      -
      -
      -
      -(c.exportfile, '/tmp/ScrolledText_test.py'),
      -(os.unlink, '/tmp/ScrolledText_test.py'),
      -
      -
      -
      - -
    • -
    • -

      -If it has four elements, then the third element is a dictionary to use -for the keyword arguments in the call and the value returned by the -call must equal the value specified by the fourth element. For -example, - -

      -
      -
      -
      -(c.search, ('abc', '0.0'), {'nocase': 1}, '2.24'),
      -
      -
      -
      - -
    • -
    • -

      -If is has three elements and the third element is a dictionary, then -it is used for the keyword arguments in the call and the value -returned by the call must be None. For example - -

      -
      -
      -
      -(c.configurepane, 'first', {'size' : 200}),
      -
      -
      -
      - -
    • -
    • -

      -If is has three elements and the third element is not a dictionary, -then the value returned by the call must equal the value specified by -the third element. For example, - -

      -
      -
      -
      -(c.components, (), ['hull', 'label']),
      -(c.add, ('Legumes',),
      -  'ValueError: name "Legumes" already exists'),
      -
      -
      -
      - -
    • -
    -
  • -
- -

-Some special functions and values supplied by the Test module that may -be used in the tests include: -

-
-
-
-Test.callback       callback taking no arguments
-Test.callback1      callback taking one argument
-Test.callbackN      callback taking any number of arguments
-
-Test.currentWidget  returns the widget instance being tested
-Test.num_options    returns number of options for the widget
-
-Test.earthris       a sample Tkinter.PhotoImage
-Test.flagup         a sample Tkinter.BitmapImage
-Test.floatvar       a Tkinter.DoubleVar
-Test.stringvar      a Tkinter.StringVar
-
-
-
- -

- To slow down a test (to see what is being displayed), add the - following line which sets the delay between tests to (say) 1000 - milliseconds: - -

-
-
-
-Test.setdelay(1000)
-
-
-
- -

- To print information about what is being tested, add the line: - -

-
-
-
-Test.setverbose(1)
-
-
-
- -
-
- - -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/dynamicloader.html b/Pmw/Pmw_1_2/doc/dynamicloader.html deleted file mode 100644 index 01d701c3..00000000 --- a/Pmw/Pmw_1_2/doc/dynamicloader.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - Dynamic loader - - - - -

Dynamic loader

- -

- There are two aspects of Pmw, unrelated to megawidgets, that - require special attention. Firstly, Pmw is made up of many - sub-modules, potentially making access to its various classes and - functions cumbersome for the user. Secondly, Pmw is regularly - being modified and added to, thus requiring the release of new - versions. Therefore, techniques for making access to the - sub-modules easy and efficient and for dealing with the different - versions have been developed. These techniques are incorporated - into the dynamic loader which Pmw creates when it is first - imported.

- -

The first purpose of the loader is to give access to all Pmw classes - and functions through a single entry point, the Pmw. prefix. For - example, to access the ComboBox class (which resides in one of the - sub-modules of Pmw), you just have to use Pmw.ComboBox. Without - the loader, this would be a more complicated reference, such as, - hypothetically, Pmw.PmwComboBox.ComboBox.

- -

The second purpose of the loader is to delay the importing of the - sub-modules until they are needed. This improves the startup time - of applications which only use a few Pmw megawidgets. It also - allows more megawidgets to be added to the library without slowing - down applications which do not use them.

- -

The third purpose of the loader is to allow a script using Pmw to - specify which version of Pmw it requires. This allows an - application to continue working correctly even after newer releases - of Pmw have been made which are not compatible with the version - expected by the application. Several versions of Pmw can be - installed at once, with the actual version used being specified by - each application. In addition, the loader can be configured to - search in one or more alpha versions of Pmw. These versions may - contain new megawidgets, or new versions of existing megawidgets, - that are currently not in the base releases.

- -

Several functions are available to set and query the version of - Pmw being used. These are Pmw.setversion() and - Pmw.setalphaversions() which specify the version and alpha - versions (if any) to use for this session; Pmw.version() which - returns the version(s) being used by this session; and - Pmw.installedversions() which returns the version(s) of Pmw - currently installed. These are described in the - Pmw functions reference manual.

- -

When Pmw is first imported, an instance of PmwLoader is created - and placed into sys.modules['Pmw']. From that point on, any - reference to attributes of the Pmw 'module' is handled by the - loader. The real Pmw package is stored in sys.modules['_Pmw'].

- -

The loader searches the Pmw package base directory for - sub-directories with the prefixes Pmw_ and Alpha_, which - contain Pmw base releases and alpha releases. The version numbers - are given by the part of the directory name following the prefix. - These versions are available for use and are those returned by the - Pmw.installedversions function. The initial version is set to - the base release with the greatest version number. When the first - reference to a Pmw class or function is made, the loader reads the - files named Pmw.def in the current base version directory and - also in the alpha directories (if any). These files list all the - classes and functions supported by the version. Pmw attributes - are first searched for in the alpha directories and then in the - base version directory. The first directory which supports the - reference is used. In this way, alpha versions override base - versions.

- -

The directory Alpha_99_9_example contains a simple example of - how to structure an alpha version. The following code can be used - to request that the alpha version be used and then creates an - instance of a new megawidget defined in the alpha version.

- -
 import Pmw
- Pmw.setalphaversions('99.9.example')
-
- # Create a standard message dialog using the base Pmw version.
- ordinary = Pmw.MessageDialog(
-     message_text = 'Ordinary\nPmw Dialog')
-
- # Create an example dialog using the alpha Pmw version.
- alpha = Pmw.AlphaExample()
- -

Freezing Pmw

- -

Since the dynamic loader requires that Pmw be installed at run - time, it can not be used when freezing Pmw. In this case, a - single module containing all Pmw code is required, which can then - be frozen with the rest of the application's modules. The - bundlepmw.py script in the Pmw bin directory can be used to - create such a file. This script concatenates (almost) all Pmw - megawidget files into a single file, Pmw.py, which it writes to - the current directory. The script is called like this:

- -
 bundlepmw.py [-noblt] [-nocolor] /path/to/Pmw/Pmw_X_X_X/lib
- -

The last argument should be the path to the lib directory of the - required version of Pmw. By default, the Pmw.py file imports - the PmwBlt and PmwColor modules and so, to freeze an - application using Pmw, you will need to copy the files PmwBlt.py - and PmwColor.py to the application directory before freezing.

- -

If you are sure that your application does not use any of the - Pmw.Blt or Pmw.Color functions, you can use the -noblt or - -nocolor options. In this case Pmw.py will be modified so - that it does not import these module(s) and so will not need to be - included when freezing the application.

- -

If your application only uses a few Pmw megawidgets, you can - remove the references to the usused ones in the files list in - the bundlepmw.py code. To make the change, take a copy of the - script and modify it. This will make the Pmw.py file smaller. - However, be sure that you do not delete megawidgets that are - components or base classes of megawidgets that you use.

- -

- - - -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/example.py b/Pmw/Pmw_1_2/doc/example.py deleted file mode 100644 index 0eed16fa..00000000 --- a/Pmw/Pmw_1_2/doc/example.py +++ /dev/null @@ -1,79 +0,0 @@ -import Tkinter -import Pmw - -class ThresholdScale(Pmw.MegaWidget): - """ Megawidget containing a scale and an indicator. - """ - - def __init__(self, parent = None, **kw): - - # Define the megawidget options. - optiondefs = ( - ('colors', ('green', 'red'), None), - ('threshold', 50, None), - ('value', None, Pmw.INITOPT), - ) - self.defineoptions(kw, optiondefs) - - # Initialise base class (after defining options). - Pmw.MegaWidget.__init__(self, parent) - - # Create the components. - interior = self.interior() - - # Create the indicator component. - self.indicator = self.createcomponent('indicator', - (), None, - Tkinter.Frame, interior, - width = 16, - height = 16, - borderwidth = 2, - relief = 'raised') - self.indicator.grid() - - # Create the scale component. - self.scale = self.createcomponent('scale', - (), None, - Tkinter.Scale, interior, - command = self._doCommand, - tickinterval = 20, - length = 200, - from_ = 100, - to = 0, - showvalue = 0) - self.scale.grid() - - value = self['value'] - if value is not None: - self.scale.set(value) - - # Check keywords and initialise options. - self.initialiseoptions() - - def _doCommand(self, valueStr): - if self.scale.get() > self['threshold']: - color = self['colors'][1] - else: - color = self['colors'][0] - self.indicator.configure(background = color) - -Pmw.forwardmethods(ThresholdScale, Tkinter.Scale, 'scale') - -# Initialise Tkinter and Pmw. -root = Pmw.initialise() -root.title('Pmw ThresholdScale demonstration') - -# Create and pack two ThresholdScale megawidgets. -mega1 = ThresholdScale() -mega1.pack(side = 'left', padx = 10, pady = 10) - -mega2 = ThresholdScale( - colors = ('green', 'yellow'), - threshold = 75, - value = 80, - indicator_width = 32, - scale_width = 25) -mega2.pack(side = 'left', padx = 10, pady = 10) - -# Let's go. -root.mainloop() diff --git a/Pmw/Pmw_1_2/doc/example1.gif b/Pmw/Pmw_1_2/doc/example1.gif deleted file mode 100644 index b54ca9352bfd9b2458886458d19f286e223c7663..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1546 zcmV+l2KD(zNk%v~VL<_m0P+9;|Ns90008>y*V)}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ z$!t2G(5Q4uty-_xAYjYwdcWYXcuX#v&*-#z&2FEw7yx`8B+x7JyIyDCNAhlY3Iv3O zhKGoWii?bmj*pO$l9P`NfrEa33T}Oal%JrXqNAjff&-kGnGb-c7K9A2t4~{&t`)MK zvkR>nvYxw6wY;|!xxtp3#S^~+&B#c@%D#QN9|71)y&28V&_>dz%M!;R*$U_8F54L0 zo!IH{@DB0|^6B>T`S{;|r{S-vg$U4q;J|g$D5P_Tj)6gg5FieCC_y4cd;KPa3#a}s zLOBl->2dfe1@H73=gGtY)-xeq9?1+u7~6baESTCHWd z+S=RJ?ptdc$m&#T7HwU(f-|&?YIo}0$Mmp1CY(5gK>!wp3klKj*!@llbdzv5}gNwHf4Lq|ljC&RTRj z@261bItI<%IBx5D8ze_Lw*hVEA50%0L81MZ?>Q1o^9!-vL%2%$2d zFc-*+Fvck3jB41@qBF2<5=tyI_UPk}K%!yEjyNJ`;*nwHh~$zOA_G7vP(~@`lvGw3 zC6icYspXbjcIoApV1_B?m}Hh|=9y@wspgt&w&~`ZaKZzzc z(%>rCr0VLcu*Uic0IO!wYJ!LAutlwY+*$>%XYP6&9llZlteL`^{^QpL!=_N|6vvjC z>`?h=(5z(6c~e?;_{_Cjc^T9bEt%7DCYnO#W{YcR=?Q05Zo8qoPn_k}c9(kk6_k=m z>ybwjS?Y&TR-iQ$WP?e16w#jkMCxCz{yNt$8*6v$B#WAPt~ki9$E`sIFZ}St7w-k^RxJ@veYFaG%Cmv8?0=%=s#`s}yw{`>I9FaP}X z*Khy*_~)C}s2xKr^&uJL5O7IKN!H+?TI?xCNhk<6Pu!LTV zpM`RG8ft~EB#47txAwI}y{Y6T!FkUOy`rzC6*1ghBAFP(v?v`e>g{h(1k4Y^_o2*` zNF8Mh+Tg6yvC5TDibAAf6~Xnw8KzNfYpmJITC>7%nl6T4+)Ca?=|#Tb1~vNQWP?1JLVkEllt|y*V)}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ z$!t2G(5Q4uty-_xtai)odcWYXcuX#v&*-#z&2GEj@VIs;jK20I#sIva__cwzsbq z1iQSwzQ4f1!o$SH#>5u5%FE2n%gN5s($mh7)Yr`fy2sqz-rwK^0MOXw=Cj%r=j-gX z>5sWQyW48<6!uT^>f>7a@ccXcO%P}Xp9F(V2u46yMd2cbHXJ^XCmM&DPfMCD+V!qz28RXEM+;p>j29ip0*Ff~ohs}7hhkZWQshOQIr z9to?pgx(uyKm2vj*6V}8BaNGfMzp4dIb|BEn zry(d7fq3_w~{Ac&Ap~fOF;8pI>j^xPJKW>hR+mm+!v5X=sMK%U28D{r>#v)CDM7 zcsc0x-+}z;C!lT#0_b0Zh%GhNT-*WJpK{|7mSK7n&V`(G!SQDtUD%PxAc-OFgCBZ_ zeOIAt7hcdCc^q2kVu#-OccWAr#xPcnI^tNNeHRYspp6~g)83IU-e_52jwQL^epEV$ zAbnFFxfpEc{f66dyG>{%aQCUm;%#CYsb-QQ&PFC%J;Gq%j!4=^ZQI# zx+$Qjeaa%3WT}}Znz1@5W{OIpnkuDIx@M@Pt(uAHkgFD&<6@F6{#O@`r)sIGv!W8p zXrH8J8DpT9Vjvu`(E4iPs;zC==t_;62w{=uVre9Xx~l4_wdq=kBZS;e6z2;D#(QOX z^j5m>fzzHjWLEv57%aQmGU@A~oJPyAyAW{cmBC^1iz30>;+k!)dENS4#st>~q2uMUJN3w41a86c6`cXa#(BqtFON|TU##!5<4+tVmT=Lgn89oKvW7)ZWf)&Ab(gL zZNkA!vakU|@pD-X-XL@m|E0CT(I_O{mk>R-)UIG}(y%qxX=gw**e8fRLf1f)&BWDI ztc?fUCdfT^+dS9}mdSh%q4ynyli+tn<0g&+-cuZIhvOptEFOm7IuSmu*^p2kg5_Xf zo{{ETNM48MAb|db=tw{=h3Ry>63*<$Y}3x|xIeQG?Y#F63^cw6FZ}PF4?nyvxhJo@ zEXf$}{5Q=%FFoz8RB!$D*k`Z(_S|>x{rBL9FaG%Cmv8?0=%=s#`s}yw{`>I9FaP}X z*Khy*_~)p$JDv!V;SBgeXj*3RlR&7P|0-FpQxLXGp^u+VF-r%%Ki<$ip7`@P|MQ zq7a9;zvV@Ph~6_|Hjvmo)bWUk+;iexOa?_$NKxiSRIDN?uIMT)vVw~n^J4YDh%hmZ z@lik86&B5CJY(y+C8O%)#bCkvG#4+uaOl9h_Z@_FOB4jr`Zb;LZ z)$GPKx5>?Jdh?s$45v89NzQVb^PK2Rr#jck&UU) - - - - Pmw features - - - - -

Pmw features

- -

- Pmw is a toolkit for building high-level compound widgets, or - megawidgets, constructed using other widgets as component parts. - It promotes consistent look and feel within and between graphical - applications, is highly configurable to your needs and is easy to - use.

- -

Pmw consists of:

-
  • A few base classes, providing a foundation for building - megawidgets.

    - -
  • -
  • A library of flexible and extensible megawidgets built on - the base classes, such as buttonboxes, notebooks, - comboboxes, selection widgets, paned widgets, scrolled - widgets and dialog windows.

    - -
  • -
  • A lazy importer/dynamic loader which is automatically - invoked when Pmw is first imported. This gives unified - access to all Pmw classes and functions through the Pmw. - prefix. It also speeds up module loading time by only - importing Pmw sub-modules when needed.

    - -
  • -
  • Complete reference documentation, covering all classes and - functions including all megawidgets and their options, - methods and components. Helpful tutorial material is also - available.

    - -
  • -
  • A test framework and tests for Pmw megawidgets.

    - -
  • -
  • A slick demonstration of the megawidgets.

    - -
  • -
  • An interface to the BLT busy, graph and vector commands.

    - -
- -

The interface to Pmw megawidgets is similar to basic Tk widgets, so it - is easy for developers to include both megawidgets and basic Tk - widgets in their graphical applications. In addition, Pmw - megawidgets may themselves be extended, using either inheritance or - composition.

- -

The use of the Pmw megawidgets replaces common widget combinations - with higher level abstractions. This simplifies code, making it - more readable and maintainable. The ability to extend Pmw - megawidgets enables developers to create new megawidgets based on - previous work.

- -

- - - -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/halfblueball.gif b/Pmw/Pmw_1_2/doc/halfblueball.gif deleted file mode 100644 index 6977920dc3f074c1759fb9eafc693f6ff6d15637..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299 zcmZ?wbh9u|c3&k0nVOP+d;q3jyN#QzK({~4;^Gh`jBUUrNj z>zu&k|AuS-bMycOpZ9$Jzx4kPf$sl`)BiJ+-D8N`%8;>_A$~7IOETk{J}elINXcu+C=CjbhO9GEC?Z@F?~wpTj^^paU`uBv8!r~v^f5Iv3r$pDXLnC-V&T!?KeebyBtl2r$E`Rd$4FXAMpn*U YUO_=osav^LMNv^jHFwHXCr1Wr0R5Ft#sB~S diff --git a/Pmw/Pmw_1_2/doc/howtobuild.html b/Pmw/Pmw_1_2/doc/howtobuild.html deleted file mode 100644 index 4a408b48..00000000 --- a/Pmw/Pmw_1_2/doc/howtobuild.html +++ /dev/null @@ -1,465 +0,0 @@ - - - - - - How to build Pmw megawidgets - - - - -

How to build Pmw megawidgets

- -

- -

- -
-

Introduction

-

- This document briefly describes how to design and code Pmw - megawidgets by inheriting from the Pmw base classes. It shows step - by step how to build a simple example megawidget. This megawidget - allows the user to select one of a range of numbers and it also - indicates if the selected number is greater than a given threshold. - -

- -
-

Choosing the components

- -

- The megawidget will be built using a Tkinter.Scale widget to allow - the user to select a number in a range, and a Tkinter.Frame widget - to act as an indicator, displaying red (say) if the selected number - exceeds the threshold. It will look something like this: - -

- -

- Scale 2 -

- -

- The programmer using this megawidget will need access to the scale - widget, since they will need to set the scale's range. Therefore - the scale will be made a component of the megawidget. The - programmer will probably not need access to the indicator frame, - but, just in case the need arises to change the borderwidth or - relief of the indicator, we will make it a component too. This - illustrates a convention about components - for maximum - configurability, make all sub-widgets components. - -

- -
-

Choosing the options

- -

- Apart from the component options now available through the scale and indicator - components, the megawidget will need a few options of its own. It - will need a threshold option to set the threshold. - It may also need options to set the colors of the indicator when the - selected value is both above and below the threshold. Other options - could be orient or indicatorpos to - specify the relative position of components and - margin, padx or - pady to specify spacing between and around the - components. For this example, we will define three options - - threshold, colors and - value. The colors option will be - a 2-element sequence specifying two colors (below threshold, above - threshold). The value option will be the initial - value of the scale. - -

- -
-

Coding the megawidget

- -

- The first things to do are to decide on a name for the new - megawidget, decide which base class to inherit from and to begin to - write the constructor. Most Pmw megawidgets are derived from either - Pmw.MegaWidget, Pmw.MegaToplevel or Pmw.Dialog. In this case, since - the widget is not to be contained within its own toplevel window, we - will inherit from Pmw.MegaWidget. The constructors of megawidgets - take one argument (the widget to use as the parent of the - megawidget's hull, defaulting to the root window) and any number of - keyword arguments. - -

- -
-class ThresholdScale(Pmw.MegaWidget):
-    """ Megawidget containing a scale and an indicator.
-    """
- 
-    def __init__(self, parent = None, **kw):
-
- -

- Next, we need to define the options supplied by this megawidget. - Each option is specified by a 3-element sequence. The first element - is the option's name. The second element is the default value. The - third element is either a callback function, - Pmw.INITOPT or None. In the first - case, the function is called at the end of construction (during the - call to self.inialiseoptions) and also - whenever the option is set by a call to - configure. Pmw.INITOPT indicates that - the option is an initialisation option - it cannot be set by calling - configure. None indicates that the - option can be set by calling configure, but that there - is no callback function. - -

- -

- The call to self.defineoptions also includes the - keyword arguments passed in to the constructor. The value given to - any option specified in the keywords will override the default - value. - -

- -
-        # Define the megawidget options.
-        optiondefs = (
-            ('colors',    ('green', 'red'), None),
-            ('threshold', 50,               None),
-            ('value',     None,             Pmw.INITOPT),
-        )
-        self.defineoptions(kw, optiondefs)
-
- -

- After defining the options, the constructor of the base class should - be called. The options need to be defined first so that a derived - class can redefine the default value of an option defined in a base - class. This is because the value specified by the derived class - must be made available before the base class constructor is called. - The keyword - arguments should not be passed into the base class constructor since - they have already been dealt with in the previous step. - -

- -
-        # Initialise base class (after defining options).
-        Pmw.MegaWidget.__init__(self, parent)
-
- -

- Now we should create the components. The components are created as - children (or grandchildren ...) of the megawidget's interior. - -

- -
-        # Create the components.
-        interior = self.interior()
-
- -

- The first component to create is the indicator. The - createcomponent method creates the sub-widget and - registers the widget as a component of this megawidget. It takes - five arguments plus any number of keyword arguments. The arguments - are name, aliases, group, class and constructor arguments. See the - Pmw.MegaArchetype reference manual) - for full details. - -

- -
-        # Create the indicator component.
-        self.indicator = self.createcomponent('indicator',
-                (), None,
-                Tkinter.Frame, (interior,),
-                        width = 16,
-                        height = 16,
-                        borderwidth = 2,
-                        relief = 'raised')
-        self.indicator.grid()
-
- -

- The scale component is created in a similar way. In this case, the - initial value of the scale is also set to the value of the - value initialisation option. - -

- -
-        # Create the scale component.
-        self.scale = self.createcomponent('scale',
-                (), None,
-                Tkinter.Scale, (interior,),
-                        command = self._doCommand,
-                        tickinterval = 20,
-                        length = 200,
-                        from_ = 100,
-                        to = 0,
-                        showvalue = 0)
-        self.scale.grid()
- 
-        value = self['value']
-        if value is not None:
-            self.scale.set(value)
-
- -

- At the end of the constructor, the initialiseoptions - method is called to check that all keyword arguments have been used - (that is, the caller did not specify any unknown or misspelled - options) and to call the option callback functions. - -

- -
-        # Check keywords and initialise options.
-        self.initialiseoptions()
-
- -

- All other methods must now be defined. In this case, only one - method is required - a method called whenever the scale changes and - which sets the indicator color according to the threshold. - -

- -
-    def _doCommand(self, valueStr):
-        if self.scale.get() > self['threshold']:
-            color = self['colors'][1]
-        else:
-            color = self['colors'][0]
-        self.indicator.configure(background = color)
-
- -

- To complete the megawidget, methods from other classes can be - copied into this class. In this case, all Tkinter.Scale methods - not already defined by the megawidget are made available as methods - of this class and are forwarded to the scale component. Note that - the third argument to Pmw.forwardmethods is the name of - the instance variable referring to the Tkinter.Scale widget and not - the name of the component. This function is called outside of and - after the class definition. - -

- -
-Pmw.forwardmethods(ThresholdScale, Tkinter.Scale, 'scale')
-
- -

- Important note: If a megawidget defines options - using defineoptions(), then this method must be - called in the megawidget constructor before the call to the base - class constructor and a matching call to - initialiseoptions() must made at the end of the - constructor. For example: - -

-
-    def __init__(self, parent = None, **kw):
-	optionDefs = ...
-	self.defineoptions(kw, optionDefs)
-	BaseClass.__init__(self, parent)
-	...
-	self.initialiseoptions()
-
- -
-

Creating instances of the megawidget

- -

- The code below creates two of our example megawidgets. The first is - created with default values for all options. The second is created - with new values for the options. It also redefines some of the - options of the components. - -

- -
-
-
-# Create and pack two ThresholdScale megawidgets.
-mega1 = ThresholdScale()
-mega1.pack(side = 'left', padx = 10, pady = 10)
-
-mega2 = ThresholdScale(
-        colors = ('green', 'yellow'),
-        threshold = 75,
-        value = 80,
-        indicator_width = 32,
-        scale_width = 25)
-mega2.pack(side = 'left', padx = 10, pady = 10)
-
-
-
- -

- Scale 1 -

- -
-

The complete code

- -

- The complete code for this example can be seen - here. - -

- -
-

Exercises

- -

- These exercises build on the example presented so far. - -

- -
    -
  1. - Change the call to create mega1 so that the scale - widget displays the current value next to the slider. (You may - need to look at the Tk scale manual page to find which option to - the scale component to set.) You will be able to - do this without modifying the ThresholdScale class code. - -
  2. -
  3. - Add a Tkinter.Label component between the indicator and scale - components. Modify the _doCommand method so that it - displays the current value of the scale in this label. - -
  4. -
  5. - Modify the colors and threshold - options so that they both accept a tuple. Now implement multiple - thresholds, so that the indicator displays one of several colors, - depending on the value of the scale. - -
  6. -
  7. - Add an orient initialisation option and lay out - the components horizontally or vertically depending on its value. - -
  8. -
  9. - Read the description of the createlabel() method in - the Pmw.MegaArchetype reference - manual and add labelpos and - labelmargin initialisation options which allow - the creation of a label for the megawidget. - -
  10. -
- -

- An example of how these changes can be made can be seen - here. - -

- -
-

Contributing your megawidgets to Pmw

- -

- If you have completed a megawidget that may be useful to others, you - may like to consider contributing it to Pmw. See - Contributions welcome for - how to contribute. - -

- -
-

Pmw coding conventions

- -

-As a final note, the Pmw code makes an attempt to follow these coding -conventions. -

- -
    -
  • - Class names: initial of each word is upper case (including first word). - -
  • -
  • - Public method and function names: all in lower case. - -
  • -
  • - Megawidget options: all in lower case. - -
  • -
  • - Megawidget component names: all in lower case. - -
  • -
  • - Function arguments: initial of each word is upper case (except first word). - -
  • -
  • - Private names: initial of each word is upper case (except first - word if not a class) - -
  • -
  • - Underscores as word separators are only used when overriding - Tkinter methods of same name. - -
  • -
  • - Indent is four spaces. - -
  • -
  • - Continuation lines are indented by eight spaces, so that they - won't be confused with a following nested code block. - Continuation lines should be used when a statement, which would - normally be written on one line, is longer than 80 characters. - Examples are "if" statements which contain many conditions and - function calls with many arguments. - -
  • -
  • - - Surround = with spaces when used with keyword - parameters in function calls. - -
  • -
  • - - Multi-line function calls should have one keyword parameter per - line. - -
  • -
-
-
- - -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/howtouse.html b/Pmw/Pmw_1_2/doc/howtouse.html deleted file mode 100644 index f7e43b92..00000000 --- a/Pmw/Pmw_1_2/doc/howtouse.html +++ /dev/null @@ -1,719 +0,0 @@ - - - - - - How to use Pmw megawidgets - - - - -

How to use Pmw megawidgets

- -

- -

- -
-

Introduction

-

- This document briefly describes the features of the Pmw megawidget - toolkit and how to use the megawidgets. Using examples, it - describes those features common to all Pmw megawidgets. For a - description of individual Pmw megawidgets see the - reference manuals. - For complete information on general Pmw megawidget functionality see the - Pmw.MegaArchetype reference manual. - For a lot more example code, run any of the files in the - Pmw demos directory. - -

- -

- A simple example of a megawidget is a counter. This widget - contains an entry field and two small arrow buttons. Users may - enter a value directly into the entry field or they may use the - buttons to increment and decrement the value displayed without - having to use the keyboard. Having this and other megawidgets in - your toolbox allows you to choose the best graphical interface for - your application. - -

-
-

Getting started

- -Initialisation of Pmw -
-

- To run the examples in the tutorial, make sure that the - Pmw lib directory is in sys.path. You - should be able to cut and paste the examples into an interactive - python session, or you can copy them to a file and run the file with - python. - -

-

- The following two lines should be entered before any of the - examples. These import and initialise Pmw. - For more information on Pmw.initialise() see the - Pmw functions reference manual. - -

- -
-
-
-import Pmw
-root = Pmw.initialise()
-
-
-
- -

- If necessary, you can have more control over how Tkinter and Pmw are - initialised by using this form of initialisation: - -

- -
-
-
-import Tkinter
-root = Tkinter.Tk()
-import Pmw
-Pmw.initialise(root)
-
-
-
- -
-

Megawidget construction

- -Creating a counter -
-

- Now that you have the formalities out of the way, you can create and - pack a counter megawidget (see - Pmw.Counter reference manual) using - its default configuration like this: - -

- -
-
-
-counter1 = Pmw.Counter()
-counter1.pack(padx = 10, pady = 10)
-
-
-
- -

- Now enter a number and click on the arrow buttons to see the number - increment or decrement. The result looks something like this: - -

- -

- Counter 1 -

- -

- The above example creates the counter as a child of the root window. - If you want to create it as a child of another window (for example, - a Tkinter.Frame widget called 'frame'), add the parent as an - argument to the constructor: - -

- -
-
-
-counter1a = Pmw.Counter(frame)
-
-
-
- -
-

Methods

-

- Once a megawidget has been created, you can call any of its other - methods in a similar way to Tk widgets. The following sets the value - of the counter and then increments it: -

- -
-
-
-counter1.setentry(41)
-counter1.increment()
-
-
-
- -
-

Options

-

- Like any widget, a megawidget may have options to allow it to be - configured for a particular use. Options allow the megawidget user - to modify the appearance and behaviour of the megawidget. The - counter megawidget has several such options. One of them, - datatype, specifies how the counter should count up - and down, such as, for example, by integers, reals, times or dates. - The default value is 'numeric', which means the - counter expects integers to be entered and will support - incrementing and decrementing by whole numbers. - -

- -

- Another option is - increment, which specifies how many units should be - added or subtracted when the counter is incremented or decremented. - Using these options, you can create a time counter, supporting the - format HH:MM:SS, and counting in minutes, like - this (note also the call to the setentry method to set - the contents of the entry field): - -

- -
-
-
-counter2 = Pmw.Counter(
-    datatype = 'time',
-    increment = 60)
-counter2.setentry('00:00:00')
-counter2.pack(padx = 10, pady = 10)
-
-
-
- -

- Many megawidget options can be modified using the - configure() method. For example, you can change the - value of the increment option to 10 minutes like - this: - -

- -
-
-
-counter2.configure(increment = 60 * 10)
-
-
-
- -Initialisation options -
-

- Some megawidget options can only be set when creating the megawidget. - These options can not be set by calling the configure() - method, but they can be queried in all the usual ways. For example, - the counter has an orient initialisation option - which specifies whether the arrow buttons should appear to the - left and right of the entry field ('horizontal') - or above and below ('vertical'). You can create a - numeric counter with arrow buttons above and below the entry - field like this: - -

- -
-
-
-counter3 = Pmw.Counter(orient = 'vertical')
-counter3.pack(padx = 10, pady = 10)
-
-
-
- -Querying options -
-

- You can query the value of megawidget options (initialisation or - not) in similar ways as for normal Tkinter widgets. For example, - the following code prints the values of some of the counter options. - -

- -
-
-
-print counter3.cget('increment')
-    --> 1
-print counter3.configure('orient')
-    --> ('orient', 'orient', 'Orient', 'horizontal', 'vertical')
-
-
-
- -

- When a Tk widget option is queried, its value is always - returned as a string, regardless of the type used when setting the - option. However, when a Pmw megawidget option is queried, a - reference to the object used when setting the option is returned. - In other words it is not always a string. For example, the type - returned by cget('increment') above was integer. - -

- -
-

Components

-

- Megawidgets are made up of other widgets, which we call - components. Each component is known by a logical name and - may be either a simple Tk widget, or may itself be a megawidget. - Pmw gives the megawidget user access to not only the functionality - supported directly by the megawidget through its options and methods, - but also to the components of the megawidget and their options and - methods. To access a component directly, use the - component() method. For example, to call method - doit of component comp - of megawidget mega: - -

- -
-
-
-mega.component('comp').doit()
-
-
-
- -Component options -
-

- There is a short-hand way to access the options of components, by - using the notation component_option. This allows, for - example, a counter megawidget to be configured with different - colored backgrounds for each of its arrow button components (these - components are called downarrow and - uparrow): - -

- -
-
-
-counter2.configure(
-    downarrow_background = 'green',
-    uparrow_background = 'red')
-
-
-
- -The hull -
-

- All megawidgets are enclosed in a containing widget which is created - automatically by the Pmw base classes. For normal megawidgets the - container is a Tkinter Frame widget. For megawidgets which are - toplevel windows, the container is a Tkinter Toplevel widget. The - containing widget is accessible as the hull - component. - -

- -

- To access options of the containing widget use the form - hull_option. For example to create a - counter megawidget with a wide sunken border around it: - -

- -
-
-
-counter4 = Pmw.Counter(
-    hull_relief = 'sunken',
-    hull_borderwidth = 5 
-)
-
-
-
- - -The interior -
-

- Some megawidgets, such as Dialog and LabeledWidget, also have a - frame into which users can pack other widgets. This frame may be a - component but can also be accessed with the interior() - method. For the Pmw.MegaToplevel and Pmw.MegaWidget classes, the - interior widget is the same as the hull widget. For other - megawidgets, the hull is the outer, containing widget and the - interior is the empty frame which can be used to extend the - megawidget by including extra internal widgets. - -

- -Sub components and aliases -
-

- Components may themselves be megawidgets and so their - (sub-)components can be referred to using the notation - component_sub-component. For example, the - entryfield component of the counter is a - Pmw.EntryField megawidget (which handles the input validation). In - turn, this has a Tkinter.Entry component named - entry. Therefore, you can change the background of - the counter's Tkinter.Entry widget with: - -

- -
-
-
-counter2.configure(entryfield_entry_background = 'yellow')
-
-
-
- -

- Most component path names (like entryfield_entry) - have a shorter alias defined for them. In this - case, you can use the equivalent: - -

- -
-
-
-counter2.configure(entry_background = 'yellow')
-
-
-
- -Changing the python class of a component -
-

- Each megawidget component is an instance of some python class. The - default class of each component is given in the reference manual. - By using the special pyclass component option, you - can specify a different python class to use when creating the - component. For example, to create a Pmw.Counter megawidget which - has a Tkinter.Button as its label, rather than the default - Tkinter.Label: - -

- -
-
-
-counter5 = Pmw.Counter(
-        labelpos = 'w',
-        label_text = 'Hello',
-        label_pyclass = Tkinter.Button
-)
-
-
-
-
- -
-

Forwarding methods

-

- Since a Pmw megawidget is a normal python class, it both inherits - methods from its base classes and also may have other methods - defined for it in the usual way. - Pmw also supports a third way that a megawidget may gain methods - - by 'forwarding' methods to one or more of its subwidgets. This is - also known as 'delegating'. - For example, a Pmw.Counter megawidget delegates the methods related - to its Pmw.EntryField component, entryfield, to the - component. It does not have to explicitely define methods which - call the component methods. - This is why we can call counter2.setentry() - since - setentry() is a method of the Pmw.EntryField - component, it is available to the Pmw.Counter. - -

-

- Methods already defined by a class or its base classes take - precedence over delegated methods. For example, Pmw.Counter - inherits a cget method from Pmw.MegaArchetype. - Therefore, this method is not delegated to the cget - method of Pmw.EntryField. - -

- -
-

Extending Pmw megawidgets

- -

- There are several ways of extending Pmw megawidgets. Firstly, the - flexibility of the options and components allows the widget's - appearance and behaviour to be greatly modified. Secondly, widgets - of the user's choice can be added inside some megawidgets by using - the interior() method. The Pmw classes MegaToplevel, MegaWidget, - Dialog and LabeledWidget are particularly designed to be extended in - this way. For example, to create a dialog window containing a - counter: - -

- -
-
-
-dialog = Pmw.Dialog(
-        title = 'Counter dialog',
-        buttons = ('OK', 'Cancel'))
-interior = dialog.interior()
-counter = Pmw.Counter(interior)
-counter.pack(padx = 20, pady = 20)
-
-
-
- -

- Counter 2 -

- -

- A third way to extend megawidgets is to inherit from (or subclass) - them. See How to build Pmw - megawidgets for information on how to use inheritance to extend - a megawidget by adding new options. For simpler cases, where new - methods are to be added to an existing megawidget and/or the default - values for some options are to be changed, normal subclassing can be - used. For example, to create new classes based on a Pmw.Counter, - one with a new method getminutes() and one with a - default datatype of 'time' and a white entry background: - -

- -
-
-
-class MinuteCounter1(Pmw.Counter):
-
-    def getminutes(self):
-	return Pmw.timestringtoseconds(self.getvalue()) / 60
-
-class MinuteCounter2(Pmw.Counter):
-
-    def __init__(self, parent = None, **kw):
-        kw['datatype'] = 'time'
-        kw['entry_background'] = 'white'
-        kw['entryfield_value'] = '00:00:00'
-        kw['increment'] = 60
-	apply(Pmw.Counter.__init__, (self, parent), kw)
-
-
-
- -
-

A quick example

-

- The following code is a small example of how to use Pmw megawidgets. - It is a complete program which displays three ways for the user to - enter a value - using an up-down counter, an entry field with - validation and a dropdown combobox. - -

-
-
-
-import Pmw
-root = Pmw.initialise(fontScheme = 'pmw1')
-
-counter = Pmw.Counter(
-        label_text = 'Counter:',
-        labelpos = 'w',
-        entryfield_value = '00:00:00',
-        entryfield_validate = 'time',
-        datatype='time',
-        increment=5*60,
-)
-counter.pack(fill = 'x', padx = 10, pady = 10)
-
-entry = Pmw.EntryField(
-        label_text = 'Real entry:',
-        labelpos = 'w',
-        value = '+2.9979e+8',
-        validate = 'real',
-)
-entry.pack(fill = 'x', padx = 10, pady = 10)
-
-combo = Pmw.ComboBox(
-        label_text = 'ComboBox:',
-        labelpos = 'w',
-        scrolledlist_items = map(str, range(20))
-)
-combo.pack(fill = 'x', padx = 10, pady = 10)
-
-# Make the labels line up neatly
-Pmw.alignlabels((counter, entry, combo))
-
-root.title('Pmw megawidgets example')
-root.mainloop()
-
-
-
- -

- Example 1 -

- -
-

Another example

-

- The following also shows how to use Pmw megawidgets. It displays a - RadioSelect megawidget and an exit button packed into the root - window. - -

- -
-
-
-import Tkinter
-import Pmw
-
-def callback(tag):
-    # This is called whenever the user clicks on a
-    # button in the RadioSelect widget.
-    print tag, 'was pressed.'
-
-# Initialise Tkinter and Pmw.
-root = Pmw.initialise(fontScheme = 'pmw1')
-root.title('Pmw RadioSelect demonstration')
-
-# Create and pack a RadioSelect widget.
-radio = Pmw.RadioSelect(
-        command = callback,
-        labelpos = 'w',
-        label_text = 'Food group:')
-radio.pack(padx = 20, pady = 20)
-
-# Add some buttons to the RadioSelect.
-for text in ('Fruit', 'Vegetables', 'Cereals', 'Legumes'):
-    radio.add(text)
-radio.invoke('Vegetables')
-
-# Create an exit button.
-exit = Tkinter.Button(text = 'Exit', command = root.destroy)
-exit.pack(pady = 20)
-
-# Let's go.
-root.mainloop()
-
-
-
- -

- Example 2 -

- -
-

Using the Tk option database

-

- There are several ways to use the Tk option database to customise a - Pmw application. Firstly you can customise all the basic Tk widgets - in the usual way. For example, to set the background of all - Tkinter.Label widgets (whether a megawidget component or not): - -

- -
-
-
-root.option_add('*Label.background', 'pink')
-
-
-
- -

- To set the background of all Pmw.EntryField label - components: - -

- -
-
-
-root.option_add('*EntryField.Label.background', 'green')
-
-
-
- -

- To set the background of all Pmw.EntryField components, including - the hull component: - -

- -
-
-
-root.option_add('*EntryField*background', 'blue')
-
-
-
- -

- The above option settings affect basic Tk widgets and, since it is - built into the Tk widgets, this functionality is always available. - However, to be able to use the Tk option database to set the default - values for Pmw megawidget options, Pmw.initialise() - must be called with useTkOptionDb = 1. If this is not - done, Pmw does not query the Tk option database for megawidget - option defaults. This is the default behaviour because there is a - slight performance penalty for using the Tk option database. - -

- -

- Assuming useTkOptionDb has been set, the default - buttonbox position of all Pmw.Dialog megawidgets can be changed - with: - -

- -
-
-
-root.option_add('*Dialog.buttonboxpos', 'e')
-
-
-
- -

- To set the label position of all Pmw.EntryField megawidgets, thus giving - them a label component by default: - -

- -
-
-
-root.option_add('*EntryField.labelpos', 'w')
-
-
-
- -
-
- - -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/index.html b/Pmw/Pmw_1_2/doc/index.html deleted file mode 100644 index ef531a23..00000000 --- a/Pmw/Pmw_1_2/doc/index.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - Pmw megawidgets 1.2 - - - - -

Pmw 1.2

- -

Python megawidgets

- -

- -

- -

-Pmw is a toolkit for building high-level compound widgets in Python -using the Tkinter module. -

- -

-It consists of a set of base classes and a library of -flexible and extensible megawidgets built on this foundation. These -megawidgets include notebooks, comboboxes, selection widgets, paned -widgets, scrolled widgets, dialog windows, etc. - -

- -

-Local documentation -

- -
-
- - - Main features -
- Getting started - including downloading - and installation -
- How to use Pmw megawidgets - creating - and configuring megawidgets -
- How to build Pmw megawidgets - inheriting - (sub-classing) from Pmw megawidgets -
- Demonstrations and tests - how to run -
- Dynamic loader - also discusses how - to "freeze" Pmw -
- Reference manuals - complete documentation - of all Pmw classes and functions -
- Porting between different versions of Pmw -
- Change log -
- Todo list and list of known bugs -
- Copyright -
-
- -

-External links -

- -
-
- - - Pmw project home page - on SourceForge - contains CVS source repository, bug tracking, - release distributions, mailing list, etc - -
- Pmw-general - mailing list - subscribe to this list to get announcements of - Pmw releases and general discussion on Pmw - -
- A User's Guide - to Pmw.Blt - - an excellent tutorial and reference covering the Pmw interface - to the powerful Blt graph widget, written by Bjørn Ove Thue - and Hans Petter Langtangen. You can also download the full - HTML document for local viewing. - -
-
- -

-See the -Pmw megawidgets home page -for the latest information about Pmw. - -

- -

- -Comments, bugs, fixes to the Pmw -discussion and announcement mailing list. - -

- - -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/porting.html b/Pmw/Pmw_1_2/doc/porting.html deleted file mode 100644 index 64a7cb5d..00000000 --- a/Pmw/Pmw_1_2/doc/porting.html +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - Porting between different versions of Pmw - - - - -

Porting between different versions of Pmw

- -

- This document contains a brief guide to porting existing code - between different versions of Pmw. It includes significant - functionality changes but does not include bug fixes or compatible - enhancements. For details of all changes, see - Changes to Pmw versions.

- -

Porting from 0.8.5 to 1.0, 1.1 and 1.2

- -
  • Bug fix, documention and new features only. No - backwards-incompatible changes.

    - -
-

Porting from 0.8.4 to 0.8.5

- -
  • Bug fix release only. No interface changes.

    - -
-

Porting from 0.8.3 to 0.8.4

- -
  • Change the setnaturalpagesize() method of Pmw.NoteBook to - setnaturalsize() (to be consistent with Pmw.PanedWidget).

    - -
  • -
  • Change Pmw.excludefrombusycursor() to Pmw.setbusycursorattributes(). - Replace busyCursorName option of Pmw.initialise() with - cursorName attribute of Pmw.setbusycursorattributes().

    - -
  • -
  • Several rarely used key bindings for Pmw.ScrolledListBox were - removed, changing the behaviour of the megawidget.

    - -
-

Porting from 0.8.1 to 0.8.3

- -
  • The megawidgets Pmw.NoteBookR and Pmw.NoteBookS have been - replaced by a new Pmw.NoteBook. The interfaces are not - compatible, so see the Pmw.NoteBook reference manual for - details.

    - -
  • -
  • Change the get() method of Pmw.OptionMenu to getcurselection() - and the remove() method of Pmw.PanedWidget to delete().

    - -
  • -
  • If you use 'end', 'default' or None in calls to the - index() method of several megawidgets, change these to - Pmw.END, Pmw.DEFAULT and Pmw.SELECT, respectively.

    - -
  • -
  • The exclude argument has been removed from Pmw.showbusycursor(). - Use Pmw.excludefrombusycursor() instead.

    - -
  • -
  • The names of some of the positional arguments in the following - methods have changed: MegaArchetype.createcomponent(), - ButtonBox.insert(), ButtonBox.add(), MenuBar.addcascademenu(), - MenuBar.addmenuitem() and RadioSelect.add().

    - -
  • -
  • The Pmw.maxfontwidth() function has been removed. Use the - font_measure() Tkinter method, or if that has not yet been - implemented:

    -
     someWidget.tk.call('font', 'measure', someFont, 'W')
    - - -
  • -
  • The Pmw.fontexists() function has been removed. This is - because, since Tk8.0, all fonts exist, so it no longer has - any meaning.

    - -
-

Porting from 0.8 to 0.8.1

- -
  • The Blt.Graph now supports blt2.4i which is not backwards - compatible with blt2.1.

    - -
-

Porting from 0.7 to 0.8

- -
  • The format argument of Pmw.datestringtojdn() now defaults to - 'ymd'. If you want to display dates with year, month and day - in a different order, add a format option to - Pmw.datestringtojdn() or to the datatype option of Pmw.Counter - or the validate option of Pmw.EntryField.

    - -
  • -
  • The justify() method from Pmw.ScrolledListBox has been removed. - Use the xview() or yview() methods instead.

    - -
  • -
  • Replace the getFrame() method of Pmw.ScrolledFrame with the - interior() method.

    - -
  • -
  • Replace the ringpadx and ringpady options of Pmw.Group by - padding the megawidget itself or by padding the children of the - megawidget.

    - -
  • -
  • Replace the canvasbind() and canvasunbind() methods of - Pmw.Balloon with tagbind() and tagunbind().

    - -
  • -
  • The return value of Pmw.EntryField command callback is now - ignored. Previously, if the callback destroyed the megawidget, - it was required to return the string 'break', to work around a - problem in the event handling mechanism in Tkinter. With python - 1.5.2, Tkinter has been fixed. Therefore, user-supplied - callback functions should use Pmw.hulldestroyed to check if the - megawidget has been destroyed before performing any operations - on it.

    - -
  • -
  • If you require the 'pmw1' fontScheme when running under - Microsoft Windows and Macintosh, you will need to set the Tk - font options manually.

    - -
-

Porting from 0.6 to 0.7

- -
  • Replace the maxwidth option of Pmw.EntryField with the 'max' - field of the validate option.

    - -
  • -
  • To specify that there should be no validation performed for a - Pmw.EntryField, the validate option must be None, not '' as - before.

    - -
  • -
  • The date and time values of the Pmw.EntryField validate option - (such as 'date_dmy' and 'time24', etc) are no longer supported. - Instead use a dictionary as the value of the validate option - with 'date' or 'time' in the 'validator' field. Include - other fields in the dictionary to further specify the - validation.

    - -
  • -
  • Pmw.Counter no longer supports the old date and time values for - the datatype option. Use a dictionary with a 'counter' - field of 'date' or 'time' and other fields to further - specify the counting.

    - -
  • -
  • Pmw.Counter no longer supports the min and max options. Use - the Pmw.EntryField validate option instead.

    - -
  • -
  • The bbox method of Pmw.ScrolledListBox now refers to the bbox - method of the listbox component, not the hull component.

    - -
  • -
  • By default, Pmw.MenuBar now automatically adds hotkeys to menus - and menu items for keyboard traversal. To turn this off, use the - hotkeys = 0 option.

    - -
  • -
  • The createcomponent() method now disallows the creation of - component names containing an underscore. If any component - names contain an underscore, rename them.

    - -
-

Porting from 0.5 to 0.6

- -

To port applications using Pmw version 0.5 to version 0.6, make - sure you are using python1.5. Then, simply change any lines in - your application like this:

- -
 from PmwLazy import Pmw
- -

to this:

- -
 import Pmw
- -

Also, if you have added the lib directory of a specific version - of Pmw to sys.path or PYTHONPATH, this can be removed, as long - as Pmw can now be found from the default path, such as in the - python site-packages directory.

- -

Porting from 0.2 to 0.4

- -
  • To get Pmw.0.2 default fonts (helvetica with bold italic menus - and italic scales) initialise with:

    -
     Pmw.initialise(fontScheme = 'pmw1')
    - -

    If no fontScheme is given, the standard Tk default fonts are used.

    - - -
  • -
  • Remove all calls to setdefaultresources(), usual(), keep(), - renameoptions(), ignore() and defineoptiontypes().

    - -
  • -
  • Move call to defineoptions() to before call to base class - constructor, create optiondefs tuple from self.defineoptions - arguments, then call defineoptions().

    - -
  • -
  • Remove resource class and name from optiondefs.

    - -
  • -
  • The last element in the optiondefs tuple (callback function) - must be given (may be None).

    - -
  • -
  • Add to classes currently without any options:

    -
     optiondefs = ()
    - self.defineoptions(kw, optiondefs)
    - - -
  • -
  • Use createcomponent() to create components - this replaces the - calls to the component widget constructor and to - registercomponent().

    - -
  • -
  • Do not inherit from Pmw.LabeledWidget. Instead, replace with - Pmw.MegaWidget with labelpos and labelmargin options and a call - to self.createlabel(). If calling createlabel(), must replace - pack() with grid().

    - -
  • -
  • When calling a megawidget constructor, include subcomponent name when - setting subcomponent options (eg labeltext -> label_text)

    - -
  • -
  • The items option of ScrolledListBox is an initialisation option - only - use setlist() method after initialisation.

    - -
  • -
  • The autorelief option for Counter, EntryField, ScrolledText, - TextDialog has been removed.

    - -
  • -
  • ScrolledListBox.getcurselection() always returns a tuple of strings, - possibly of zero length.

    - -
  • -
  • Counter increment is always initialised to 1.

    - -
  • -
  • The 'time' Counter datatype option has been replaced by - 'timeN' and 'time24'.

    - -
  • -
  • The 'time' EntryField validate option has been replaced by - 'timeN' and 'time24'.

    - -
  • -
  • Replace call to initialise() with initialiseoptions(), removing - "kw" arg. This should always be the last line in a megawidget - constructor.

    - -
  • -
  • Replace hide() with withdraw().

    - -
  • -
  • Now need iconpos option for MessageDialogs with icon_bitmap option set.

    - -
  • -
  • Example megawidget class definition:

    - -
-
class MyBigWidget(Pmw.MegaWidget):
-    def __init__(self, parent = None, **kw):
-
-        # Define the megawidget options.
-        optiondefs = (
-            ('errorbackground',   'pink',      None),
-            ('maxwidth',          0,           self._myfunc),
-            ('myinit',            'good',      Pmw.INITOPT),
-        )
-        self.defineoptions(kw, optiondefs)
-
-        # Initialise the base class (after defining the options).
-        Pmw.MegaWidget.__init__(self, parent)
-
-        # Create the components.
-        interior = self.interior()
-        self._widget = self.createcomponent('component',
-                (('alias', 'component_alias'),), None,
-                Tkinter.Button, (interior,))
-        self._widget.grid(column=0, row=0, sticky='nsew')
-
-        self.createlabel(interior)
-
-        # Initialise instance variables.
-        self.deriveddummy = None
-
-        # Check keywords and initialise options.
-        self.initialiseoptions(MyBigWidget)
-
- - - -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/refindex.html b/Pmw/Pmw_1_2/doc/refindex.html deleted file mode 100644 index 19a549e0..00000000 --- a/Pmw/Pmw_1_2/doc/refindex.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - Pmw reference manual index - - - - -

Pmw reference manual
index

- - -

- -

- -
Base classes
-Pmw.MegaArchetype -Pmw.MegaWidget -Pmw.MegaToplevel -
-
Widgets
-Pmw.ButtonBox -Pmw.ComboBox -Pmw.Counter -Pmw.EntryField -Pmw.Group -Pmw.HistoryText -Pmw.LabeledWidget -Pmw.MainMenuBar -Pmw.MenuBar -Pmw.MessageBar -Pmw.NoteBook -Pmw.OptionMenu -Pmw.PanedWidget -Pmw.RadioSelect -Pmw.ScrolledCanvas -Pmw.ScrolledField -Pmw.ScrolledFrame -Pmw.ScrolledListBox -Pmw.ScrolledText -Pmw.TimeCounter -
-
Dialogs
-Pmw.AboutDialog -Pmw.ComboBoxDialog -Pmw.CounterDialog -Pmw.Dialog -Pmw.MessageDialog -Pmw.PromptDialog -Pmw.SelectionDialog -Pmw.TextDialog -
-
Miscellaneous
-Pmw.Balloon -Pmw.Blt -Pmw.Color -Module functions -
- -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/scale1.gif b/Pmw/Pmw_1_2/doc/scale1.gif deleted file mode 100644 index 5cf5d60bb335123e116f6dd0b5806a3b350030fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1016 zcmVy*Z%+j+1c5{!^47tf|&pS|9^h~00000 z00000000000000000000EC2ui07d}x000F3kjP1^y*TU5yZ>M)j$~<`XsWJk>%MR- z&vcCzQkFeG-2$|%$ML`0=css?&RPPJQW*P8`jxZ|(+EFKTk z>k7IHk5A^;x}AW>?&WQ1Wq*B2dUirgii?YX6bOuwjgFL+mY0|&2AiCno}G@LqMiVu z1_h|8s;dB{f19hZs;#E7wzRLOwz0T-u)D0TzPiAvy>`FFsK;^1%FJud#n5Kbz|>&Y zyVzRVx5CK8&)_Tp0Tbrt=;;&QvfL-?66XZ;_4DoG)8r}X^z!Ne(sRd)p9+EV&LJc~ zFc^%50sjrucge-e>tj57|Ip!+K+>2=6Y@01^p{VW%UU)I zz;n`a*-Iilb^i1bbSKb`-*DPAN)+k4p*D&_tszzEIIH`xR@CZ|Ytmdfg?fEDwqRL@ zU~@8!>eOu7rBi8CeS0-mtGjsf-mO71Va!c>0|PLy7Uss3ED65^9G3*bg^V{up7D63 zV#$|j^o5)`!(Q#j9D*WS1ItVY#s_lx~*0!tQ9jDg3S$ zJm2jZj7O1bEQ7INyv3;u7apBw_37QNS3j!ycysOEV_>gssylP>;LpPt|GKpj!TcK$}eV00^3Bh;bxff*r&J;Y1T^X3vF* zWk}g(mU##oMx2SrT1F)z$QOjJIXEIp3%UrLiM-J`ql$E8mE%@BcGcro2f}q$NkiWB zBUwkf6=YpY>ewWYPx=@okm1-!oR!%WNMw=*R*B=3NP?-PmqPj=&|g{_$rnH^rsM0tXF8BjthkRGTEtDQ1_aa@wn>vccG> zs^zqH523!kaGE@ruqqqpoVLPw7>2~QK--yG&=sPBpzFRAmIx@oqlCYvw5t5(~pzpnxutH84oTr0ZYA&j2F`Y}wP!<0hYLbw6z zyXLSK=XtDz1{ce%#E$Km@rWOHyaKlHN?Y>CeU@wT$uX*1FS|3ldvD77;@mIG74w@Z m&jSO^)^mb|LUhrYB(3z)OgHWH(@;k(_0&{XZFLM00029+_62MJ diff --git a/Pmw/Pmw_1_2/doc/scale2.gif b/Pmw/Pmw_1_2/doc/scale2.gif deleted file mode 100644 index 5682715ea75621526b4bc20d4979aa6672218d7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1943 zcmV;I2Wa?5Nk%v~VU_^&0P_F<|Ns90008>y*8u+j|Nj8l+1bOx!-9f>0GR-P|9_d8 z0RR7g000000000000000EC2ui0G0ss000F3u*gZPy*TU5yZ>M)j$~<`XsWJk>%MR- z&vb3yc&_h!@BhG{a7Zi~b%~^M$xI9v(5Q4utxAW@Y!dObdcRQxHZdrh&t(Kx2qn1R z@VI=g5DSy&{6O8E`~PrtV|r+OYzu&ibap{_gl2|8ZHkm`f_G$(X={>*m6Vr_nVOM6 zlb?y9K#ruGrk<#Psz0ocr9Y>!ezQKcgttDqx^lcdzIwnt!oz`#tE0BAxUkG|#XQG( z$vn%|1lK!TYUAYOU3KW`>g(+2Smp5MZ0+>*=|}ka`uqI-{{H|27C1n#puvL%hagdo}?Txon^=9R})vpb}Yz2EIEY+}x00AaIhAesV z1jIEJm!K?Ra^%jIC15_PnFQwopFgASe3>y^7^hQ9W-Z#a)6yY4gWk=V^JvE(bfZok zx%cPME`ftE&YO7crOJalA5OhG^1QI8Q)WKUcH->2sdK+R7JT*X(|_ZBti5=8?`O?3 z9}mB-eCPD(zJ3v#_UixLLH@U1ZmP*fn`-2#G~jXthBn-3>Y4XogAmr2+=4Ph7?ytD zZRit*F(e4qO#(K>p?x04m!f{rg;-yUFo?JxiMN@^A&f6*NaKk(x}YOZCuU|NX+zT0 zV+%i)6(ou~s@NopAjbG&lsO*o(Un+cspXbMV#m^!V1{WWl|D}S5RL>L$wHE8p*d!k z<$XzInq(qrrko|v38#W*&iUqw7xtOwpHBvgCkc82>g7#ts<{H2ay44#ns+klr=u!B zdY7a%2sdGCCDP!jr-_bGY7E>N7+{Svr0O4?6;Xt#2J^iastmP;M`xJ4UP&mb_}R)T zuEFa1YY3+To9c0u{t~-vZJf4RtaZ)acOJ9R65E`yw*tE@wb^=m-mBH}ryaTBDoY`P z<(eCtgUNyruUy@hm2O(~wt4BKkG8w%zI%?y)4lW#J21eC#%bxGv!bBsULVB@QNt%Z zJQx5HPt0$o{_eFT#U@z1*vA{EAhKH)E()ZqK2pH$tj!*po~6CTS0zkw{V)<%sQudfevC zLax;M{kVJnkt=@rwT*w>_PBF19k<)$TJCIR6~^o?>g<}XwdPer3HH@uyDqbnUdujp z-G#0dwyB~YHa4HTci4Mhv;(iY$7~-@yz`AEF9O`c+kV&bH#eWVq0nQGH0-Z?-aYTz z`z}4Q!Ph{y@#T{pyOHP1n?4Qe3q3yj@0&k6*W9=Ny#LYLU-594Klg=CclWa&0KL~V z$z{)R1^izG13190O^|_;BTniZ=mO(x5Q3-sPwP0CK?98tgs>4$;RuK-6=qI+t#V=I zNT>qL1rCO|lA&+rX963p5P><=Vc%$of@$s0dV2FrXpTt46DVS+&0W!m`GxlJmI zoya8T>fmX{9=_{^^7Q82s2I)+?vt9gG^Phnm`y7R$BWf$U_Za7PEfk@mx^?eF#gL( z%v{Ejhl@<;Uoa}sfI`%l4y~gp`M1Vi^75kv-RML!>d}yv6r~S!=_i@jO_cRYOC+7? z#cql*i*`Vku>9$ zS52x{jq1vSb=9XF0IHzGiq@`bRCry^3 z0JNs&G8RvJ8dSpJGpabC4_^z*xp+eM29kAZUpHsjNai53XKid{9_!i2zGt$crDsJ` zd!W{!mIrTJEo|YnS-BeXub0(VXmct--LjRn7*Ok>>`K|-%67QME$#(`Q!CZv0(ZH` zZ7y_`OVsEdELPO50CNW>vFuV{yY^bFcU>#qUMZx!;}s2h%`1@hy7#^Cjjw#?OW*q1 d_rCbeuYUK--~RgdzW@%ffCo(A0?Ri706UE>;!FSl diff --git a/Pmw/Pmw_1_2/doc/starting.html b/Pmw/Pmw_1_2/doc/starting.html deleted file mode 100644 index be447450..00000000 --- a/Pmw/Pmw_1_2/doc/starting.html +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - Getting started with Pmw - - - - -

Getting started with Pmw

- -

- -

- -
-

Introduction

-

-This document describes how to fetch and install Pmw, and how to run -the demonstrations and tests. - -

- -
-

Requirements

-

-Pmw.1.2 requires the _tkinter and Tkinter modules. It works -with python versions 1.5.2 and greater (tested up to 2.2.1) and Tk -versions 8.0 and greater (tested up to 8.3.2). - -

- -

-If the BLT extension to Tk is present, Pmw will use the BLT busy -command during modal dialogs to display a clock cursor. Also, the -Pmw.Blt interface to the BLT busy, graph, stripchart, tabset and -vector commands will be available. BLT versions 2.4i and greater are -supported (tested up to 2.4u). You can find BLT at -http://www.tcltk.com/blt/. - -

- -
-

Distribution and installation

-

-Releases of the Pmw distribution are available via http from -http://download.sourceforge.net/pmw/. This release is available -as -Pmw.1.2.tar.gz, released on 5 August 2003. -This is a compressed tar file. Under Linux, Unix, etc, you will need to -unpack it using tar and you may also need to use -gzip or gunzip to uncompress it. -Under Microsoft Windows, you will need a program such as WinZip (http://www.winzip.com) that can -unpack the gzipped tar files. You may need to change the suffix of -the file to .tgz for WinZip to recognise it. - -

- -

- -This will unpack into a directory named Pmw. You now need to put this -directory somewhere python can find it, preferably in one of the -standard places, such as in the site-packages directory -(eg: /usr/lib/python2.2/site-packages/Pmw) or the -sys.prefix directory (eg: C:\Program -Files\Python\Pmw or /usr/lib/python2.2). - -

- -

- -For example, under Unix, assuming you have placed the tar file in the -/tmp directory, you can simply run the following -commands: - -

- -
-
-
-cd /usr/lib/python2.2/site-packages
-gunzip /tmp/Pmw.1.2.tar.gz (or gzip -d /tmp/Pmw.1.2.tar.gz)
-tar xvf /tmp/Pmw.1.2.tar
-
-
-
- -

- -If you do not have write permission for these standard directories, -place the Pmw -directory somewhere on your PYTHONPATH or -sys.path. If this is not possible, place the Pmw -directory somewhere else and add the parent directory to your -PYTHONPATH or sys.path. - -

- -

- -If you have previously installed Pmw version 0.6 or later, then the -new version can share the same Pmw directory as the -previous versions. You will need to perform the tar -extraction in the directory containing (that is, the parent directory -of) the existing Pmw directory. By default, your -applications will use the most recent version of Pmw. If required, -the function Pmw.setversion() can be used to specify a -version to be used. See the reference manual for details. If you are -no longer using the older versions, you can safely remove the -corresponding subdirectories from the Pmw directory. - -

- -

- -If you need assistance in installing BLT under Unix, please contact me -(gregm@iname.com) and I -will try to help. For other operating systems, such as Microsoft or -Macintosh, you should try asking the python newsgroup. If anyone can -give me a description of how to install BLT under other operating -systems please contribute it and I will place it here. - -

- -
-

Documentation

-

-The doc directory for each Pmw version contains all the -documentation for that version of Pmw. See the local home page for a complete list of documents. The -files in this directory are also available from the official Pmw home page. - -

- -

-An excellent tutorial and reference covering the Pmw interface to the -powerful Blt graph widget, "A User's Guide to -Pmw.Blt" written by Bjørn Ove Thue and Hans Petter Langtangen, is -available. You can also download the full -HTML document for local viewing. - -

-
-

Demonstrations and tests

-

- A good way to get an overview of the functionality provided by Pmw - is to run the demonstrations and tests and look at the demonstration - code. To view a comprehensive demonstration of many of the features - of Pmw run the All.py script, which can be found in the - demos subdirectory of each version of Pmw. -

- -

- - You do not have to install Pmw to run the demonstrations and tests, - simply change into the appropriate directory and run the file - All.py. See Demonstrations and tests for more - information about running the demonstrations and tests and how to - create your own. -

- -

- -Note that there are some bugs in later versions of BLT (at least 2.4t -and 2.4u) which cause some tests of Pmw.Blt.Graph to crash with -python2.0 under Linux. These tests have been commented out (until BLT -is fixed). - - -

-

Contributions welcome

- -

-If you create some whiz-bang megawidgets and would like to contribute -them to Pmw, they will be most welcome. You should be able to get -some idea of the coding style used in Pmw code by reading How to build Pmw megawidgets and by looking -at the Pmw library code itself in the lib directory of -each Pmw version. - -

- -

-If you would like to contribute a megawidget, it would be preferable if it -also came with a simple demonstration and a test script. See Demonstrations and tests for information -about how to create new demonstrations and tests. -

- -

-Each megawidget should also have a reference manual describing its -options, components and methods. - -

- - -
-

Generating the documentation

- -

-The released reference manuals are -automatically generated by merging specially marked-up text with the -output from megawidget query methods, such as -components(), options() and -componentaliases(), and various other introspective -devices. If you are interested to see how the documentation is generated, -you can fetch the marked-up text and the python script to convert the -text to html from - -http://download.sourceforge.net/pmw/Pmw.1.2.docsrc.tar.gz -. Download this -file into the Pmw/Pmw_1_2 directory of the Pmw source -tree. Unzip and untar the file. This will create a -docsrc sub-directory of Pmw/Pmw_1_2. If -you want to keep the documentation which came with the Pmw -distribution, rename the old doc directory. Then change -directory to docsrc and run createmanuals.py. -After printing lots of warnings about documentation that has not been -written yet, this will create a new doc directory -containing all the html documentation. -

- -

-Here is an example set of commands to unpack the documentation source -and regenerate the documentation, assuming you have downloaded the -source in the Pmw/Pmw_1_2 directory: -

- -
-
-
-cd Pmw/Pmw_1_2
-gunzip Pmw.1.2.docsrc.tar.gz
-tar xvf Pmw.1.2.docsrc.tar
-mv doc doc.old
-cd docsrc
-./createmanuals.py
-
-
-
- -

-If running under Unix, you will need to run the -createmanuals.py script with a valid DISPLAY environment -variable, since it creates each megawidget and then queries it for its -options, components, etc. This is because Tk (and hence Tkinter) -requires a connection to an X server to run. - -

- -
-

Future plans and bugs

- -

-The todo list contains a long list of of -suggestions, bugs and enhancements for Pmw. If you are interested in -doing any of these, please let the maintainer -(gregm@iname.com) know. -Some of the items in the todo list may be considered bugs. There are -also some other problems due to idiosyncrasies in the implementation -of Tk. - -

- -
-

Licence

- -

-The official Pmw licence (see copyright) -basically lets you do anything with Pmw as long as you don't hurt anyone. -There is also another licence, the "Postcard Licence": -

- -"I'd like to get a postcard from you! I'm interested in who is using -Pmw, where you live and where in the world Pmw is doing it's job" - -

-Please send me an e-mail to -gregm@iname.com -to get my postal address. -

- -
-

Acknowledgements

- -

-The initial ideas for Pmw were blatantly stolen from the itcl -extensions -[incr Tk] -by Michael McLennan and -[incr Widgets] -by Mark Ulferts. Several of the megawidgets are direct translations -from the itcl to python. -

- -

-The base classes and most megawidgets were written by Greg McFarlane -and Peter Munnings. Contributed megawidgets include: Pmw.TimeCounter -by Joe VanAndel, Pmw.Group and an early version of Pmw.NoteBook by Case Roole, -Pmw.ScrolledCanvas, Pmw.ScrolledFrame and another early version of -Pmw.NoteBook by Joe Saltiel -and Pmw.OptionMenu by Roman Sulzhyk. A big thank you to the following -people for their bug reports, fixes, enhancements and suggestions: - -David Ascher, -Robin Becker, -Siggy Brentrup, -Mark Colclough, -Jerome Gay, -Clemens Hintze, -Rob Hooft -Jack Jansen, -Jonathan Kelly, -Magnus Kessler, -Matthias Klose, -Andreas Kostyrka, -Fredrik Lundh, -Magnus Lycka, -Graham Matthews, -Dieter Maurer, -Michael McLay, -Daniel Michelson, -Georg Mischler, -Rob Pearson, -Case Roole, -Joe Saltiel, -Roman Sulzhyk, -Shen Wang, -Chris Wright, - and -Guido van Rossum. - -Special thanks to Case Roole and Michael McLay for help with getting -Pmw to work with python packages and many other nifty features. - -My deepest apologies if I have forgotten anyone. Please let me know. - -

- -

-The Pmw home page and project site is made available courtesy of -SourceForge. - -

-

- -The current maintainer is Greg McFarlane. I monitor the Pmw -discussion and announcement mailing list so please send any -problems, comments, suggestions or enhancements to the list. You may -also contact me directly at gregm@iname.com. - -

-
-
- - -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/todo.html b/Pmw/Pmw_1_2/doc/todo.html deleted file mode 100644 index 9ca6889f..00000000 --- a/Pmw/Pmw_1_2/doc/todo.html +++ /dev/null @@ -1,1111 +0,0 @@ - - - - - - Pmw todo list - - - - -

Pmw todo list

- -

-This is a long list of suggestions and enhancements for Pmw. If -you are interested in doing any of these, please let the Pmw maintainer -(gregm@iname.com) know.

- -

New Pmw megawidgets

-
  • Multicolumn listbox.

    -

    Useful features - smooth scrolling, embedded images, different - fonts and colours, text correctly masked when it is longer than - its column width, interactive resizing of columns.

    - -

    Probably should be implemented as canvas widget rather than by - using multiple frames or multiple listboxes. There would be a - lot of work needed to position all the elements - you can't just - pack or grid them.

    - - -
  • -
  • File dialog.

    - -
  • -
  • Main window class (App class), with menu bar, information line - with status boxes and an about box. (See iwidgets' mainwindow - class for example.) This should handle creation of multiple main - windows, recycling of unused main windows and should exit if - last open main window is closed.

    - -
  • -
  • Searchable text megawidget.

    - -
  • -
  • Tree browser.

    - -
  • -
  • Check out Doug Hellmann's contributed megawidgets at - <http://www.mindspring.com/~doughellmann/Projects/PmwContribD> or - <http://members.home.net/doughellmann/PmwContribD/> - and integrate into Pmw.

    - -
- -

Changes to current megawidgets

-

MegaToplevel

-
  • Modify activate() geometry argument to allow window positioning - relative to the pointer, another window or the screen and - allow the centering of the window relative to the - positioning point or by a specified offset. Also add the - ability to position the window so that the mouse is over a - particular widget in the toplevel.

    -

    Should handle all combinations of

    -
     when (always/first)
    - where (center/geometry/mouse)
    - parent (screen/window)
    -
    - and None (don't position)
    - - -

    Check Tix4.1.0/library/DialogS.tcl center method for how to - center over another window

    - -

    Check iwidget's shell.itk for code to center widget over - screen or another widget.

    - -

    See Pmw.Balloon code for how to position over pointer.

    - -

    Tcl code to center over another (parent) window:

    -
     # center client relative to master (default xoff, yoff = -1)
    - set geomaster [split [wm geometry $master] "x+"]
    - set geoclient [split [wm geometry $client] "x+"]
    -
    - if {$xoff == -1} {
    -   set xoff [expr (
    -     ([lindex $geomaster 0] - [lindex $geoclient 0]) / 2)]
    - }
    - set newxpos [expr [lindex $geomaster 2] + $xoff]
    -
    - if {$yoff == -1} {
    -   set yoff [expr (
    -     ([lindex $geomaster 1] - [lindex $geoclient 1]) / 2)]
    - }
    - set newypos [expr [lindex $geomaster 3] + $yoff]
    -
    - wm geometry $client +$newxpos+$newypos
    - - -

    More tcl code to center dialog over another (parent) window:

    -
     (args: parent dlg)
    - # First, display the dialog offscreen to get dimensions.
    - set screenW [winfo screenwidth $parent]
    - set screenH [winfo screenheight $parent]
    - set w [expr $screenW + 1]
    - wm geometry $dlg +$w+0
    - update
    -
    - # Get relative center of parent. 
    - set w [winfo width $parent]
    - set h [winfo height $parent]
    - set w [expr $w/2]
    - set h [expr $h/2]
    -
    - # Get and add screen offset of parent.
    - set w [expr $w + [winfo rootx $parent]]
    - set h [expr $h + [winfo rooty $parent]]
    -
    - # Get dimensions of dialog.
    - set dlgW [winfo width $dlg]
    - set dlgH [winfo height $dlg]
    -
    - # Make adjustments for actual dimensions of dialog.
    - set w [expr $w - $dlgW / 2]
    - set h [expr $h - $dlgH / 2]
    -
    - # Let's keep the entire dialog onscreen at all times.
    - # Center in screen if things are awry.
    - set recenter 0
    - if { $w < 0 } { set recenter 1 }
    - if { $h < 0 } { set recenter 1 }
    - if { [expr $w + $dlgW] > $screenW } { set recenter 1 }
    - if { [expr $h + $dlgH] > $screenH } { set recenter 1 }
    - if { $recenter } {
    -   set w [expr ($screenW -$dlgW) / 2]
    -   set h [expr ($screenH - $dlgH) / 2]
    - }
    -
    - wm geometry $dlg +$w+$h
    - - - -
  • -
  • Add geometry argument to show() (same as activate() above).

    - -
- -

Dialog

-
  • Add label (header?) to Dialog class. May not be necessary, or - too complicated.

    - -
- -

ButtonBox

-
  • When a horizontal ButtonBox is stretched, the left button - stays anchored to the left edge and there is too much space - between the last button and the right edge.

    - -
  • -
  • Add an option to either evenly space the buttons across the - button box, or to keep them together and justify them to the - left, right or center. Check that deleting buttons works - correctly.

    - -
- -

ComboBox

-
  • Remove arrowrelief option from ComboBox and do what counter - does: gets value of arrow's relief just before sinking it, - then restores it later.

    - -
  • -
  • Change bindings: remove all bindings from arrow key and remove - arrow key from <tab> focus sequence; only implement these - bindings on the entry widget:

    -
     Up    popup dropdown list, scroll up if already displayed
    - Down  popup dropdown list, scroll down if already displayed
    - Esc   popdown dropdown list, return entry to previous value
    - Enter popdown dropdown list, execute current selection
    - -

    Remove bindings from listbox and scrollbar(s), so that all - bindings are via the entry widget?

    - - -
  • -
  • When entering keys when list is displayed, scroll list to - first entry beginning with entered keys. If no match, - scroll list to top.

    - -
  • -
  • Remove many of the arrow bindings from Pmw.ComboBox - there - are just too many key bindings on the arrow button. There - is no need for it to respond to keys such as the up/down - keys when the adjacent Entry widget already does so. I - propose to remove all Pmw.ComboBox arrow button key bindings - except for <space>, which can be used to bring up the - dropdown list. The Entry widget behaviour would remain - unchanged: when it has focus, you can use the up/down keys - to go to the next/previous entries and then use <Return> to - invoke the selection command.

    -

    Alternatively, make the bindings the same as the MS-Windows - combobox. (Use the url entry field in Navigator or IE as an - example of MS-Windows behaviour). These have been reported - to be:

    -
    • All mouse actions are exclusively triggered by the left - button.

      - -
    • -
    • Right button displays "Direkthilfe" on my german system - ("Direct Help"). This is a floating button, that - triggers display of a tool tip like the |?| button that - appears next to the |x| at the right end of the title - bar of some native windows dialogs.

      - -
    • -
    • The arrow is very slim (acutally flat: width/height is - about 2/1)

      - -
    • -
    • Entry and popup have the same color ("window color")

      - -
    • -
    • The popup has a 1 pixel dark border, no spacing between - popup and scrollbar.

      - -
    • -
    • If the box has the focus, the full entry is displayed in - "selected" style.

      - -
    • -
    • If the box has the focus, up and left keys rotate items - up, down and right keys rotate items down, all with - immediate effect.

      - -
    • -
    • If the box has the focus, keys a-z (not case sensitive) - rotate through the items with same first character, with - immediate effect.

      - -
    • -
    • No separate focus for the arrowbutton

      - -
    • -
    • Discussing how the combobox behaves with arrow keys when - it has the focus: "The concept is almost identical to - what you already have, just gives more visual feedback. - In your current implementation you allow to rotate - through the values with the up and down arrow keys, - showing the strings in the entryfield, and accepting the - values when the user presses the spacebar (hmmm, how can - I exit this without moving back to the original value - manually?). On Windows, the choice is not shown in the - entryfield, but the popup opens when you press the up or - down arrow keys, as if you clicked on the arrowbutton, - and you then navigate the values in the listbox. This - avoids the display of not finally selected values in the - entryfield and is a lot more obvious and less confusing. - The current behaviour certainly confused me, which is - why I first proposed the changes to the moveup/down - methods." (Georg Mischler)

      - -
    - -

    Also, check bindings on other megawidgets for consistency.

    - - -
  • -
  • Modify Pmw.ComboBox so that the width of the entry widget is - forced to be the same as the width of the dropdown listbox. - If the "width" option to the standard listbox is 0, Tk sets - the requested width of the listbox to be just large enough - to hold the widest element in the listbox. Using this - option, I can see that listbox.winfo_reqwidth() is changing - as I insert items into an unmapped listbox. The question - is, how do I get notified of these events so that I can set - the width of the entry?

    -

    The problem is that the listbox is in another toplevel which - has not yet been displayed, so I can't bind to <Configure> - to determine its width.

    - -

    One suggestion is to override the insert and delete methods - of the Listbox class. The problem with this is what if the - font changed, or the borderwidth, etc? You would need to - override and check many more methods.

    - - -
  • -
  • Add ability to tearoff dropdown list (suggested by Dean N. - Williams).

    - -
  • -
  • Should be able to disable/enable arrow button.

    - -
- -

Counter

-
  • Add option for different increment/decrement behaviour. For - example, assuming increment is 1:

    -
    1. Current behaviour - move to the next multiple of the - increment, eg: 1.0 -> 2.0, 1.234 -> 2.0

      - -
    2. -
    3. Add or subtract the increment to whatever is displayed, - eg: 1.0 -> 2.0, 1.234 -> 2.234

      - -
    4. -
    5. Move to the next multiple of the increment, offset by some value. - eg: (if offset is 0.5) 0.5 -> 1.5, 1.234 -> 1.5, 1.678 -> 2.5

      - -
    - -
  • -
  • Add wrap option (to wrap around at limits) (then don't need - time24 arg to 'time' datatype).

    - -
  • -
  • Add a state option to disable Counter.

    - -
  • -
  • Add option to Counter to allow the buttons to be on the same - side, one on top of the other, like Tix, Itcl, Motif, - Windows 95, etc. There should probably also be an option to - lay the current large buttons on the same side of the entry - field, next to each other.

    - -
  • -
  • Redo TimeCounter using vertical Counter, add limitcommand - option to Counter to allow overflow from seconds to minutes - to hours

    - -
- -

Arrowed megawidgets (Counter, ComboBox, TimeCounter)

-
  • Potential construction speed up if Canvas arrows are replaced - by Label with Bitmap or BitmapImage. The hard part would be - to make the bitmap change size depending on size of Label.

    - -
  • -
  • Pmw.drawarrow should draw arrows which look like Tk cascade - menu arrows.

    - -
- -

EntryField

-
  • Can it be modified to change all entered characters to upper - or lower case automatically? Or first-upper or - first-of-each-word-upper?

    - -
  • -
  • If the validity of the currently displayed text is ERROR, - allow any changes, even those which result in invalid text. - This is useful when invalid data has been given to the - value option and the user is trying to correct it.

    - -
- -

LabeledWidget

-
  • Add tix-style border.

    - -
- -

MenuBar

-
  • Maybe Pmw.MenuBar should also have (optional) balloon help - for menu items as well as menu buttons. I am not sure - whether users would find this useful.

    - -
  • -
  • The status help hints do not appear when using F10/arrow - keys.

    - -
  • -
  • Look at the Tk8.0 menu demo and check the help bindings for - ideas, in particular, how can you get help when using - keyboard bindings.

    - -
  • -
  • Check the new menu features in Tk8.0 for creating "native" - menu bars and the special ".help" menu.

    - -
  • -
  • Add index() method.

    - -
  • -
  • Add a 'position' option to addmenu and deletemenu methods. - This option should accept an index number, a menuName or - Pmw.END.

    - -
  • -
  • Look at itcl menubar for ideas.

    - -
- -

Balloon

-
  • Positioning of the balloon with respect to the target - widget or canvas item: There are a number of ways that - Pmw.Balloon could be improved. For example, currently the - the top left corner of the balloon is positioned relative to - the bottom left corner of the target, offset by the - [xy]offset options. These options apply to all targets - - they can not be set differently for different targets.

    -

    To make it more configurable, the user should be able to - specify, for each target:

    -
    • the base position in the target relative to which the - balloon should be placed (n, s, e, w, nw, sw, ne, se, c) - (Currently sw)

      - -
    • -
    • the x and y offsets (Default (20, 1))

      - -
    • -
    • the position in the balloon that should be placed at the - offset position (n, s, e, w, nw, sw, ne, se, c) - (Currently nw)

      -

      Note, if this is anything other than nw, - update_idletasks() will need to be called to get the - size of the balloon before it is positioned - there is a - possibility that this may cause weird ugly flashing.

      - - -
    • -
    • whether either the base x or y position should be taken - relative to the current mouse position rather than as - one of the corners of the target. This would be useful - for large targets, such as text widgets, or strange - shaped canvas items. This could be specified using - special base positions, such as (nm, sm, em, wm). For - example, for 'sm', the x base position is the mouse x - position and y base position is the bottom (south) edge - of the target.

      - -
    - -

    The user should be able to specify global defaults for all - of these, as well as be able to override them for each - target. The Pmw.Balloon options and their defaults could - be:

    -
     basepoint   sw        # Position on target.
    - anchor      nw        # Position on the balloon
    - xoffset     20        # x distance between basepoint and anchor
    - yoffset     1         # y distance between basepoint and anchor
    - - -

    To be able to override these, the bind() and tagbind() - methods would have to accept these as additional arguments. - Each would default to None, in which case the default values - at the time the balloon is deiconified would be used.

    - -

    I'm not sure about how to handle the case when the balloon - is configured to come up under the mouse. When this happens - the balloon flashes on and off continuously. This can - happen now if you set the yoffset to a negative number. - Should the balloon widget detect this and do something about - it?

    - - -
  • -
  • Add showballoon(x, y, text) method to Balloon and use in - balloon help for a listbox:

    -

    On 3 Dec, Michael Lackhoff wrote:

    - -
     And another question:
    - Is it possible to create a balloon-help for the entries
    - in the listbox?  Not all the information is in the
    - listbox and it would be nice if a balloon help could
    - give addtional information.
    - -

    Rather than popup a balloon help window as the mouse moves - over items in the listbox, I think it would be better if it - pops up after you clicked on an item (or a short time - afterwards). Pmw.Balloon displays the balloon help a short - time after the mouse enters a widget, so is not directly - usable in this case. However, a method could be added to - Pmw.Balloon to request it to popup the balloon at a - particular x,y position. This method could be called from - the listbox_focus method above. Something like:

    -
     def listbox_focus(self, event):
    -     self.indexlist.component('listbox').focus_set()
    - -
         text = self.indexlist.getcurselection()
    -     # expand text to whatever you want:
    -     text = 'This is ' + text
    -     self.balloon.showballoon(x, y, text)
    - - -

    The Pmw.Balloon showballoon() method would have to set a - timer which sometime later calls another method which - displays the text. You would also need to bind - <ButtonRelease-1> to a hideballoon() method which withdraws - the popup.

    - - -
  • -
  • The balloon can be displayed off-screen if the window is - near the edge of the screen. Add a fix so that the balloon - always stays on the screen (but does not popup under the - mouse, otherwise it will immediately pop down).

    - -
  • -
  • Add a fix so that the balloon does not disappear if the - mouse enters it. Could do this by setting a short timer on - the Leave event before withdrawing the balloon and if there - is an Enter event on the balloon itself, do not withdraw it.

    - -
  • -
  • For tagged items in text widgets, the balloon is placed - relative to the character in the tagged item closest to the - mouse. This is not consistent: in the other cases - (including canvas), the balloon is placed relative to the - bottom left corner of the widget or canvas item. This - should also be the case for text items.

    - -
  • -
  • Is the new (in Tk8) "<<MenuSelect>>" event useful for - balloon and/or status help.

    - -
- -

MessageBar

-
  • Finish logmessage functionality.

    - -
  • -
  • Add colours and fonts to MessageBar message types. For - example, systemerror message types could have bold font on a - red background.

    - -
  • -
  • Add message logging history view (like the ddd debugger).

    - -
- -

NoteBook

-
  • Notebook should recalculate layout if the requested size of a tab - changes (eg font size, text, etc).

    - -
  • -
  • The tabpos option should accept s, e and w as well as n.

    - -
  • -
  • Possible new options (borrowed from iwidgets):

    -
    • equaltabs

      -

      If set to true, causes horizontal tabs to be equal in - in width and vertical tabs to equal in height.

      - -

      Specifies whether to force tabs to be equal sized or - not. A value of true means constrain tabs to be equal - sized. A value of false allows each tab to size based - on the text label size. The value may have any of the - forms accepted by the Tcl_GetBoolean, such as true, - false, 0, 1, yes, or no.

      - -

      For horizontally positioned tabs (tabpos is either s or - n), true forces all tabs to be equal width (the width - being equal to the longest label plus any padX speci- - fied). Horizontal tabs are always equal in height.

      - -

      For vertically positioned tabs (tabpos is either w or - e), true forces all tabs to be equal height (the height - being equal to the height of the label with the largest - font). Vertically oriented tabs are always equal in - width.

      - -

      Could have a special value which sets equal sized and - also forces tabs to completely fill notebook width - (apparently like - Windows).

      - - -
    • -
    • tabgap

      -

      Specifies the amount of pixel space to place between - each tab. Value may be any pixel offset value. In addi- - tion, a special keyword overlap can be used as the - value to achieve a standard overlap of tabs. This value - may have any of the forms acceptable to Tk_GetPixels.

      - - -
    • -
    • raiseselect

      -

      Sets whether to raise selected tabs slightly (2 pixels).

      - -

      Specifes whether to slightly raise the selected tab - from the rest of the tabs. The selected tab is drawn 2 - pixels closer to the outside of the tabnotebook than - the unselected tabs. A value of true says to raise - selected tabs, a value of false turns this feature off. - The default is false. The value may have any of the - forms accepted by the Tcl_GetBoolean, such as true, - false, 0, 1, yes, or no.

      - - -
    • -
    • bevelamount

      -

      Specifies pixel size of tab corners. 0 means no corners.

      - - -
    - -
  • -
  • There should be a way to temporarily hide a page, without - deleting it (like pack_forget). (Suggested by Michel Sanner)

    - -
- -

OptionMenu

-
  • Should accept focus and obey up and down arrow keys.

    - -
- -

PanedWidget

-
  • Add index() method

    - -
  • -
  • Modify all methods so that they accept Pmw.END as a pane - identifier as well as an index or a name.

    - -
  • -
  • Check iwidgets pane and panedwindow classes.

    - -
- -

RadioSelect

-
  • Add insert() and delete() methods.

    - -
  • -
  • The index method should have forInsert argument.

    - -
  • -
  • Add Pmw.SELECT to index() method. For single selectmode - this returns an integer, for multiple selectmode this - returns a list of integers.

    - -
  • -
  • Add option to set background color on selected buttons. - Maybe should also be able set selected foreground as well. - Any others?

    - -
- -

LogicalFont

-
  • Add boldFixed fonts,

    - -
  • -
  • Search for closest size font if no exact match.

    - -
  • -
  • Maybe replace with Tk8.0 font mechanism.

    - -
  • -
  • Can the Tk8.0 font measuring functionality be used in Pmw somehow?

    - -
- -

Scrolled widgets

-
  • Can some common scrolling methods be factored out, either as - a base class, "ScrolledMixin" mixin class or as helper functions? - Candidate methods: constructor, destroy, interior, _hscrollMode, - _vscrollMode, _configureScrollCommands, _scrollXNow, _scrollYNow, - _scrollBothLater, _scrollBothNow, _toggleHorizScrollbar, - _toggleVertScrollbar.

    - -
  • -
  • ScrolledField should have optional arrow buttons, so that it - can still be scrolled even if the mouse does not have a - middle button.

    - -
- -

Miscellaneous

-
  • Add a button to the Pmw "Stack trace window" which - optionally removes all grabs:

    -

    I normally interact with the "Stack trace window" - immediately, and dismiss it afterwards. In many cases - where a bug appears like this, the rest of the application - is still functional (many of the problems appearing at - this stage of development of my application are unforeseen - exceptions communicating with a robot on the other end of - a socket, not affecting the GUI per se). For that reason - I'd prefer if the "stack trace window" would push another - grab on the grab stack (if any grabs are active at the - moment the exception occurs). Could the window have an - extra "Terminate application" option for this case?

    - - -
  • -
  • need to handle component option queries in configure():

    -
     foo = Pmw.AboutDialog(applicationname = 'abc XYZ')
    - foo.component('message').configure('text')    - works
    - foo.cget('message_text')                      - works
    - foo.configure('message_text')                 - doesn't
    - - -
  • -
  • Implement bindings (ComboBox, etc) via a dictionary lookup, - to allow people to invent new bindings, such as for - handicapped users. (Suggested by Michael McLay)

    - -
  • -
  • Modify bundlepmw.py so that it checks Pmw.def to see that no - files have been missed.

    - -
  • -
  • Potential cheap speedup by adding this to each module, or - inside functions if it has a loop containing calls to - builtins:

    -
     from __builtin__ import *
    - - -
  • -
  • Look at how update_idletasks and after_* are used in Pmw - - are they consistent? could it be improved? What are the - problems of using these on other bits of an application - (such as when the size of the toplevel is being determined - for the window manager).

    - -
  • -
  • If lots of errors occur (such as in a fast time callback) - the error window may not appear, since Tk will wait until it - is idle - which may never occur. The solution is to call - update_idletask when updating the error window, but only - after a short time has passed. This will provide better - user response. However, it may not be possible to do this - if some python interpretes (omppython, for example) do not - handle calls to update_idletasks at certain times.

    - -
  • -
  • In the Pmw FAQ, in the "Why don't Pmw megawidgets have a - 'state' option?" section, it mentions several Pmw - megawidgets that can not be disabled. Fix them.

    - -
  • -
  • Add RCSID version string to all files.

    - -
  • -
  • When raising exceptions use the third argument to raise:

    -
     raise SimulationException, msg, sys.exc_info()[2]
    - - -
  • -
  • When update_idletasks is called all pending changes are - flushed to the window system server. However, it may take - some time for the server to display the changes. If it is - required that the display be up-to-date, update_idletasks - should be followed by a call that blocks until processed by - the server and a reply received. This may be useful in - Pmw.busycallback to ensure the busy cursor remains visible - until the display is actually modified.

    - -
  • -
  • There is a small bug which appears only with Tk8.0 (the bug - is not apparent with Tk4.2). If a dialog is activated and - pops up directly over the cursor and the dialog has a - default button, then pressing the <strong>Return</strong> - key will not invoke the default button. If you move the - mouse out of and then back into the dialog, pressing the - <strong>Return</strong> key will work. This behaviour has - been noticed in Tcl-only programs, so it is probably a bug - in Tk. (Tested on Solaris.)

    - -
  • -
  • Modify PmwBlt.py to use blt2.4 instead of blt8.0.unoff. - Nick Belshaw <nickb@earth.ox.ac.uk> is looking at wrapping - the new BLT StripChart and TabSet into Pmw.

    - -
  • -
  • Perhaps Pmw should have its own exception defined, like - TkInters's TclError, perhaps called PmwError.

    - -
  • -
  • This one is caused by a bug in the implementation of Tcl/Tk - for Microsoft Windows NT (and maybe other Microsoft - products). Mouse release events can get lost if the - grab_set and grab_release commands are used and the mouse - goes outside of the window while the mouse button is down. - This can occur while Pmw modal dialogs are active. Below - is some Tkinter-only code which demonstrates the problem. - Maybe there is a work around.

    -
     # Test script to demonstrate bug in Tk
    - #implementation of grab under NT.
    -                                 
    - # Click on "Dialog" to bring up the modal
    - # dialog window.  Then button down on the scale,
    - # move the mouse outside the window,
    - # then button up.  The scale slider will still
    - # be sunken and clicks on the "OK" button
    - # will be ineffective.
    - 
    - import Tkinter
    - 
    - def activate():
    -     waitVar.set(0)
    -     toplevel.deiconify()
    -     toplevel.wait_visibility()
    -     toplevel.grab_set()        # Problem here
    -     toplevel.focus_set()
    -     toplevel.wait_variable(waitVar)
    - 
    - def deactivate():
    -     toplevel.withdraw()
    -     toplevel.grab_release()    # and here
    -     waitVar.set(1)
    - 
    - root = Tkinter.Tk()
    - toplevel = Tkinter.Toplevel()
    - waitVar = Tkinter.IntVar()
    - toplevel.withdraw()
    - scale = Tkinter.Scale(toplevel, orient='horizontal', length=200)
    - scale.pack()
    - button = Tkinter.Button(toplevel, text='OK', command=deactivate)
    - button.pack()
    - 
    - button = Tkinter.Button(text='Dialog', command=activate)
    - button.pack()
    - button = Tkinter.Button(text='Exit', command=root.destroy)
    - button.pack()
    - 
    - root.mainloop()
    - - -
- - -

Documentation

-
  • Document how to get Pmw working on a Mac, for example:

    -
    • Unzip and untar

      -

      This depends on what you use to unpack the tar file. If - you use (macgzip and) SunTar you have to tell it that files - with ".py" extensions are text files (in the - preferences/file type section). If you use stuffit - expander: this can be made to do the conversion - correctly, but it could be that this only works if you set - the .py extension correctly in Internet Config.

      - -
      • Where do you untar Pmw?

        - -
      • -
      • How do you get line terminators correct (carriage - return/line feed)?

        - -
      • -
      • Is there any problem with file name case? (mixed - upper/lower case)

        - -
      • -
      • Is there any problem with file name length?

        - -
      -

      (Joseph Saltiel says: It was the same type of operation - as in Windows/Unix. Run a program that unzips it and - untars it. It seems to get case and length right on its - own.)

      - - -
    • -
    • Let python know where Pmw is

      -
      • If Pmw is in its own folder you will have to add the - parent of that folder to the sys paths in Edit - PythonPaths. If it is in the Python home folder, you - do not need to do this.

        - -
      • -
      • Make sure that the Pmw folder is called "Pmw" and not - something else. Since Pmw is a package, python expects - to find a "Pmw" folder somewhere in sys.path.

        - -
      -

      (Joseph Saltiel says: With the Python distribution on the - Mac there is an application called editPythonPrefs, when - you run it it gives you a list of a paths. These paths - are similiar to the PYTHONPATH variable. I just added the - path to Pmw at the bottom of this list.)

      - - -
    - -
  • -
  • Document general ideas about building guis, eg:

    -

    When I write gui applications, I usually defer creation of windows - as much as possible - this means that the application starts up - quickly because it usually only has to create the main window. - Whenever another window is required for the first time, it is - created then. When the user has finished with the window, the - window is withdrawn, not deleted, so that next time it is required - it much faster to come up.

    - -

    In summary - don't create a window until you need and - don't destroy a window if you may want it again.

    - -

    The amount of memory required to keep the windows should not be - very much - except for very long running programs where the user - may create thousands of different windows.

    - - -
  • -
  • Add class hierarchy diagram to documentation:

    -
     MegaArchetype
    -     MegaToplevel
    -        etc
    -     MegaWidget
    -        etc
    - - -
  • -
  • Add to doco something like: "Another way to extend a Pmw - megawidget is to specify a non-default type for one of the - components. For example text_pytype = FontText."

    - -
  • -
  • Document pyclass and pyclass = None (options for null components - are ignored; the only time this can be used is with the - Group's tag component - all - other's use the component widget in some way)

    - -
  • -
  • Create index of all Pmw methods, functions, options, components.

    - -
  • -
  • Add description of how to run the Pmw demos without installing.

    - -
  • -
  • Add description of how to install Pmw.

    - -
  • -
  • Describe grid structure of megawidgets, so that it is possible - to extend megawidgets by adding new widgets into the interior - (hence avoiding a childsite in most megawidgets)

    - -
  • -
  • Document error display and difference between callback and - binding error reports.

    - -
  • -
  • Document difference between 'Helvetica 12' and 'Helvetica size: 12' - in logicalfont.

    - -
  • -
  • Add to howtouse, to describe using the option database to set - options for a specific megawidget:

    -
     import Pmw
    - root = Pmw.initialise(useTkOptionDb = 1)
    - root.option_add('*entryfield24*Label.text', 'German')
    - e = Pmw.EntryField(hull_name = 'entryfield24', labelpos = 'w')
    - e.pack()
    - root.update()
    - - -
  • -
  • Also document hull_name and hull_class.

    - -
  • -
  • Finish FAQ, ReleaseProcedure and StructuredText test.

    - -
  • -
  • Put html through gifwizard and html lint.

    -
     http://www.cen.uiuc.edu/cgi-bin/weblint
    - (eg: http://www.cre.canon.co.uk/~neilb/weblint/manpage.html)
    - - -
  • -
  • Delete comments from source if they have been added to docs - (should not have two copies of anything).

    - -
  • -
  • Need to document non-standard initial values for component - options, such as border in ButtonBox and Dialog's childsite.

    - -
  • -
  • Docs should have DEFAULT BINDINGS section (like iwidget combobox).

    - -
  • -
  • Promote home page:

    -
     http://www.geocities.com/homestead/promote.html
    - http://www.submit-it.com/subopt.htm, etc
    - - -
  • -
  • Create man pages as well as html (modify createmanuals to produce both).

    - -
  • -
  • Maybe something with html frames like: itcl2.2/html/index.html

    - -
  • -
  • Add to starting.html a note that Pmw is a python "package" and add - a pointer to python documentation on packages.

    - -
  • -
  • Document scrolled widget implementations, explaining why they - are all slightly different (because the underlying widgets which - are being scrolled have different behaviors).

    - -
  • -
  • Make copyright clearer. Maybe borrow python's?

    - -
- -

Demos

-
  • Check for missing demos.

    - -
  • -
  • In all demos can move the three lines beginning with "Import Pmw - from the sibling directory", to inside "if __name__" clause. - Also, "sibling directory" is now incorrect. Also, add note that - this is only necessary when running demos without installing Pmw.

    - -
  • -
  • Change demo/All.py so that it displays the traceback if it - cannot load or run a demo (easier for users to report errors).

    - -
  • -
  • Add option to demo/All.py: "Display demos in separate window" - to allow resizing of sub-demos

    - -
  • -
  • TimeCounter and Spectrum demos beep when they come up, using:

    -
     root.option_add('*EntryField*value', 'VALUE')
    - - -
  • -
  • In demos, add title = 'blah' to top of file and replace - root.title(..) with root.title(title) at bottom.

    - -
  • -
  • Add comprehensive speed test demo which creates one or more of - each (common) megawidget. Remove old SpeedTest demo.

    - -
  • -
  • Check demos work when called from ptui. (Changes have to do - with calling compile/exec where __name__ is not the name of the - All.py script, but is '__builtin__')

    - -
  • -
  • PromptDialog demo should not remember password.

    - -
  • -
  • Finish Counter, Radioselect demos.

    - -
  • -
  • Modify the All demo so that you can reload a demo module.

    - -
  • -
  • The syntax-coloured code viewer looks strange on Microsoft NT, - because the size of the fonts differ. Check out Guido's - idle-0.1 text colouring for Pmw code viewer.

    - -
  • -
  • Document restrictions on adding bindings to a megawidget: you - probably need to bind to components of the megawidget and also - check that you are not destroying bindings set up by the - megawidget itself.

    - -
  • -
  • Add a demo that demonstrates setting the color scheme at run time.

    - -
- -

Tests

-
  • Check for missing tests, such as TimeCounter, RadioSelect, - SelectionDialog, MessageBar, MenuBar, ComboBoxDialog, Balloon.

    - -
  • -
  • Create test for useTkOptionDb option to Pmw.initialise().

    - -
  • -
  • Check that destroyed widgets' python classes are garbage - collected (add test and/or demo).

    - -
  • -
  • Add tests for changecolor, setscheme, etc.

    - -
  • -
  • Need Resources test.

    - -
  • -
  • Create tests for deriving from Pmw classes (eg ComboBox).

    - -
- -

Ideas

-
  • Add more Tix (www.xpi.com/tix/screenshot.html) and iwidgets widgets.

    - -
  • -
  • Look at spinner.itk for how to do vertical orientation on - same side for Counter.

    - -
  • -
  • Investigate these new features in Tk8.0 and see if they could be - used in Pmw:

    -
     embedded images in text widgets
    - destroy command ignores windows that don't exist
    -
    - - -
- - - -

- -

- - - -

- Pmw 1.2 - - 5 Aug 2003 - - Home - -

-
- - - - diff --git a/Pmw/Pmw_1_2/doc/transdove.gif b/Pmw/Pmw_1_2/doc/transdove.gif deleted file mode 100644 index a9d83cdc4a3f0145965f91c92cb5068f60ac878f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmZ?wbhEHbbYt*l_{abP|G@yrQ2fcl$-uzGp!iQyLBTV(Ait<2HANwixHMbzq$kNQzQZGF-jX?)w1jw+1$VM^!o6^7X^jm((8OFD|1D7s)#-BCM zxNTVpS8CR}8LNW|PIn$KEjL%cA9;>Rt;%G+zx%42Eo+v2=4^e(cSfVbVoj8?drbN1 zzinF{+&Dhtb?4sL$Z0v352{{P*s!;5*Xcj|f?qCg7s*(@$Wg+jw4-9#GKLd37EDtY z*Npt`h*g4rc+DjUgC=&xf3Gs%l{%D|DLp?{AK&pYaO3mV1soojOV>oq8C4^po;pE@sU-R$YoyhBkC&i7f z-%Al$k>z?KyvwZT;))L~dy|V38YWpxnzuiZ*>#yZ|>6wUwc_~ a(z)eTHq-9T=J==@)E=|Dsx*Ls!5RRg55tlG diff --git a/Pmw/Pmw_1_2/lib/Pmw.def b/Pmw/Pmw_1_2/lib/Pmw.def deleted file mode 100644 index 5965c118..00000000 --- a/Pmw/Pmw_1_2/lib/Pmw.def +++ /dev/null @@ -1,58 +0,0 @@ -# [Emacs: -*- python -*-] -# --- This is the Pmw definition file --- -# -# It is invoked by the Pmw dynamic loader in Pmw.__init__. -# -# widgets : tuple with the names of those widget classes that are -# stacked in a module of the same name. -# widgetclasses : dictionary from names of widget classes to module names. -# functions : dictionary from function names to modules names. -# modules : tuple of module names that don't contain widget classes -# of the same name. -# - -# Widgets whose name is the same as its module. -_widgets = ( - 'AboutDialog', 'Balloon', 'ButtonBox', 'ComboBox', - 'ComboBoxDialog', 'Counter', 'CounterDialog', 'Dialog', - 'EntryField', 'Group', 'HistoryText', 'LabeledWidget', - 'MainMenuBar', 'MenuBar', 'MessageBar', - 'MessageDialog', 'NoteBook', 'OptionMenu', 'PanedWidget', - 'PromptDialog', 'RadioSelect', 'ScrolledCanvas', 'ScrolledField', - 'ScrolledFrame', 'ScrolledListBox', 'ScrolledText', 'SelectionDialog', - 'TextDialog', 'TimeCounter', -) - -# Widgets whose name is not the same as its module. -_extraWidgets = { -} - -_functions = { - 'logicalfont' : 'LogicalFont', - 'logicalfontnames' : 'LogicalFont', - 'aboutversion' : 'AboutDialog', - 'aboutcopyright' : 'AboutDialog', - 'aboutcontact' : 'AboutDialog', - 'datestringtojdn' : 'TimeFuncs', - 'timestringtoseconds' : 'TimeFuncs', - 'setyearpivot' : 'TimeFuncs', - 'ymdtojdn' : 'TimeFuncs', - 'jdntoymd' : 'TimeFuncs', - 'stringtoreal' : 'TimeFuncs', - 'aligngrouptags' : 'Group', - 'OK' : 'EntryField', - 'ERROR' : 'EntryField', - 'PARTIAL' : 'EntryField', - 'numericvalidator' : 'EntryField', - 'integervalidator' : 'EntryField', - 'hexadecimalvalidator' : 'EntryField', - 'realvalidator' : 'EntryField', - 'alphabeticvalidator' : 'EntryField', - 'alphanumericvalidator' : 'EntryField', - 'timevalidator' : 'EntryField', - 'datevalidator' : 'EntryField', -} - -_modules = ( - 'Color', 'Blt', -) diff --git a/Pmw/Pmw_1_2/lib/PmwAboutDialog.py b/Pmw/Pmw_1_2/lib/PmwAboutDialog.py deleted file mode 100644 index fe78d276..00000000 --- a/Pmw/Pmw_1_2/lib/PmwAboutDialog.py +++ /dev/null @@ -1,52 +0,0 @@ -import Pmw - -class AboutDialog(Pmw.MessageDialog): - # Window to display version and contact information. - - # Class members containing resettable 'default' values: - _version = '' - _copyright = '' - _contact = '' - - def __init__(self, parent = None, **kw): - - # Define the megawidget options. - INITOPT = Pmw.INITOPT - optiondefs = ( - ('applicationname', '', INITOPT), - ('iconpos', 'w', None), - ('icon_bitmap', 'info', None), - ('buttons', ('Close',), None), - ('defaultbutton', 0, None), - ) - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.MessageDialog.__init__(self, parent) - - applicationname = self['applicationname'] - if not kw.has_key('title'): - self.configure(title = 'About ' + applicationname) - - if not kw.has_key('message_text'): - text = applicationname + '\n\n' - if AboutDialog._version != '': - text = text + 'Version ' + AboutDialog._version + '\n' - if AboutDialog._copyright != '': - text = text + AboutDialog._copyright + '\n\n' - if AboutDialog._contact != '': - text = text + AboutDialog._contact - - self.configure(message_text=text) - - # Check keywords and initialise options. - self.initialiseoptions() - -def aboutversion(value): - AboutDialog._version = value - -def aboutcopyright(value): - AboutDialog._copyright = value - -def aboutcontact(value): - AboutDialog._contact = value diff --git a/Pmw/Pmw_1_2/lib/PmwBalloon.py b/Pmw/Pmw_1_2/lib/PmwBalloon.py deleted file mode 100644 index e1f88683..00000000 --- a/Pmw/Pmw_1_2/lib/PmwBalloon.py +++ /dev/null @@ -1,365 +0,0 @@ -import os -import string -import Tkinter -import Pmw - -class Balloon(Pmw.MegaToplevel): - def __init__(self, parent = None, **kw): - - # Define the megawidget options. - optiondefs = ( - ('initwait', 500, None), # milliseconds - ('label_background', 'lightyellow', None), - ('label_foreground', 'black', None), - ('label_justify', 'left', None), - ('master', 'parent', None), - ('relmouse', 'none', self._relmouse), - ('state', 'both', self._state), - ('statuscommand', None, None), - ('xoffset', 20, None), # pixels - ('yoffset', 1, None), # pixels - ('hull_highlightthickness', 1, None), - ('hull_highlightbackground', 'black', None), - ) - self.defineoptions(kw, optiondefs) - - # Initialise the base class (after defining the options). - Pmw.MegaToplevel.__init__(self, parent) - - self.withdraw() - self.overrideredirect(1) - - # Create the components. - interior = self.interior() - self._label = self.createcomponent('label', - (), None, - Tkinter.Label, (interior,)) - self._label.pack() - - # The default hull configuration options give a black border - # around the balloon, but avoids a black 'flash' when the - # balloon is deiconified, before the text appears. - if not kw.has_key('hull_background'): - self.configure(hull_background = \ - str(self._label.cget('background'))) - - # Initialise instance variables. - self._timer = None - - # The widget or item that is currently triggering the balloon. - # It is None if the balloon is not being displayed. It is a - # one-tuple if the balloon is being displayed in response to a - # widget binding (value is the widget). It is a two-tuple if - # the balloon is being displayed in response to a canvas or - # text item binding (value is the widget and the item). - self._currentTrigger = None - - # Check keywords and initialise options. - self.initialiseoptions() - - def destroy(self): - if self._timer is not None: - self.after_cancel(self._timer) - self._timer = None - Pmw.MegaToplevel.destroy(self) - - def bind(self, widget, balloonHelp, statusHelp = None): - - # If a previous bind for this widget exists, remove it. - self.unbind(widget) - - if balloonHelp is None and statusHelp is None: - return - - if statusHelp is None: - statusHelp = balloonHelp - enterId = widget.bind('', - lambda event, self = self, w = widget, - sHelp = statusHelp, bHelp = balloonHelp: - self._enter(event, w, sHelp, bHelp, 0)) - - # Set Motion binding so that if the pointer remains at rest - # within the widget until the status line removes the help and - # then the pointer moves again, then redisplay the help in the - # status line. - # Note: The Motion binding only works for basic widgets, and - # the hull of megawidgets but not for other megawidget components. - motionId = widget.bind('', - lambda event = None, self = self, statusHelp = statusHelp: - self.showstatus(statusHelp)) - - leaveId = widget.bind('', self._leave) - buttonId = widget.bind('', self._buttonpress) - - # Set Destroy binding so that the balloon can be withdrawn and - # the timer can be cancelled if the widget is destroyed. - destroyId = widget.bind('', self._destroy) - - # Use the None item in the widget's private Pmw dictionary to - # store the widget's bind callbacks, for later clean up. - if not hasattr(widget, '_Pmw_BalloonBindIds'): - widget._Pmw_BalloonBindIds = {} - widget._Pmw_BalloonBindIds[None] = \ - (enterId, motionId, leaveId, buttonId, destroyId) - - def unbind(self, widget): - if hasattr(widget, '_Pmw_BalloonBindIds'): - if widget._Pmw_BalloonBindIds.has_key(None): - (enterId, motionId, leaveId, buttonId, destroyId) = \ - widget._Pmw_BalloonBindIds[None] - # Need to pass in old bindings, so that Tkinter can - # delete the commands. Otherwise, memory is leaked. - widget.unbind('', enterId) - widget.unbind('', motionId) - widget.unbind('', leaveId) - widget.unbind('', buttonId) - widget.unbind('', destroyId) - del widget._Pmw_BalloonBindIds[None] - - if self._currentTrigger is not None and len(self._currentTrigger) == 1: - # The balloon is currently being displayed and the current - # trigger is a widget. - triggerWidget = self._currentTrigger[0] - if triggerWidget == widget: - if self._timer is not None: - self.after_cancel(self._timer) - self._timer = None - self.withdraw() - self.clearstatus() - self._currentTrigger = None - - def tagbind(self, widget, tagOrItem, balloonHelp, statusHelp = None): - - # If a previous bind for this widget's tagOrItem exists, remove it. - self.tagunbind(widget, tagOrItem) - - if balloonHelp is None and statusHelp is None: - return - - if statusHelp is None: - statusHelp = balloonHelp - enterId = widget.tag_bind(tagOrItem, '', - lambda event, self = self, w = widget, - sHelp = statusHelp, bHelp = balloonHelp: - self._enter(event, w, sHelp, bHelp, 1)) - motionId = widget.tag_bind(tagOrItem, '', - lambda event = None, self = self, statusHelp = statusHelp: - self.showstatus(statusHelp)) - leaveId = widget.tag_bind(tagOrItem, '', self._leave) - buttonId = widget.tag_bind(tagOrItem, '', self._buttonpress) - - # Use the tagOrItem item in the widget's private Pmw dictionary to - # store the tagOrItem's bind callbacks, for later clean up. - if not hasattr(widget, '_Pmw_BalloonBindIds'): - widget._Pmw_BalloonBindIds = {} - widget._Pmw_BalloonBindIds[tagOrItem] = \ - (enterId, motionId, leaveId, buttonId) - - def tagunbind(self, widget, tagOrItem): - if hasattr(widget, '_Pmw_BalloonBindIds'): - if widget._Pmw_BalloonBindIds.has_key(tagOrItem): - (enterId, motionId, leaveId, buttonId) = \ - widget._Pmw_BalloonBindIds[tagOrItem] - widget.tag_unbind(tagOrItem, '', enterId) - widget.tag_unbind(tagOrItem, '', motionId) - widget.tag_unbind(tagOrItem, '', leaveId) - widget.tag_unbind(tagOrItem, '', buttonId) - del widget._Pmw_BalloonBindIds[tagOrItem] - - if self._currentTrigger is None: - # The balloon is not currently being displayed. - return - - if len(self._currentTrigger) == 1: - # The current trigger is a widget. - return - - if len(self._currentTrigger) == 2: - # The current trigger is a canvas item. - (triggerWidget, triggerItem) = self._currentTrigger - if triggerWidget == widget and triggerItem == tagOrItem: - if self._timer is not None: - self.after_cancel(self._timer) - self._timer = None - self.withdraw() - self.clearstatus() - self._currentTrigger = None - else: # The current trigger is a text item. - (triggerWidget, x, y) = self._currentTrigger - if triggerWidget == widget: - currentPos = widget.index('@%d,%d' % (x, y)) - currentTags = widget.tag_names(currentPos) - if tagOrItem in currentTags: - if self._timer is not None: - self.after_cancel(self._timer) - self._timer = None - self.withdraw() - self.clearstatus() - self._currentTrigger = None - - def showstatus(self, statusHelp): - if self['state'] in ('status', 'both'): - cmd = self['statuscommand'] - if callable(cmd): - cmd(statusHelp) - - def clearstatus(self): - self.showstatus(None) - - def _state(self): - if self['state'] not in ('both', 'balloon', 'status', 'none'): - raise ValueError, 'bad state option ' + repr(self['state']) + \ - ': should be one of \'both\', \'balloon\', ' + \ - '\'status\' or \'none\'' - - def _relmouse(self): - if self['relmouse'] not in ('both', 'x', 'y', 'none'): - raise ValueError, 'bad relmouse option ' + repr(self['relmouse'])+ \ - ': should be one of \'both\', \'x\', ' + '\'y\' or \'none\'' - - def _enter(self, event, widget, statusHelp, balloonHelp, isItem): - - # Do not display balloon if mouse button is pressed. This - # will only occur if the button was pressed inside a widget, - # then the mouse moved out of and then back into the widget, - # with the button still held down. The number 0x1f00 is the - # button mask for the 5 possible buttons in X. - buttonPressed = (event.state & 0x1f00) != 0 - - if not buttonPressed and balloonHelp is not None and \ - self['state'] in ('balloon', 'both'): - if self._timer is not None: - self.after_cancel(self._timer) - self._timer = None - - self._timer = self.after(self['initwait'], - lambda self = self, widget = widget, help = balloonHelp, - isItem = isItem: - self._showBalloon(widget, help, isItem)) - - if isItem: - if hasattr(widget, 'canvasx'): - # The widget is a canvas. - item = widget.find_withtag('current') - if len(item) > 0: - item = item[0] - else: - item = None - self._currentTrigger = (widget, item) - else: - # The widget is a text widget. - self._currentTrigger = (widget, event.x, event.y) - else: - self._currentTrigger = (widget,) - - self.showstatus(statusHelp) - - def _leave(self, event): - if self._timer is not None: - self.after_cancel(self._timer) - self._timer = None - self.withdraw() - self.clearstatus() - self._currentTrigger = None - - def _destroy(self, event): - - # Only withdraw the balloon and cancel the timer if the widget - # being destroyed is the widget that triggered the balloon. - # Note that in a Tkinter Destroy event, the widget field is a - # string and not a widget as usual. - - if self._currentTrigger is None: - # The balloon is not currently being displayed - return - - if len(self._currentTrigger) == 1: - # The current trigger is a widget (not an item) - triggerWidget = self._currentTrigger[0] - if str(triggerWidget) == event.widget: - if self._timer is not None: - self.after_cancel(self._timer) - self._timer = None - self.withdraw() - self.clearstatus() - self._currentTrigger = None - - def _buttonpress(self, event): - if self._timer is not None: - self.after_cancel(self._timer) - self._timer = None - self.withdraw() - self._currentTrigger = None - - def _showBalloon(self, widget, balloonHelp, isItem): - - self._label.configure(text = balloonHelp) - - # First, display the balloon offscreen to get dimensions. - screenWidth = self.winfo_screenwidth() - screenHeight = self.winfo_screenheight() - self.geometry('+%d+0' % (screenWidth + 1)) - self.update_idletasks() - - if isItem: - # Get the bounding box of the current item. - bbox = widget.bbox('current') - if bbox is None: - # The item that triggered the balloon has disappeared, - # perhaps by a user's timer event that occured between - # the event and the 'initwait' timer calling - # this method. - return - - # The widget is either a text or canvas. The meaning of - # the values returned by the bbox method is different for - # each, so use the existence of the 'canvasx' method to - # distinguish between them. - if hasattr(widget, 'canvasx'): - # The widget is a canvas. Place balloon under canvas - # item. The positions returned by bbox are relative - # to the entire canvas, not just the visible part, so - # need to convert to window coordinates. - leftrel = bbox[0] - widget.canvasx(0) - toprel = bbox[1] - widget.canvasy(0) - bottomrel = bbox[3] - widget.canvasy(0) - else: - # The widget is a text widget. Place balloon under - # the character closest to the mouse. The positions - # returned by bbox are relative to the text widget - # window (ie the visible part of the text only). - leftrel = bbox[0] - toprel = bbox[1] - bottomrel = bbox[1] + bbox[3] - else: - leftrel = 0 - toprel = 0 - bottomrel = widget.winfo_height() - - xpointer, ypointer = widget.winfo_pointerxy() # -1 if off screen - - if xpointer >= 0 and self['relmouse'] in ('both', 'x'): - x = xpointer - else: - x = leftrel + widget.winfo_rootx() - x = x + self['xoffset'] - - if ypointer >= 0 and self['relmouse'] in ('both', 'y'): - y = ypointer - else: - y = bottomrel + widget.winfo_rooty() - y = y + self['yoffset'] - - edges = (string.atoi(str(self.cget('hull_highlightthickness'))) + - string.atoi(str(self.cget('hull_borderwidth')))) * 2 - if x + self._label.winfo_reqwidth() + edges > screenWidth: - x = screenWidth - self._label.winfo_reqwidth() - edges - - if y + self._label.winfo_reqheight() + edges > screenHeight: - if ypointer >= 0 and self['relmouse'] in ('both', 'y'): - y = ypointer - else: - y = toprel + widget.winfo_rooty() - y = y - self._label.winfo_reqheight() - self['yoffset'] - edges - - Pmw.setgeometryanddeiconify(self, '+%d+%d' % (x, y)) diff --git a/Pmw/Pmw_1_2/lib/PmwBase.py b/Pmw/Pmw_1_2/lib/PmwBase.py deleted file mode 100644 index da38e9a4..00000000 --- a/Pmw/Pmw_1_2/lib/PmwBase.py +++ /dev/null @@ -1,1933 +0,0 @@ -# Pmw megawidget base classes. - -# This module provides a foundation for building megawidgets. It -# contains the MegaArchetype class which manages component widgets and -# configuration options. Also provided are the MegaToplevel and -# MegaWidget classes, derived from the MegaArchetype class. The -# MegaToplevel class contains a Tkinter Toplevel widget to act as the -# container of the megawidget. This is used as the base class of all -# megawidgets that are contained in their own top level window, such -# as a Dialog window. The MegaWidget class contains a Tkinter Frame -# to act as the container of the megawidget. This is used as the base -# class of all other megawidgets, such as a ComboBox or ButtonBox. -# -# Megawidgets are built by creating a class that inherits from either -# the MegaToplevel or MegaWidget class. - -import os -import string -import sys -import traceback -import types -import Tkinter - -# Special values used in index() methods of several megawidgets. -END = ['end'] -SELECT = ['select'] -DEFAULT = ['default'] - -# Constant used to indicate that an option can only be set by a call -# to the constructor. -INITOPT = ['initopt'] -_DEFAULT_OPTION_VALUE = ['default_option_value'] -_useTkOptionDb = 0 - -# Symbolic constants for the indexes into an optionInfo list. -_OPT_DEFAULT = 0 -_OPT_VALUE = 1 -_OPT_FUNCTION = 2 - -# Stacks - -_busyStack = [] - # Stack which tracks nested calls to show/hidebusycursor (called - # either directly or from activate()/deactivate()). Each element - # is a dictionary containing: - # 'newBusyWindows' : List of windows which had busy_hold called - # on them during a call to showbusycursor(). - # The corresponding call to hidebusycursor() - # will call busy_release on these windows. - # 'busyFocus' : The blt _Busy window which showbusycursor() - # set the focus to. - # 'previousFocus' : The focus as it was when showbusycursor() - # was called. The corresponding call to - # hidebusycursor() will restore this focus if - # the focus has not been changed from busyFocus. - -_grabStack = [] - # Stack of grabbed windows. It tracks calls to push/popgrab() - # (called either directly or from activate()/deactivate()). The - # window on the top of the stack is the window currently with the - # grab. Each element is a dictionary containing: - # 'grabWindow' : The window grabbed by pushgrab(). The - # corresponding call to popgrab() will release - # the grab on this window and restore the grab - # on the next window in the stack (if there is one). - # 'globalMode' : True if the grabWindow was grabbed with a - # global grab, false if the grab was local - # and 'nograb' if no grab was performed. - # 'previousFocus' : The focus as it was when pushgrab() - # was called. The corresponding call to - # popgrab() will restore this focus. - # 'deactivateFunction' : - # The function to call (usually grabWindow.deactivate) if - # popgrab() is called (usually from a deactivate() method) - # on a window which is not at the top of the stack (that is, - # does not have the grab or focus). For example, if a modal - # dialog is deleted by the window manager or deactivated by - # a timer. In this case, all dialogs above and including - # this one are deactivated, starting at the top of the - # stack. - - # Note that when dealing with focus windows, the name of the Tk - # widget is used, since it may be the '_Busy' window, which has no - # python instance associated with it. - -#============================================================================= - -# Functions used to forward methods from a class to a component. - -# Fill in a flattened method resolution dictionary for a class (attributes are -# filtered out). Flattening honours the MI method resolution rules -# (depth-first search of bases in order). The dictionary has method names -# for keys and functions for values. -def __methodDict(cls, dict): - - # the strategy is to traverse the class in the _reverse_ of the normal - # order, and overwrite any duplicates. - baseList = list(cls.__bases__) - baseList.reverse() - - # do bases in reverse order, so first base overrides last base - for super in baseList: - __methodDict(super, dict) - - # do my methods last to override base classes - for key, value in cls.__dict__.items(): - # ignore class attributes - if type(value) == types.FunctionType: - dict[key] = value - -def __methods(cls): - # Return all method names for a class. - - # Return all method names for a class (attributes are filtered - # out). Base classes are searched recursively. - - dict = {} - __methodDict(cls, dict) - return dict.keys() - -# Function body to resolve a forwarding given the target method name and the -# attribute name. The resulting lambda requires only self, but will forward -# any other parameters. -__stringBody = ( - 'def %(method)s(this, *args, **kw): return ' + - 'apply(this.%(attribute)s.%(method)s, args, kw)') - -# Get a unique id -__counter = 0 -def __unique(): - global __counter - __counter = __counter + 1 - return str(__counter) - -# Function body to resolve a forwarding given the target method name and the -# index of the resolution function. The resulting lambda requires only self, -# but will forward any other parameters. The target instance is identified -# by invoking the resolution function. -__funcBody = ( - 'def %(method)s(this, *args, **kw): return ' + - 'apply(this.%(forwardFunc)s().%(method)s, args, kw)') - -def forwardmethods(fromClass, toClass, toPart, exclude = ()): - # Forward all methods from one class to another. - - # Forwarders will be created in fromClass to forward method - # invocations to toClass. The methods to be forwarded are - # identified by flattening the interface of toClass, and excluding - # methods identified in the exclude list. Methods already defined - # in fromClass, or special methods with one or more leading or - # trailing underscores will not be forwarded. - - # For a given object of class fromClass, the corresponding toClass - # object is identified using toPart. This can either be a String - # denoting an attribute of fromClass objects, or a function taking - # a fromClass object and returning a toClass object. - - # Example: - # class MyClass: - # ... - # def __init__(self): - # ... - # self.__target = TargetClass() - # ... - # def findtarget(self): - # return self.__target - # forwardmethods(MyClass, TargetClass, '__target', ['dangerous1', 'dangerous2']) - # # ...or... - # forwardmethods(MyClass, TargetClass, MyClass.findtarget, - # ['dangerous1', 'dangerous2']) - - # In both cases, all TargetClass methods will be forwarded from - # MyClass except for dangerous1, dangerous2, special methods like - # __str__, and pre-existing methods like findtarget. - - - # Allow an attribute name (String) or a function to determine the instance - if type(toPart) != types.StringType: - - # check that it is something like a function - if callable(toPart): - - # If a method is passed, use the function within it - if hasattr(toPart, 'im_func'): - toPart = toPart.im_func - - # After this is set up, forwarders in this class will use - # the forwarding function. The forwarding function name is - # guaranteed to be unique, so that it can't be hidden by subclasses - forwardName = '__fwdfunc__' + __unique() - fromClass.__dict__[forwardName] = toPart - - # It's not a valid type - else: - raise TypeError, 'toPart must be attribute name, function or method' - - # get the full set of candidate methods - dict = {} - __methodDict(toClass, dict) - - # discard special methods - for ex in dict.keys(): - if ex[:1] == '_' or ex[-1:] == '_': - del dict[ex] - # discard dangerous methods supplied by the caller - for ex in exclude: - if dict.has_key(ex): - del dict[ex] - # discard methods already defined in fromClass - for ex in __methods(fromClass): - if dict.has_key(ex): - del dict[ex] - - for method, func in dict.items(): - d = {'method': method, 'func': func} - if type(toPart) == types.StringType: - execString = \ - __stringBody % {'method' : method, 'attribute' : toPart} - else: - execString = \ - __funcBody % {'forwardFunc' : forwardName, 'method' : method} - - exec execString in d - - # this creates a method - fromClass.__dict__[method] = d[method] - -#============================================================================= - -def setgeometryanddeiconify(window, geom): - # To avoid flashes on X and to position the window correctly on NT - # (caused by Tk bugs). - - if os.name == 'nt' or \ - (os.name == 'posix' and sys.platform[:6] == 'cygwin'): - # Require overrideredirect trick to stop window frame - # appearing momentarily. - redirect = window.overrideredirect() - if not redirect: - window.overrideredirect(1) - window.deiconify() - if geom is not None: - window.geometry(geom) - # Call update_idletasks to ensure NT moves the window to the - # correct position it is raised. - window.update_idletasks() - window.tkraise() - if not redirect: - window.overrideredirect(0) - else: - if geom is not None: - window.geometry(geom) - - # Problem!? Which way around should the following two calls - # go? If deiconify() is called first then I get complaints - # from people using the enlightenment or sawfish window - # managers that when a dialog is activated it takes about 2 - # seconds for the contents of the window to appear. But if - # tkraise() is called first then I get complaints from people - # using the twm window manager that when a dialog is activated - # it appears in the top right corner of the screen and also - # takes about 2 seconds to appear. - - #window.tkraise() - # Call update_idletasks to ensure certain window managers (eg: - # enlightenment and sawfish) do not cause Tk to delay for - # about two seconds before displaying window. - #window.update_idletasks() - #window.deiconify() - - window.deiconify() - if window.overrideredirect(): - # The window is not under the control of the window manager - # and so we need to raise it ourselves. - window.tkraise() - -#============================================================================= - -class MegaArchetype: - # Megawidget abstract root class. - - # This class provides methods which are inherited by classes - # implementing useful bases (this class doesn't provide a - # container widget inside which the megawidget can be built). - - def __init__(self, parent = None, hullClass = None): - - # Mapping from each megawidget option to a list of information - # about the option - # - default value - # - current value - # - function to call when the option is initialised in the - # call to initialiseoptions() in the constructor or - # modified via configure(). If this is INITOPT, the - # option is an initialisation option (an option that can - # be set by the call to the constructor but can not be - # used with configure). - # This mapping is not initialised here, but in the call to - # defineoptions() which precedes construction of this base class. - # - # self._optionInfo = {} - - # Mapping from each component name to a tuple of information - # about the component. - # - component widget instance - # - configure function of widget instance - # - the class of the widget (Frame, EntryField, etc) - # - cget function of widget instance - # - the name of the component group of this component, if any - self.__componentInfo = {} - - # Mapping from alias names to the names of components or - # sub-components. - self.__componentAliases = {} - - # Contains information about the keywords provided to the - # constructor. It is a mapping from the keyword to a tuple - # containing: - # - value of keyword - # - a boolean indicating if the keyword has been used. - # A keyword is used if, during the construction of a megawidget, - # - it is defined in a call to defineoptions() or addoptions(), or - # - it references, by name, a component of the megawidget, or - # - it references, by group, at least one component - # At the end of megawidget construction, a call is made to - # initialiseoptions() which reports an error if there are - # unused options given to the constructor. - # - # After megawidget construction, the dictionary contains - # keywords which refer to a dynamic component group, so that - # these components can be created after megawidget - # construction and still use the group options given to the - # constructor. - # - # self._constructorKeywords = {} - - # List of dynamic component groups. If a group is included in - # this list, then it not an error if a keyword argument for - # the group is given to the constructor or to configure(), but - # no components with this group have been created. - # self._dynamicGroups = () - - if hullClass is None: - self._hull = None - else: - if parent is None: - parent = Tkinter._default_root - - # Create the hull. - self._hull = self.createcomponent('hull', - (), None, - hullClass, (parent,)) - _hullToMegaWidget[self._hull] = self - - if _useTkOptionDb: - # Now that a widget has been created, query the Tk - # option database to get the default values for the - # options which have not been set in the call to the - # constructor. This assumes that defineoptions() is - # called before the __init__(). - option_get = self.option_get - _VALUE = _OPT_VALUE - _DEFAULT = _OPT_DEFAULT - for name, info in self._optionInfo.items(): - value = info[_VALUE] - if value is _DEFAULT_OPTION_VALUE: - resourceClass = string.upper(name[0]) + name[1:] - value = option_get(name, resourceClass) - if value != '': - try: - # Convert the string to int/float/tuple, etc - value = eval(value, {'__builtins__': {}}) - except: - pass - info[_VALUE] = value - else: - info[_VALUE] = info[_DEFAULT] - - def destroy(self): - # Clean up optionInfo in case it contains circular references - # in the function field, such as self._settitle in class - # MegaToplevel. - - self._optionInfo = {} - if self._hull is not None: - del _hullToMegaWidget[self._hull] - self._hull.destroy() - - #====================================================================== - # Methods used (mainly) during the construction of the megawidget. - - def defineoptions(self, keywords, optionDefs, dynamicGroups = ()): - # Create options, providing the default value and the method - # to call when the value is changed. If any option created by - # base classes has the same name as one in , the - # base class's value and function will be overriden. - - # This should be called before the constructor of the base - # class, so that default values defined in the derived class - # override those in the base class. - - if not hasattr(self, '_constructorKeywords'): - # First time defineoptions has been called. - tmp = {} - for option, value in keywords.items(): - tmp[option] = [value, 0] - self._constructorKeywords = tmp - self._optionInfo = {} - self._initialiseoptions_counter = 0 - self._initialiseoptions_counter = self._initialiseoptions_counter + 1 - - if not hasattr(self, '_dynamicGroups'): - self._dynamicGroups = () - self._dynamicGroups = self._dynamicGroups + tuple(dynamicGroups) - self.addoptions(optionDefs) - - def addoptions(self, optionDefs): - # Add additional options, providing the default value and the - # method to call when the value is changed. See - # "defineoptions" for more details - - # optimisations: - optionInfo = self._optionInfo - optionInfo_has_key = optionInfo.has_key - keywords = self._constructorKeywords - keywords_has_key = keywords.has_key - FUNCTION = _OPT_FUNCTION - - for name, default, function in optionDefs: - if '_' not in name: - # The option will already exist if it has been defined - # in a derived class. In this case, do not override the - # default value of the option or the callback function - # if it is not None. - if not optionInfo_has_key(name): - if keywords_has_key(name): - value = keywords[name][0] - optionInfo[name] = [default, value, function] - del keywords[name] - else: - if _useTkOptionDb: - optionInfo[name] = \ - [default, _DEFAULT_OPTION_VALUE, function] - else: - optionInfo[name] = [default, default, function] - elif optionInfo[name][FUNCTION] is None: - optionInfo[name][FUNCTION] = function - else: - # This option is of the form "component_option". If this is - # not already defined in self._constructorKeywords add it. - # This allows a derived class to override the default value - # of an option of a component of a base class. - if not keywords_has_key(name): - keywords[name] = [default, 0] - - def createcomponent(self, componentName, componentAliases, - componentGroup, widgetClass, *widgetArgs, **kw): - # Create a component (during construction or later). - - if self.__componentInfo.has_key(componentName): - raise ValueError, 'Component "%s" already exists' % componentName - - if '_' in componentName: - raise ValueError, \ - 'Component name "%s" must not contain "_"' % componentName - - if hasattr(self, '_constructorKeywords'): - keywords = self._constructorKeywords - else: - keywords = {} - for alias, component in componentAliases: - # Create aliases to the component and its sub-components. - index = string.find(component, '_') - if index < 0: - self.__componentAliases[alias] = (component, None) - else: - mainComponent = component[:index] - subComponent = component[(index + 1):] - self.__componentAliases[alias] = (mainComponent, subComponent) - - # Remove aliases from the constructor keyword arguments by - # replacing any keyword arguments that begin with *alias* - # with corresponding keys beginning with *component*. - - alias = alias + '_' - aliasLen = len(alias) - for option in keywords.keys(): - if len(option) > aliasLen and option[:aliasLen] == alias: - newkey = component + '_' + option[aliasLen:] - keywords[newkey] = keywords[option] - del keywords[option] - - componentPrefix = componentName + '_' - nameLen = len(componentPrefix) - for option in keywords.keys(): - if len(option) > nameLen and option[:nameLen] == componentPrefix: - # The keyword argument refers to this component, so add - # this to the options to use when constructing the widget. - kw[option[nameLen:]] = keywords[option][0] - del keywords[option] - else: - # Check if this keyword argument refers to the group - # of this component. If so, add this to the options - # to use when constructing the widget. Mark the - # keyword argument as being used, but do not remove it - # since it may be required when creating another - # component. - index = string.find(option, '_') - if index >= 0 and componentGroup == option[:index]: - rest = option[(index + 1):] - kw[rest] = keywords[option][0] - keywords[option][1] = 1 - - if kw.has_key('pyclass'): - widgetClass = kw['pyclass'] - del kw['pyclass'] - if widgetClass is None: - return None - if len(widgetArgs) == 1 and type(widgetArgs[0]) == types.TupleType: - # Arguments to the constructor can be specified as either - # multiple trailing arguments to createcomponent() or as a - # single tuple argument. - widgetArgs = widgetArgs[0] - widget = apply(widgetClass, widgetArgs, kw) - componentClass = widget.__class__.__name__ - self.__componentInfo[componentName] = (widget, widget.configure, - componentClass, widget.cget, componentGroup) - - return widget - - def destroycomponent(self, name): - # Remove a megawidget component. - - # This command is for use by megawidget designers to destroy a - # megawidget component. - - self.__componentInfo[name][0].destroy() - del self.__componentInfo[name] - - def createlabel(self, parent, childCols = 1, childRows = 1): - - labelpos = self['labelpos'] - labelmargin = self['labelmargin'] - if labelpos is None: - return - - label = self.createcomponent('label', - (), None, - Tkinter.Label, (parent,)) - - if labelpos[0] in 'ns': - # vertical layout - if labelpos[0] == 'n': - row = 0 - margin = 1 - else: - row = childRows + 3 - margin = row - 1 - label.grid(column=2, row=row, columnspan=childCols, sticky=labelpos) - parent.grid_rowconfigure(margin, minsize=labelmargin) - else: - # horizontal layout - if labelpos[0] == 'w': - col = 0 - margin = 1 - else: - col = childCols + 3 - margin = col - 1 - label.grid(column=col, row=2, rowspan=childRows, sticky=labelpos) - parent.grid_columnconfigure(margin, minsize=labelmargin) - - def initialiseoptions(self, dummy = None): - self._initialiseoptions_counter = self._initialiseoptions_counter - 1 - if self._initialiseoptions_counter == 0: - unusedOptions = [] - keywords = self._constructorKeywords - for name in keywords.keys(): - used = keywords[name][1] - if not used: - # This keyword argument has not been used. If it - # does not refer to a dynamic group, mark it as - # unused. - index = string.find(name, '_') - if index < 0 or name[:index] not in self._dynamicGroups: - unusedOptions.append(name) - if len(unusedOptions) > 0: - if len(unusedOptions) == 1: - text = 'Unknown option "' - else: - text = 'Unknown options "' - raise KeyError, text + string.join(unusedOptions, ', ') + \ - '" for ' + self.__class__.__name__ - - # Call the configuration callback function for every option. - FUNCTION = _OPT_FUNCTION - for info in self._optionInfo.values(): - func = info[FUNCTION] - if func is not None and func is not INITOPT: - func() - - #====================================================================== - # Method used to configure the megawidget. - - def configure(self, option=None, **kw): - # Query or configure the megawidget options. - # - # If not empty, *kw* is a dictionary giving new - # values for some of the options of this megawidget or its - # components. For options defined for this megawidget, set - # the value of the option to the new value and call the - # configuration callback function, if any. For options of the - # form _
-

Name

-

Pmw.AboutDialog() - - window to display version and contact information -

- - -
-

Inherits

-Pmw.MessageDialog
-
-

Description

-

- An about dialog is a dialog window which displays information - about the application, such as name, version, copyright and - contact details.

- -

The text of the message is constructed from the application name - (given by the applicationname option) followed by the values - supplied in the most recent calls to Pmw.aboutversion(), - Pmw.aboutcopyright() and Pmw.aboutcontact() functions.

- -

The icon of the message defaults to 'info', but may be changed - using the icon_bitmap component option.

- -

- - -
-

Options

-Options for this megawidget and its base -classes are described below.

- -
activatecommand -
-If this is callable, it will be called whenever the megawidget is - activated by a call to activate(). The default is None.

- - -
- -
applicationname -
-Initialisation option. The name of application, to be dispayed in the dialog body and in - the window title if the title option is not given. The default is ''.

- - -
- -
borderx -
-Initialisation option. The padding to the left and right of the text message and icon. The default is 20.

- - -
- -
bordery -
-Initialisation option. The padding above and below the text message and icon. The default is 20.

- - -
- -
buttonboxpos -
-Initialisation option. Specifies on which side of the dialog window to place the button - box. Must be one of 'n', 's', 'e' or 'w'. The default is 's'.

- - -
- -
buttons -
-This must be a tuple or a list and specifies the names on the - buttons in the button box. The default is ('Close',).

- - -
- -
command -
-Specifies a function to call whenever a button in the button box - is invoked or the window is deleted by the window manager. The - function is called with a single argument, which is the name of - the button which was invoked, or None if the window was deleted - by the window manager.

-

If the value of command is not callable, the default behaviour - is to deactivate the window if it is active, or withdraw the - window if it is not active. If it is deactivated, deactivate() - is called with the button name or None as described above. The default is None.

- - - -
- -
deactivatecommand -
-If this is callable, it will be called whenever the megawidget is - deactivated by a call to deactivate(). The default is None.

- - -
- -
defaultbutton -
-Specifies the default button in the button box. If the <Return> - key is hit when the dialog has focus, the default button will be - invoked. If defaultbutton is None, there will be no default - button and hitting the <Return> key will have no effect. The default is 0.

- - -
- -
iconmargin -
-Initialisation option. The padding between the text message and icon. The default is 20.

- - -
- -
iconpos -
-Initialisation option. Specifies on which side of the text message to place the icon. - Must be one of 'n', 's', 'e' or 'w'. The default is 'w'.

- - -
- -
master -
-This is used by the activate() method to control whether the - window is made transient during modal dialogs. See the - activate() method. The default is 'parent'.

- - -
- -
separatorwidth -
-Initialisation option. If this is greater than 0, a separator line with the specified - width will be created between the button box and the child site, - as a component named separator. Since the default border of the - button box and child site is raised, this option does not - usually need to be set for there to be a visual separation between - the button box and child site. The default is 0.

- - -
- -
title -
-This is the title that the window manager displays in the title - bar of the window. The default is None.

- - -
-
-

Components

-Components created by this megawidget and its base -classes are described below.

- -
buttonbox -
-This is the button box containing the buttons for the dialog. By - default it is created with the options - (hull_borderwidth = 1, hull_relief = 'raised'). By default, this component is a Pmw.ButtonBox.

- - -
- -
dialogchildsite -
-This is the child site for the dialog, which may be used to - specialise the megawidget by creating other widgets within it. By - default it is created with the options - (borderwidth = 1, relief = 'raised'). By default, this component is a Tkinter.Frame.

- - -
- -
hull -
-This acts as the body for the entire megawidget. Other components - are created as children of the hull to further specialise this - class. By default, this component is a Tkinter.Toplevel.

- - -
- -
icon -
-If the iconpos option is not None, this component is created - to contain the icon label for the dialog. To display a bitmap as - an icon, set the icon_bitmap component option to any of the - forms acceptable to Tk, such as 'warning' or 'error'. By default, this component is a Tkinter.Label.

- - -
- -
message -
-The label to contain the text message for the dialog. To set - the text, use the message_text component option. By default, this component is a Tkinter.Label.

- - -
- -
separator -
-If the separatorwidth initialisation option is non-zero, the - separator component is the line dividing the area between the - button box and the child site. By default, this component is a Tkinter.Frame.

- - -
-
- -

Methods

-This megawidget has no methods of its own. -For a description of its inherited methods, see the -manual for its base class -Pmw.MessageDialog. -

-
-

Example

-The image at the top of this manual is a snapshot -of the window (or part of the window) produced -by the following code.

-
-class Demo:
-    def __init__(self, parent):
-        # Create dialog.
-        Pmw.aboutversion('9.9')
-        Pmw.aboutcopyright('Copyright My Company 1999\nAll rights reserved')
-        Pmw.aboutcontact(
-            'For information about this application contact:\n' +
-            '  My Help Desk\n' +
-            '  Phone: +61 2 9876 5432\n' +
-            '  email: help@my.company.com.au'
-        )
-        self.about = Pmw.AboutDialog(parent, applicationname = 'My Application')
-        self.about.withdraw()
-
-        # Create button to launch the dialog.
-        w = Tkinter.Button(parent, text = 'Show about dialog',
-                command = self.execute)
-        w.pack(padx = 8, pady = 8)
-
-    def execute(self):
-        self.about.show()
-
-
-
-